spring集成shiro不进入自定义realm

前天学习shiro的时候,学着学着突然发现和spring集成的时候不能进入自定义realm了,查了两天也没找到原因,后来加了一位大神,帮我解决了这个问题,在这里非常感谢。

问题如下:
需求是:登录我写的网站的任何一个url都会默认跳到用户登录页面,

当我打开服务器,输入url,确实进入登录页面,然而当我输入正确的账号密码的时候还是依旧在登录页面。

这就奇怪了,我赶紧去看看教程的配置,没毛病啊,我又去百度了一下配置,也没毛病,而且还发现很多人有我这样的问题(在这里鄙视一下发问题的楼主,自己说完问题解决了,也不告诉其他人)。纠结两天之后加了一位大神的QQ,给我解决了这个问题,在此发篇文章,希望能解决后来者的问题。

这个问题的原因是shrio的配置文件有问题

首先

<property name="securityManager" ref="securityManager" />
<!-- loginUrl认证提交地址,如果没有认证将会请求此地址进行认证,请求此地址江油formAuthenticationFilter进行拦截表单认证-->
<property name="loginUrl" value="/login.action"/>
<!--认证成功统一跳转到first.action,建议不配置-->
<property name="successUrl" value="/index.action"/>
<!--通过unauthorizedUrl指定没有权限操作时跳转页面-->
<property name="unauthorizedUrl" value="/refuse.jsp"/>
这3个value值最好都用具体的动作,不要用jsp页面,因为这主要起跳转作用。

最重要的是下面的拦截链!!!!:

原来我写的是这样的

<property name="filterChainDefinitions">
    <value>
        <!-- /所有的url都要登录-->
        /**= authc

    </value>
</property>
后来经过高人指点发现我这样把所有的url都拦截了,包括jsp页面,这样我每次做登录请求的时候,首先拦截的是jsp页面(根本不会拦截到登录请求,怎么可能进入realm呢),发现需要跳转登录页面,然后就陷入死循环。
修改后!!!:
<property name="filterChainDefinitions">
    <value>
        <!-- /所有的url都要登录-->
        /login.jsp =anon
        /login.action=authc
	/** =authc
    </value>
</property>
这样配置 就放过了login.jsp页面的拦截,只拦截请求动作,这样就不会陷入死循环,果然进入了自定义的realm。
看到成功了,我差点给大神跪下。超级超级感谢大神!!不知道他csdn叫什么名字

评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值