struts2和shiro整合遇到问题
我在整合struts2+shiro的时候遇到一些问题,求解答,谢谢
假设jsp form提交的action是login.action,struts2中有login的action处理定义,shiro中也配置有相应的项目,类似如下:
<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean"> <property name="securityManager" ref="securityManager"/> <property name="loginUrl" value="/public/login.jsp" /> <property name="successUrl" value="/public/index.jsp" /> <property name="unauthorizedUrl" value="/public/error.jsp" /> <property name="filterChainDefinitions"> <value> login = anon /** = anon </value> </property> </bean>我现在在提交之后总是给struts2定义的那个login.action处理,而不是交由shiro处理?
还有shiro相关的配置我也不太清楚,麻烦给详细说明下,特别是loginUrl及filterChainDefinitions部分。
谢谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(19)
Hi, 我试过将/login=anon去掉,不过还是同样的问题,现在看,是我在submit之后有跳转到/public/login.jsp了,而我自定义的MyRealm中的Authentication并没有执行
从我目前测得情况看,就是form提交之后并没有走到shiro中执行Authentication,请问这个还需要其他配置吗,或者shiro这边如何查看log。thx
http://www.oschina.net/code/snippet_180157_23938
看这个就会了
谢谢,我先研究下
loginUrl设为自己的login.action地址。如果成功的话,该地址的POST请求会被shiro拦截并执行登陆业务。
还有/login = anon这段不需要。
因为authc处理的就是登陆授权相关,它有两个逻辑
如果当前访问的是登陆页,则POST时执行登陆逻辑
如果当前不是登陆页,检查用户是否有权限,没有则跳转到登陆页
回复
表单的action地址不填写。表示提交给自己,method用post,必要的属性是username和password
回复
login.jsp就是啊
回复
我给的第一句提示没有看吗?首先你得把shiro的loginUrl指向一个有登陆表单的页面
谢谢,这个我之前理解有问题。
loginUrl是没有登录跳转的url,unauthorizedUrl是没有权限跳转的url
loginUrl设为自己的login.action地址。如果成功的话,该地址的POST请求会被shiro拦截并执行登陆业务。
还有/login = anon这段不需要。
因为authc处理的就是登陆授权相关,它有两个逻辑
如果当前访问的是登陆页,则POST时执行登陆逻辑
如果当前不是登陆页,检查用户是否有权限,没有则跳转到登陆页
不过现在还是有个问题存在,就是我在login.jsp进行submit之后并没调用自己实现的Realm的方法。
loginUrl是没有登录跳转的url,unauthorizedUrl是没有权限跳转的url
引用来自“SoSo_NX”的答案
anon是匿名,不会拦截,换成authc试试
http://www.cnblogs.com/xql4j/archive/2013/03/30/2990841.html 看这个
anon是匿名,不会拦截,换成authc试试
我在web.xml中已经将shiro相关部分放到struts2之前了,还是不行
如果是struts2先拦截到 那就进入struts2的action