代码拉取完成,页面将自动刷新
发现 key 的值为
r0e3c16IdVkouZgk1TKVMg==
发现 mode 的值为
cbc
发现 origin_count 的值为
1
发现 cookie_name 的值为
rememberMe
发现 current_count 的值为
0
解决方案也告知我了,如下
升级 shiro 到 1.2.5 及以上版本。
如果在配置里配置了密钥,那么请一定不要使用网上的密钥,通过自己 base64 一个 AES 的密钥,或者利用官方提供的方法生成密钥:
org.apache.shiro.crypto.AbstractSymmetricCipherService#generateNewKey()
/**
* 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);
}
}
shiro.rememberMe.secretKey 这参数适应于 v4 所有版本,yml没有的话,加进去就行;你也可以关闭这个功能,在 ShiroConfig 里找到 securityManager,加一行代码 bean.setRememberMeManager(null);
### 通过您的解决方案我去解决问题中发现
1、首先我的jeesite版本是4.0.5的,yml文件里并没有shiro.rememberMe.secretKey这个配置,
只有sso.secretKey和loginSubmit.secretKey这两个配置
2、其次您给出的解决方案 在 ShiroConfig 里找到 securityManager,加一行代码 bean.setRememberMeManager(null);
所以我找到了shiroconfig这个类,发现bean.setRememberMeManager(null)这样设置会报错
**麻烦问一下,这边还可以如何解决啊**