Springboot集成Shiro和CAS以及常見問題

1、Springboot集成Shiro和CAS,移步博客:https://blog.csdn.net/catoop/article/details/50534006

     主要是繼承CasRealm寫自己項目的realm,有條件地重寫裏面的doGetAuthenticationInfo()身份認證和doGetAuthorizationInfo()用戶授權這兩個方法。

2、一些常見問題:

(1)自定義的realm類中的doGetAuthorizationInfo()方法就是不進去執行

            自定義的realm配置setAuthorizationCachingEnabled爲false:shiroCasRealm.setAuthorizationCachingEnabled(false);

            同理自定義realm也可以設置setAuthenticationCachingEnabled的狀態。

(2)跳轉正常 但是未能夠識別出目標 'ST-13-2EreKS2Ea4OKRjL3Dv9u-pc-PC',ticket票根報錯 驗證不通過:

        查看下Cas登錄頁面地址,當前項目地址等url地址是否正確。

(3)各種登錄地址,錯誤地址,正確跳轉地址都可以在CasFilter設置

 @Bean(name = "casFilter")
    public CasFilter getCasFilter() {
        CasFilter casFilter = new CasFilter();
        casFilter.setName("casFilter");
        casFilter.setEnabled(true);
        // 如果不設置默認會自動尋找Web工程根目錄下的"/login.jsp"頁面
        casFilter.setLoginUrl(BasicApi.LOGIN_URL);
        // 登錄成功後跳轉地址
        casFilter.setSuccessUrl("http://lwj.gzhtoa.cn:8888/pk/index.html");
        // 登錄失敗後跳轉的URL,也就是 Shiro 執行 CasRealm 的 doGetAuthenticationInfo 方法向CasServer驗證tiket
//        casFilter.setFailureUrl(LOGIN_URL);// 我們選擇認證失敗後再打開登錄頁面
        return casFilter;
    }

(4)cas登錄頁面跳轉回我們設置的地址,出現無限重定向或者重定向次數過多導出錯誤:

     檢查各種設置的url地址以及casFiltre攔截器攔截的url

(5)shiroFilter設置特定url爲anno無反應

          1) filterChainDefinitionMap要用LinkedHashMap,不能使用HashMap。設置的攔截器了順序從上到下,優先級依次降低;

          2)攔截的url是否正確。比如open路徑下都不用驗證,要設置filterChainDefinitionMap.put("/open/**", "anon"); 

               設置“/open”會無效。

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章