最近在用gin框架,想路由乙個路徑到cas單點登入發現有個小坑,小小的記錄一下。
)func 某方法(
官方的**如果不用gin框架的話沒有問題,因為是單獨監聽8080埠,然後捕捉到請求就執行handlefunc方法,這裡cas是使用了"gopkg.in/cas.v2" 這個包,封裝了自己的handle和servehttp方法
//官方的example**
請求的時候會通過handle呼叫到servehttp這裡來,然後裡面的setclient方法會在httpcontext中寫入cas需要的ticket。
之前是這麼寫的
func
login
(c *gin.context))if
!cas.
isauthenticated
(c.request)
else
沒有handle,因為試了下寫了handle他不會呼叫,但是不寫handle的話會導致httpcontext沒法寫入你獲取的ticket,cas就懵逼了,他會給你發ticket但是你獲取不到,然後會不斷重試給你發…
解決方法也很簡單,沒有呼叫handle寫入ticket到context,那就手動呼叫好了
,"登入成功"
)}
這個還看了好久,怎麼沒早點想到呢 為專案建立CAS的filter實現單點登入
實現單點登入需要在專案中新增乙個filer對需要過濾的請求進行單點登入的過濾 新增的filter如下 cas filter edu.yale.its.tp.cas.client.filter.casfilter edu.yale.its.tp.cas.client.filter.loginurl c...
Cas(單點登入框架)的學習筆記
cas基本流程功能圖 1.訪問web one應用 2.是否有ticket?3.沒有就重定向到登入介面。在client中的web.xml檔案配置 casfilterfilter name edu.yale.its.tp.cas.client.filter.casfilterfilter class e...
單點登入CAS使用記(六) 單點登出 單點登出
單點登出基本上沒有啥配置 直接在原來logout的時候,重定向到cas server的logout方法 但是這樣的話,logout後,最終會停留在這個頁面上 一般這不是我們想要的。我想要的是,一旦使用者登出,重新回到登入頁面。那麼重新修改原有專案的logout方法,如下 加上了乙個service字尾...