shiro 升级到 1.4.1,并优化 记住我功能,详见 RememberMeKeyGen 文件。
This commit is contained in:
@@ -89,6 +89,9 @@
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
<configuration>
|
||||
<includeSystemScope>true</includeSystemScope>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<!-- <plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
|
||||
@@ -332,8 +332,8 @@ logging:
|
||||
#======================================#
|
||||
|
||||
# Shiro 相关配置
|
||||
#shiro:
|
||||
#
|
||||
shiro:
|
||||
|
||||
# #索引页路径
|
||||
# defaultPath: ${shiro.loginUrl}
|
||||
#
|
||||
@@ -351,24 +351,20 @@ logging:
|
||||
#
|
||||
# # 简单 SSO 登录相关配置
|
||||
# sso:
|
||||
#
|
||||
# # 如果启用/sso/{username}/{token}单点登录,请修改此安全key并与单点登录系统key一致。
|
||||
# secretKey: ~
|
||||
#
|
||||
# # 是否加密单点登录安全Key
|
||||
# encryptKey: true
|
||||
#
|
||||
# # 登录提交信息加密(如果不需要加密,设置为空即可)
|
||||
# loginSubmit:
|
||||
#
|
||||
# # 登录提交信息安全Key,加密用户名、密码、验证码,后再提交(key设置为3个,用逗号分隔)
|
||||
# secretKey: thinkgem,jeesite,com
|
||||
#
|
||||
# # 记住我密钥设置(设置为空则使用默认)
|
||||
# rememberMe:
|
||||
# # 密钥必须通过 com.jeesite.common.shiro.web.RememberMeManager 的main方法生成
|
||||
# secretKey: ~
|
||||
#
|
||||
|
||||
# 记住我密钥设置,为空则自动生成一个新密钥,也可以通过 com.jeesite.test.RememberMeKeyGen 生成
|
||||
rememberMe:
|
||||
secretKey: ~
|
||||
|
||||
# # 指定获取客户端IP的Header名称,防止IP伪造。指定为空,则使用原生方法获取IP。
|
||||
# remoteAddrHeaderName: X-Forwarded-For
|
||||
#
|
||||
|
||||
24
web/src/test/java/com/jeesite/test/RememberMeKeyGen.java
Normal file
24
web/src/test/java/com/jeesite/test/RememberMeKeyGen.java
Normal file
@@ -0,0 +1,24 @@
|
||||
/**
|
||||
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
|
||||
*/
|
||||
package com.jeesite.test;
|
||||
|
||||
import org.apache.shiro.crypto.AesCipherService;
|
||||
|
||||
/**
|
||||
* v4.1.8 开始将不为记住我功能,设置默认密钥,即启动系统时生成新密钥。
|
||||
* 这样会造成一个问题,比如:重启服务后,记住登录的用户因为解密失败,而需要重新登录。
|
||||
* 为了解决这个问题,您可以通过这个类获取一个新密钥,设置到 shiro.rememberMe.secretKey 中即可。
|
||||
* 另外,如果你从配置文件里将 shiro.rememberMe.secretKey 设置为空,启动系统时也会自动设置一个新的密钥。
|
||||
* @author ThinkGem
|
||||
* @version 2019年11月6日
|
||||
*/
|
||||
public class RememberMeKeyGen {
|
||||
|
||||
public static void main(String[] args) {
|
||||
byte[] cipherKey = new AesCipherService().generateNewKey().getEncoded();
|
||||
String secretKey = org.apache.shiro.codec.Base64.encodeToString(cipherKey);
|
||||
System.out.println("shiro.rememberMe.secretKey = " + secretKey);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user