cas入門之二十二 自動單點登出之後的問題

2021-06-23 01:09:57 字數 1522 閱讀 6013

cas登入之後,產生tgt,當tgt過期之後,cas會自動消毀伺服器端的tgt存根。如果開啟自動登出(cas預設是開啟的),則cas會向應用端傳送

自動登出請求,應用接到這個請求,會消毀相應的session,這樣就完成了自動登出。

之後使用者,再次訪問應用,就會出現頁面假死,此時使用者會重新整理頁面,

則會出現登入頁面。使用者輸入使用者名稱/密碼直接登入就可以了。但是實際應用時

出現了很大的問題,那就是使用者名稱/密碼之後,頁面一閃,頁面沒有任何反應,仍然顯示在登入頁面。

後台日誌就是:

2014-07-31 08:47:28,269 info [com.github.inspektr.audit.support.slf4jloggingaudittrailmanager] -

看了日誌,我最初懷疑是登入頁面沒有抓到使用者輸入內容,但轉念一想不對,如果沒有抓取到使用者名稱密碼,為什麼初始能夠登入成功。

最初解決這個方法是,讓使用者關閉所有的瀏覽器,再開啟,重新登入就可以了。這個事情困擾了我一段時間,決定解決它。

部署了測試環境,通過debug,發現並不是cas沒有抓到使用者輸入內容,而是抓取到了。但是這個登入過程相當的緩慢,為什麼呢?

因為我的測試環境,與正式應用一樣,認證處理器有好幾個。cas在認證的時候,會逐個處理,直到有乙個成功為止。這個過程慢,我是知道的。

難道是因為它?如果是因為它為什麼在關閉了瀏覽器使用者就可以登入呢?

忽然想到了,這裡cas-servlet.xml:

它的作用,就是在login.flow.session.time2dieseconds 規定時間之內完成此次登入,如果完不成,則此次建立的session會被銷毀。它其實是

呼叫httpsession.setmaxinactiveinterval()方法,為session設定有效期。

我在實際應用中將其設為5秒,此次狠狠的將其改為50秒,並且修改了,相應的tgt過期時間,進行測試。當再次出現了登入頁面是,輸入使用者名稱/密碼,

登入一切順利.

2014-07-31 08:47:36,883 info [com.github.inspektr.audit.support.slf4jloggingaudittrailmanager] -

2014-07-31 08:47:36,883 info [com.github.inspektr.audit.support.slf4jloggingaudittrailmanager] -

2014-07-31 08:47:36,893 info [com.github.inspektr.audit.support.slf4jloggingaudittrailmanager] -

2014-07-31 08:47:36,897 info [com.github.inspektr.audit.support.slf4jloggingaudittrailmanager] -

從日誌輸入,可以看出多了一步ticket_granting_ticket_destroyed, 從而使此次的登入時間變長。我們只有加大登入的時間,才能解決登入的問題,在此記錄

下來,希望下次遇到這樣的問題,可以更快速的解決。

CAS單點登入 單點登出 退出 登出(十二)

據說cas3.x開始支援單點登出,但我們目前講的是5.1.x,當然我們加入了單點登入,一般來說都需要單點登出的,讓個子系統支援單點登出需要做一些工作 logouttyle型別講解 cas退出流程分析 cas client單點退出配置 buji shiro pac4j 單點退出配置 重點目標 a系統需...

python程式設計基礎之二十二

字典 字典屬於可變物件,但是不屬於序列,內部是通過雜湊方式儲存的,內部儲存的是乙個個鍵值對key value 字典的鍵是唯一的,字典查詢速度比較快 d1 括號裡面用鍵值對表示 d2 dict d3 dict 1,2 3,4 d4 dict 元素訪問 字典名 key 用鍵來訪問 字典名.get key...

Android入門 二十二 解析JSON

解析json的方式有很多,主要有官方提供的 jsonobject,谷歌的開源庫 gson。另外,一些第三方的開源庫如 jackson fastjson等也非常不錯。假設json資料為 一 jsonobject try catch exception e 首先是將伺服器返回的資料傳入到了乙個 json...