web项目集成shiro后加入tomcat启动超时,tomcat无法正常启动
来源:互联网 发布:软件不兼容高分辨率 编辑:程序博客网 时间:2024/05/21 21:46
1:问题出现缘由
web项目权限框架使用shiro,在和单点登录集成后,登录login添加了一些判断,如下:
Object authUser=UserUtils.getShiroSession().getAttribute("self_login_check");
if(null==authUser&&StringUtils.isBlank((String)UserUtils.getShiroSession().getAttribute("UserLoginInfo"))){
return "redirect:/";
}else{
if(SecurityUtils.getSubject().isAuthenticated()){
SecurityUtils.getSubject().logout();
}
}
return "system/user/login";
因为authUser在获取self_login_check的时候一直为 null 所以程序一直走 return “redirect:/" 这步
这步骤因为是tomcat在启动还有没有shiro主体,所以就直接跳转到login,这个时候就形成了一个 login 跳转到 / 而 / 跳转到login的死循环,所以tomcat就启动超时了,虽然tomcat的启动一直到最后给你的感觉都是正常启动了,但是就是超时,无法启动访问,就是死循环导致的。
这个死循环出现的前提是你在配置shiro的时候filterChainDefinitions 必须有 /**=authc 这个内容,不然死循环也不会出现。
2:修改出现的问题
直接更改判断变量 authUser的值即可,比如更改为:
if(null!=authUser&&StringUtils.isNotBlank((String)UserUtils.getShiroSession().getAttribute("UserLoginInfo"))){
即可解决问题。 这个解决问题的核心还是解决 死循环,死循环也是有集成shiro启动的时候走一系列过滤器造成的。
- web项目集成shiro后加入tomcat启动超时,tomcat无法正常启动
- myeclipse 发布 web 项目后 tomcat 无法正常启动
- Web项目部署Tomcat无法正常启动的原因
- Tomcat 无法正常启动
- tomcat无法正常启动
- Eclipse中Tomcat启动项目后404,单独启动正常
- 导入项目后tomcat无法正常启动--项目初始化报错
- tomcat启动后,http://localhost:8080无法正常显示
- Tomcat启动正常 ,但是无法加载已经部署的项目
- tomcat启动正常,却不能启动项目
- IDEA构建MAVEN项目后加入框架启动TOMCAT调试
- tomcat加入某一项目后启动失败:failed to start
- Tomcat启动web项目45秒超时问题解决
- 【项目启动】 tomcat启动,项目无法启动,无法正常访问/项目可以启动,报错:java.lang.ClassNotFoundException: ContextLoaderListener
- tomcat 修改端口后 Eclipse 启动超时
- tomcat启动后访问应用超时问题
- Tomcat启动问题(debug无法启动,正常可以启动)
- windows2003中tomcat无法正常启动
- 请求发送者与接收者解耦——命令模式
- Hdu 2026 首字母大写
- S3C2440 SDRAM内存驱动
- 【C++】进程和线程
- C++STL 常用 函数 用法
- web项目集成shiro后加入tomcat启动超时,tomcat无法正常启动
- c#笔试题(一)
- 针对url进行处理
- Yii2中request的使用
- AFNetworking简单使用
- scrollview 的使用
- Yield理解
- "如何用70行Java代码实现深度神经网络算法" 的delphi版本
- 【C++】友元函数