cas流程進一步梳理:
shrio整合cas認證這塊交給cas:
認證過濾器是一直都會走的(每乙個控制中的請求),只是認證後就不再進入cas了
即認證過濾器優先比對session和cookie,沒有再進入cas做認證或反向生成session
ticket:(cas 伺服器還會根據service 引數生成ticket)(st)
cas端的驗證票據的是否真假,是否過期
生成這個之後寫入session到web,後面登陸跳轉到其他web,會先有cookie生成ticket(st),驗證成功之後根據cas存入的使用者資訊(tgt)生成session寫到新的web
之後直接cookie和session驗證
驗證:(st)(相當於對cookie做一次真假,和時效驗證)
驗證ticket 。以ticket 為引數,去快取裡找serviceticketimpl 物件,如果能找到,且沒有過期,且serviceticketimpl 物件對應的service
屬性和service 引數對應,則驗證通過,驗證通過後,請求**至casservicesuccessview (cas/web-inf/view/jsp/default/protocol/2.0/casservicevalidationsuccess.jsp ),
驗證不通過,則**到failureview 。
驗證通過直接cookie和web session比對
簽發:st(service ticket)(找到對應的session快取就簽發)
st是cas為使用者簽發的訪問某一service的票據。使用者訪問service時,service發現使用者沒有st,則要求使用者去cas獲取st。
使用者向cas發出獲取st的請求,如果使用者的請求中包含cookie,則cas會以此cookie值為key查詢快取中有無tgt,如果存在tgt,
則用此tgt簽發乙個st,返回給使用者。使用者憑藉st去訪問service,service拿st去cas驗證,驗證通過後,允許使用者訪問資源。
tgt(ticket grangting ticket)(快取cookie和session對)
tgt是cas為使用者簽發的登入票據,擁有了tgt,使用者就可以證明自己在cas成功登入過。tgt封裝了cookie值以及此cookie值對應的使用者資訊。
使用者在cas認證成功後,cas生成cookie,寫入瀏覽器,同時生成乙個tgt物件,放入自己的快取,tgt物件的id就是cookie的值。當http再次請求到來時,
如果傳過來的有cas生成的cookie,則cas以此cookie值為key查詢快取中有無tgt ,如果有的話,則說明使用者之前登入過,如果沒有,則使用者需要重新登入。
參看:
bufferedReader進一步理解
public static void main string args string mystring system.out.println 請輸入明文 bufferedreader buf new bufferedreader new inputstreamreader system.in try...
Looper Handler進一步學習
package com.test.looper import android.os.bundle import android.os.handler import android.os.handlerthread import android.os.looper import android.os....
進一步了解Makefile
mkdir p add src 一層一層建立目錄。touch add makefile 建立 makefile include 目錄中存放標頭檔案。scripts 存放指令碼檔案。存放方式 按照核心管理原始碼來管理。為什麼學習makefile?編譯大型專案 讀懂別人的開源 找到程式入口 看專案的順序...