Cas(單點登入框架)的學習筆記

2021-07-24 19:08:27 字數 2213 閱讀 1510

cas基本流程功能圖

1.訪問web-one應用

2.是否有ticket?

3.沒有就重定向到登入介面。在client中的web.xml檔案配置

casfilterfilter-name>

edu.yale.its.tp.cas.client.filter.casfilterfilter-class>

edu.yale.its.tp.cas.client.filter.loginurlparam-name>

>

init-param>

filter>

casfilterfilter-name>

/*url-pattern>

4.輸入使用者名稱以及密碼驗證(採用查詢資料庫,並且加密儲存),在server中 的web-inf下的deployerconfigcontext.xml中配置,並且新增mysql和c3p0的jar包

id="authenticationmanager"

class="org.jasig.cas.authentication.policybasedauthenticationmanager">

key-ref="proxyauthenticationhandler"

valu

ref="proxyprincipalresolver" />

key-ref="dbauthhandler"

value-ref="primaryprincipalresolver"/>

map>

constructor-arg>

name="authenticationpolicy">

class="org.jasig.cas.authentication.anyauthenticationpolicy" />

property>

bean>

id="dbauthhandler"

class="org.jasig.cas.adaptors.jdbc.querydatabaseauthenticationhandler"

p:datasource-ref="datasource"

p:sql="select u.`password` from `tb_user` u where u.`username` = ?"

p:passwordencoder-ref="mypasswordencoder" />

id="mypasswordencoder"

class="org.jasig.cas.authentication.handler.mypasswordencoder" />

id="datasource"

class="com.mchange.v2.c3p0.combopooleddatasource">

name="driverclass"

value="com.mysql.jdbc.driver" />

name="jdbcurl"

value="jdbc:mysql:" />

name="user"

value="root" />

name="password"

value="123456" />

bean>

6.客戶端校驗ticket

cas validation filterfilter-name>  

org.jasig.cas.client.validation.cas20proxyreceivingticketvalidationfilterfilter-class>

param>

casserverurlprefixparam-name>

>

param>

param>

servernameparam-name>

param-value>

param>

filter>

cas validation filterfilter-name>

/*

go gin框架使用cas單點登入

最近在用gin框架,想路由乙個路徑到cas單點登入發現有個小坑,小小的記錄一下。func 某方法 官方的 如果不用gin框架的話沒有問題,因為是單獨監聽8080埠,然後捕捉到請求就執行handlefunc方法,這裡cas是使用了 gopkg.in cas.v2 這個包,封裝了自己的handle和se...

CAS單點登入

出現這個頁面說明服務端部署成功。cas預設的使用者名稱casuser,密碼 mellon,登陸成功 如果我們不希望用8080埠訪問cas,可以修改埠 1 修改tomcat的埠 開啟tomcat 目錄 conf server.xml 找到下面的配置 將埠8080,改為9000 2 修改cas配置檔案 ...

cas單點登入

開門見山,如下圖為cas登入的序列圖 cas實現單點登入的主要票據有兩個,乙個是tgt,乙個是st。因為是做單點登入的,所以客戶端應該是有多個的,當其中乙個登入之後,在同一瀏覽器中在登陸其他客戶端使用者是感知不到再次登入的,原因是第一次登入成功後cookie記錄乙個tgt,這個cookie在瀏覽器中...