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里面把請求重定向到你指定的頁面

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM