最近团队开发一个springboot 框架开发的项目,用了shiro做权限管理。
奇怪的是,一直都可以正常测试和开发的项目,重新启动之后,登录直接报错。
说什么响应头过大。起初以为是浏览器缓存之类的问题,清理了很久没起作用。于是在同事的机子上注销后登录,也是同样的情况。
调试发现这里查询数据库 获取登录用户信息时会有问题,如果直接写死,则不会报这个错误。
后来了解到,同事在做用户上传头像的功能。为了方便,直接把图片保存成了流存进数据库。
问题就出在这里了。
使用shiro做管理,我们将验证通过后的整个对象交给了shiro ,响应返回对象,保存浏览器。此时由于对象中的某些字段信息过大,导致报错。
问题找到了,最简单的办法,就是再shiro里 只保存有用的信息,例如用户名,账号密码等。
可以再查询的时候只查这些个字段,也可以查出整个对象后给这些不用或者值过大的属性赋空值。
直截了当 我这样做了,
这两个字段就是存放流的,直接赋值为null。
至此问题解决,不知道有没有更优雅的解决办法,可以评论交流!!!
版权声明:本文为qq_37101291原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。