• shiro中successUrl不起作用的问题


    在看shiro的时候遇到一个问题,shiro配的successUrl不生效的问题    

    <!-- web.xml中shiro的filter对应的bean -->
        <!-- Shiro 的Web过滤器 -->
        <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
            <property name="securityManager" ref="securityManager" />
            <!-- loginUrl认证提交地址,如果没有认证将会请求此地址进行认证,请求此地址将由formAuthenticationFilter进行表单认证 -->
            <property name="loginUrl" value="/login2.action" />
            <!-- 认证成功统一跳转到first.action,建议不配置,shiro认证成功自动到上一个请求路径-->
            <property name="successUrl" value="/first.action"/> 
            <!-- 通过unauthorizedUrl指定没有权限操作时跳转页面-->
            <!-- <property name="unauthorizedUrl" value="/test.jsp" /> -->
            
            <!-- 过虑器链定义,从上向下顺序执行,一般将/**放在最下边 -->
            <property name="filterChainDefinitions">
                <value>
                    <!-- 对静态资源设置匿名访问 -->
    
                    <!-- 请求 logout.action地址,shiro去清除session -->
                    /logout.action = logout
        
                    /** = authc
    
                </value>
            </property>
        </bean>

    用上面的配置会有这样的情况:

      1.如果是访问其他已存在的页面被拦截到登录页面,登录后就会跳转到之前的页面。

      2.如果是直接访问登录页面或者是通过退出登录到登录页面,再次登录就会跳转到“/”。

      3.不管怎么样,都没有跳转到successUrl指定的url。

    原因是这样的:

      successUrl配置只是做为一种附加配置,只有session中没有用户请求地址时才会使用successUrl。系统默认的是认证成功后跳转到上一次请求的路径,如果是首次请求,那shiro就会跳转到默认虚拟路径“/”,也就是跳转到index.jsp。

    解决方法:

      简单一点的话就可以直接在index.jsp里面把请求重定向到你指定的页面

  • 相关阅读:
    自己去写的一些方法
    pyhon,统计一个字符串,在一个文本里面的个数,写查慢sql时用到的
    为什么调用类方法,老是报缺少位置参数 self
    链接mongodb 使用pymong
    django框架学习+怎么连接mongdb,和普通的mysql
    前端写ajax请求,放在javascript里面
    django之注释,
    django的 render和 返回httpsresponse的区别
    windows系统安装mongodb数据库。
    解决SQL Server Management Studio 18(SSMS)打开闪退的问题
  • 原文地址:https://www.cnblogs.com/yeming/p/5480639.html
Copyright © 2020-2023  润新知