go gin框架使用cas單點登入

2021-10-01 02:45:19 字數 1448 閱讀 5611

最近在用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字尾...