问题详述:在Shiro中添加Remember me功能后,只要勾选Remember me选项为true的时候,浏览器就会跳转到一个不可达页面,并且在Chrome中显示HTTP 500错误。

问题追踪:

1. 设置Shiro的日志权限级别为DEBUG

log4j设置

# Default Shiro logging
log4j.logger.org.apache.shiro=DEBUG

2.点击登录按钮,查看日志输入:

DEBUG - Authentication successful for token [org.apache.shiro.authc.UsernamePasswordToken - admin, rememberMe=true].  Returned account [com.ferelife.emms.sys.ActiveUser@3b907d0f]
DEBUG - No SecurityManager available in subject context map. Falling back to SecurityUtils.getSecurityManager() lookup.
DEBUG - Context already contains a session. Returning.
DEBUG - No SecurityManager available in subject context map. Falling back to SecurityUtils.getSecurityManager() lookup.
DEBUG - Added HttpServletResponse Cookie [rememberMe=deleteMe; Path=/emms; Max-Age=0; Expires=Tue, 29-May-2018 08:45:08 GMT]
DEBUG - Added HttpServletResponse Cookie [rememberMe=aG7QqBPwS+FLAqZYwbdmwSpBD39s3OXjikv8iLYQ2NnKP9pXp6HDF2KkVsXtJF/1LlKFbm5sxoXdyMPycyU3pZKHXd6sznZaCvOL5b+wf88f7Rmwnl/3gUAWs2deu2SjHhXzF0qwiHmrk2eJ16/1uDmOyhvGuMvIhp2Aya4rAWvyBtONhDPvyTtLA8vcuE16OS00FgZGXRCogXS1W/gOKBBXEnrB77vJpzB2opMKqaESUoHFN5J1zNlHvB/3263aJeFWKuRWP5qF6ulzT2yyt14bqfLw0IbYp4/z2lJ2w+cdum8OFukhoEr68WdiM4RCS1NefDeM7EAeNEwZaeYO/Vsv9iGzYHGkjGECaHtkUcwqhorveqjymm1MMRRLdQ0/G8/93DpGd49124CGlB8OgWLZx4iS6yQwM7j7614DcJBchnrg/2x07tpvNeTGNkK6qbu1DS4to9JBQ4m73yTTpKVtMDD9exiA+WcDJ2gKpjIbVKP4RJntjte1g34hqC5UTg1H1q6/YxXMlDQmD+xTFbiE0zimcwe2/XZEhFaKKfV33E+nFmWx0b+FbbNBqsG04ZIaynjd4CJoKQAHcXtzdwb3v2GMJiuTRid3Ge9C29SWTucS6NMvNDQPtShsxyoqWgM8Iw5hitT9hc3XrX1LskZ2G; Path=/emms; Max-Age=2592000; Expires=Fri, 29-Jun-2018 08:45:08 GMT; HttpOnly]

  后出现cookie没有下面的shiro输入,至此怀疑cookies大小限制导致浏览器页面不可达,

查阅资料得到

https://blog.csdn.net/proglovercn/article/details/45514705

chrome中cookies大小限制在4Kb,由于在Remember me中将User通过base64加密后,大小大于4KB,导致cookies不能正常设置到浏览器中,导致其跳转失败

问题代码追溯:

在UserRleam中的protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException 方法中查询了菜单相关的权限,并将该权限设置到了User对象中,从而导致User对象的大小持续上升,从而导致Remember编码后的对象大于4Kb从而无法进行cookies设置值,从而跳转失败。

问题解决:

将User设置菜单以及相关操作放置到登录方法中,将如上代码移动到User登录方法中即可解决问题,此次,该500错误解决

Shiro中的Rememberme后出现浏览器500错误的更多相关文章

  1. 为什么eclipse中启动tomcat后,浏览器中出现404?

    问题描述: tomcat压缩包加压后,启动lib文件夹下面的startup.bat,在浏览器中输入http://localhost:8080/后出现熟悉的界面. 但是在eclipse中,jsp可以正常 ...

  2. 在Java web项目中防止用户注销后使用浏览器中的“后退”按钮返回注销前页面

    一背景 公司安全整改, 要求:系统中对于关键业务操作应确保使用浏览器"后退"功能无法回到上一步操作界面. 提供:凭证提供所有被检查系统关键业务操作后回退视频,视频显示关键业务操作后 ...

  3. servlet层调用biz业务层出现浏览器 500错误,解决方法 dao数据访问层 数据库Util工具类都可能出错 通过新建一个测试类复制代码逐步测试查找出最终出错原因

    package com.swift.jztk.servlet; import java.io.IOException; import javax.servlet.ServletException; i ...

  4. 【应用服务 App Service】App Service中上传文件/图片(> 2M)后就出现500错误(Maximum request length exceeded).

    问题描述 在使用App Service (Windows)做文件/图片上传时候,时常遇见上传大文件时候出现错误,这是因为IIS对文件的大小由默认限制.当遇见(Maximum request lengt ...

  5. 断电后gitlab报500错误启动出错

    异常断电后,gitlab报500错误,重启无效 通过sudo gitlab-ctl reconfigure启动时, 提示 [execute] pgsql:could not connect to se ...

  6. struts2中修改Action后刷新浏览器后不能及时更新

    在学习strut2的时候,发现如果修改配置文件中Action的时候,刷新浏览器并不能加载修改后的Action,只能关闭服务,重新开启server才能获取到,上网找了许多资料后发现只要在配置文件中加上下 ...

  7. Centos 7 在Hyper-v中安装完成后,提示密码错误

    如果提示密码错误,可能是由于密码首字母采用了大些,而caps lock似乎不能识别,因此,在需要输入大写字母的时候,按住shift即可.

  8. Springboot 项目中引入WebSocket后,单元测试出现错误

    报错信息 java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test. ...

  9. Fileupload控件导致500错误

    问题: 今天遇到一个问题,用Fileupload控件上传Excel文件,用一个button控件调用“FileUpload1.SaveAs”方法,点击按钮后出现服务器500错误.如下图: 解决方法: 在 ...

随机推荐

  1. Windows BAT 命令下del 与 rd 命令

    https://blog.csdn.net/jigetage/article/details/81180757 RD 与 DEL 命令 windows bat 目录和文件的删除处理. 命令:RD,删除 ...

  2. Git SSH公钥配置

    https://www.cnblogs.com/smuxiaolei/p/7484678.html https://blog.csdn.net/weixin_42063071/article/deta ...

  3. Day 5-6 反射和内置方法之item系列

    python面向对象中的反射:通过字符串的形式操作对象相关的属性.python中的一切事物都是对象(都可以使用反射) #!_*_ coding:utf-8 _*_ class People: def ...

  4. Day 5-3 多态与多态性

    多态与多态性 鸭子类型 多态与多态性 多态:一类事物有多种形态.比如,动物有多种形态,人,狗,猪,豹子.水也有多种形态,冰,雪,水蒸气. #多态:同一类事物的多种形态 import abc class ...

  5. Eclipse中修改jsp、html……的编码格式

    一般如果使用的是Eclipse的默认编码格式,在我们保存的时候会提示选择保存的编码格式,保存后英文没有问题,但是中文就会乱码. 修改方式是: Windows——>Preferences——> ...

  6. 996.ICU

    996.ICU https://github.com/996icu/996.ICU https://www.zhihu.com/question/317722302 LICENSE https://g ...

  7. Yii2常用ActiveRecord用法

    1.多表连表查询与对象关联查询 public function getWmsCheck(){ return $this->hasOne(\core\models\WmsCheck::classN ...

  8. Delphi 限制Edit输入 多个例子

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if not (key in [ '.',#8]) then ...

  9. 错误模块名称: KERNELBASE.dll

    部署win服务时,经常会出现类似下面的错误,错误模块名称: KERNELBASE.dll. 日志名称:          Application 来源:            Application ...

  10. SpringMVC 重定向到其他系统的页面的两种方式

    //测试重定向到另外的一个系统 @RequestMapping("/tttt") public void testRed(HttpServletResponse response) ...