问题描述:已经设置了map.put("/**", "user"),但是查看网页Cookie没有值。shiro的rememberMe不生效-LMLPHP

问题查思路:

1.确定使用UserFilter过滤器,因为只有设置过滤器未user记录了cookie,rememberMe才生效。

2.确定已经设置rememberMe为true。

3.确定CookieRememberMeManager,的正确执行。

解决过程:

确定1,2没有问题,跟踪3的问题。

查看设置SecurityManager的地方

shiro的rememberMe不生效-LMLPHP

查看DefaultWebSecurityManager源码,再可能调用rememberMeManager处加入断点,我是问题是在rememberMeSuccessfulLogin处出现异常。

shiro的rememberMe不生效-LMLPHP

最后发现,问题是没有在Role实体类上加入序列化,出现异常。

shiro的rememberMe不生效-LMLPHP

总结:这个解决这个问题花了2天,查找网上都没有解决类似问题的方法,最后是看源码解决的。还有一个问题,为什么出现异常没有在控制台里打印日志,是不是springboot默认的logback配置问题,这个问题在做日志配置的时候再解决(原来是自己把spring-boot-starter-logging包排除了)。

附上连接:https://github.com/Peng-star-star/study

05-11 15:56