CAS單點登入三 客戶端獲取登入資訊

2021-07-11 04:27:27 字數 1325 閱讀 8980

通過上篇的配置,登入是從資料庫中進行驗證了。

那麼現在要解決的問題是,客戶端怎麼知道登入者是誰呢?如何獲取登入者的資訊。

首先還是開啟deployerconfigcontext.xml這個配置檔案

找到id為attributerepository的bean。預設這個bean配置的應該是org.jasig.services.persondir.support.stubpersonattributedao,要把它換成org.jasig.services.persondir.support.jdbc.singlerowjdbcpersonattributedao

配置如下:

然後再找一下credentialstoprincipalresolvers,裡面預設應該有乙個

沒有的話,把它加上。

再下一步就是再在這個配置檔案中找org.jasig.cas.services.inmemoryserviceregistrydaoimpl這個bean。在其中的org.jasig.cas.services.regexregisteredservice的屬性中加上需要返回的字段:

idusername

我這裡只是加了id和username。

好了,儲存這個檔案。

最後找到view/jsp/protocol/2.0/casservicevalidationsuccess.jsp

在裡面加一段

$

0}">$$

1}">

$

好了,server端配置完成,可以重啟tomcat了。

然後是客戶端,

首先在web.xml裡加兩個過濾器

/do/*

cas assertion thread local filter

org.jasig.cas.client.util.assertionthreadlocalfilter

/do/*

然後,客戶端要獲取屬性這些屬性,我這裡是把這些屬性全部遍歷出來了。

attributeprincipal principal = (attributeprincipal) request.getuserprincipal();

mapattributes = principal.getattributes();

for (string key : attributes.keyset())

CAS單點登入官方例子server端 注意事項

啟動tomcat下bin目錄中的startup.bat啟動tomcat 訪問https 你設定的網域名稱 8443 cas 就會進行驗證,有的版本是只要使用者名稱和密碼相同即可,但我下的版本 4.0.0 就不通過,後來看tomcat中cas專案下web inf的deployerconfigconte...

CAS單點登入(二)服務端部署

這裡有個固定的使用者名稱和密碼 casuser mellon 登入成功後會跳到登入成功的提示頁面 如果我們不希望用 8080 埠訪問 cas,可以修改埠 1 修改 tomcat 的埠 開啟 tomcat 目錄 conf server.xml 找到下面的配置 將埠 8080,改為 9100 2 修改 ...

單點登入cas之服務端搭建

3 解壓zip包,使用idea開啟專案 4 在web inf spring configuration propertyfileconfigurer.xml中,對cas.properties的位置進行修改。6 使用 mvn package 命令進行打包,生成war檔案,我將其更名為cas.war 2...