shiro处理两种路径进行登陆问题

来源:互联网 发布:淘宝自拍照布灯 编辑:程序博客网 时间:2024/04/29 18:46

1.以下是我的shiro配置:

<!-- shiro安全认证过滤器 -->

<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
  <!-- 安全管理类 -->
<property name="securityManager" ref="securityManager" />
<property name="loginUrl" value="${frontPath}/login" />
<!-- <property name="successUrl" value="/f/member/index" /> -->
<property name="filters">
            <map>
                <entry key="authc" value-ref="formAuthenticationFilter"/>
                <entry key="logout" value-ref="userLogoutFilter"/>
                <entry key="user" value-ref="userFilter"/>
            </map>
        </property>
        <!-- URL过滤器配置 -->
<property name="filterChainDefinitions">
<value>
/static/** = anon
/userfiles/** = anon
${frontPath}/login = authc
${frontPath}/logout = logout
${frontPath}/** = user
</value>
</property>

</bean>

当我需要使用两个地址都进行登陆时

添加了一句${frontPath}/welogin = authc  ,但是当我提交的地址是${frontPath}/welogin时却没有走登陆流程。

但是提交地址是${frontPath}/login时却正常进行了登陆


发现该方法:

 protected boolean isLoginRequest(ServletRequest request, ServletResponse response) {
        return pathsMatch(getLoginUrl(), request);
    }

shiro登陆时会判断是否是该地址和配置的登陆地址是否一样,如果不一样则不进行登陆。


2. 登陆操作时,shiro不会记录该登陆的请求,导致登陆成功后跳转到配置的登陆页,若没有配置默认/。

3.shiro只记录get方法请求路径









0 0
原创粉丝点击