美文网首页Java学习笔记每天写1000字每天写500字
spring集成shiro不进入自定义realm是为什么?

spring集成shiro不进入自定义realm是为什么?

作者: 您好简书 | 来源:发表于2019-06-21 23:09 被阅读3次

前天我的学生在学习shiro的时候,学着学着突然发现和spring集成的时候不能进入自定义realm了,今天camel帮你解决这个问题。

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

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

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

首先

<property name="securityManager" ref="securityManager" />

<property name="loginUrl" value="/login.action"/>

<property name="successUrl" value="/index.action"/>

<property name="unauthorizedUrl" value="/refuse.jsp"/>
这3个value值最好都用具体的动作,不要用jsp页面,因为这主要起跳转作用。
最重要的是下面的拦截链!!!!:

原来我写的是这样的

<property name="filterChainDefinitions">
<value>

/**= authc

</value>
</property>
这样把所有的url都拦截了,包括jsp页面
这样我每次做登录请求的时候,首先拦截的是jsp页面(根本不会拦截到登录请求,怎么可能进入realm呢),发现需要跳转登录页面,然后就陷入死循环。
修改后!!!:
<property name="filterChainDefinitions">
<value>

/login.jsp =anon
/login.action=authc
/** =authc
</value>
</property>
这样配置 就放过了login.jsp页面的拦截,只拦截请求动作,这样就不会陷入死循环,果然进入了自定义的realm。

总结:必须的有拦截authc,才能出发认证

相关文章

网友评论

    本文标题:spring集成shiro不进入自定义realm是为什么?

    本文链接:https://www.haomeiwen.com/subject/kjupqctx.html