日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

单点登陆框架CAS的研究

發布時間:2024/4/15 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 单点登陆框架CAS的研究 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

CAS作為開源的單點登陸框架已經非常的流行了。由于它對已有系統的入侵性小,支持的語言多,備受廣大開發者關注;也是很多公司將之作為單點登陸的首選框架。關于CAS如何搭建的文章,網上已經非常多了,隨便搜搜都一大堆。我也就不再寫些重復的東西了,但是網上的東西有時候常常是不全,或版本問題搞的很多人都很迷糊。我曾經也很迷糊,如果剛接觸CAS,請你繼續往下看;如果你是CAS高手,請指正我說錯的地方。

CAS最早是耶魯大學開發的(CAS2.0以前的版本),后來開源出來由JASIG來繼續開發(CAS2.0以后的版本)。所以,當你準備那某一片文章上手練習的時候請分清版本。個人建議還是閱讀JASIG官方文檔比較好。https://wiki.jasig.org/display/CASC

一個完整的單點登陸方案分兩部分

CAS server

CAS server如何配置就不多說了,基本的步驟就是

1. 下載CAS server包

2. 配置Tomcat的Https訪問設置

3. 部署CAS server,其實就是將.war文件拷貝到Tomcat目錄下

4. 生成證書(可以買,也可以使用自簽名證書,或者干脆就用http協議,那就不需要證書了)

5. 修改用戶訪問配置(CAS支持關系數據庫,LDAP等多種數據存儲)

?

CAS client

CAS client是部署在應用端的,因為通常單點登陸都會涉及到對已有系統的改造。所以,client端的侵入性就變的很重要。侵入性越小,越容易部署和測試。CAS框架的優點之一就在于它的client端對應用系統的侵入性比較小。對于Java的Web項目來說,你只需要在web.xml里面添加一個filter,拷貝CAS client的jar包到應用系統,然后改造登陸認證過程即可。如果CAS server用的是Https,那就還需要將證書導入到JVM的可信證書域中,通常是($JAVA_HOME/lib/security/cacerts)。

?

所有的一切看著都挺簡單的,但實際部署中你會遇到各式各樣的問題。有很多問題網上都有人解答,這里我就記錄一下我遇到的一個沒找到答案的問題?

現象:

當你配置完CAS server, 也部署了CAS client后。用https登陸CAS server也都沒問題時,而你無論如何都無法在登陸后跳轉到你期待的頁面。盡管一切看起來都配置對了,證書也導了,https也配了,filter也加了。但是還是不停的拋CAS ticket validation expection, CAS server no response錯誤。

解決方案:

請檢查你的client是否把4個filter都配置全了,并且順序要對。

<!-- CAS SSO --><filter><filter-name>CAS Authentication Filter</filter-name><filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class><init-param><param-name>casServerLoginUrl</param-name><param-value>https://cas-server:8443/cas/login</param-value></init-param><init-param><param-name>renew</param-name><param-value>false</param-value></init-param><init-param><param-name>gateway</param-name><param-value>false</param-value></init-param><init-param><param-name>serverName</param-name><param-value>http://client-host:8080</param-value></init-param></filter><filter><filter-name>CAS Validation Filter</filter-name><filter-class>org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class><init-param><param-name>casServerUrlPrefix</param-name><param-value>https://cas-server:8443/cas/</param-value></init-param><init-param><param-name>serverName</param-name><param-value>http://client-host:8080</param-value></init-param><init-param><param-name>useSession</param-name><param-value>true</param-value></init-param><init-param><param-name>redirectAfterValidation</param-name><param-value>true</param-value></init-param></filter><filter><filter-name>CAS HttpServletRequest Wrapper Filter</filter-name><filter-class>org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class></filter><filter><filter-name>CAS Assertion Thread Local Filter</filter-name><filter-class>org.jasig.cas.client.util.AssertionThreadLocalFilter</filter-class></filter><filter-mapping><filter-name>CAS Authentication Filter</filter-name><url-pattern>/sso/*</url-pattern></filter-mapping><filter-mapping><filter-name>CAS Validation Filter</filter-name><url-pattern>/sso/*</url-pattern></filter-mapping><filter-mapping><filter-name>CAS HttpServletRequest Wrapper Filter</filter-name><url-pattern>/sso/*</url-pattern></filter-mapping><filter-mapping><filter-name>CAS Assertion Thread Local Filter</filter-name><url-pattern>/sso/*</url-pattern></filter-mapping>

官方文檔特別說明這4個Filter是必須的

The correct order of the filters in web.xml is necessary:

  • AuthenticationFilter
  • TicketValidationFilter (whichever one is chosen)
  • HttpServletRequestWrapperFilter
  • AssertionThreadLocalFilter
  • 這里我要說明一下為什么這4個filter是必須要配的。

    ?AuthenticationFilter的作用是用于攔截SSO登陸請求的,當你提交的request符合SSO登陸規則,CAS client會通過這個filter將登陸請求轉向到CAS server的登陸界面。因為這是第一步,所以它要在最上面。

    TicketValidationFilter的作用是用于攔截登陸返回的跳轉請求的。當CAS server確認登陸用戶名密碼后,會返回一個server ticket,這個ticket會由應用服務器上的CAS client再送回CAS server進行驗證,用于防止仿冒攻擊的。

    HttpServletRequestWrapperFilter的目的是將CAS server返回的信息封裝到Http request里面,這樣客戶端就可以用request.getRemoteUser()來獲取用戶名等信息了。

    AssertionThreadLocalFilter的作用是用于前端程序(通常是前端腳本程序)訪問,因為這個時候你無法通過request來獲取信息。

    所以如果這4個filter不配置正確,就會報各種錯誤。

    總結

    以上是生活随笔為你收集整理的单点登陆框架CAS的研究的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 日本欧美久久久久免费播放网 | 国产又爽又黄又嫩又猛又粗 | 99riav视频| 小镇姑娘高清播放视频 | 欧美猛操 | 麻豆国产一区二区三区四区 | 青春草视频在线免费观看 | 日韩中文字幕免费视频 | 梦梦电影免费高清在线观看 | 黄色aa毛片 | 黄色长视频 | 国产精品不卡视频 | 美女被日网站 | 久久com | 国产91丝袜在线播放九色 | 黄色天堂 | 大陆一级片 | 日韩精品久 | 色中色综合 | 成人黄色av网址 | www日韩欧美| 欧美性生活网站 | 香蕉视频在线免费播放 | 亚洲av永久中文无码精品综合 | 久久爱综合 | 午夜久久| 亚洲国产婷婷 | 日本va欧美va国产激情 | 久久久久久久女国产乱让韩 | 免费看国产精品 | av黄色在线免费观看 | 欧美日韩中文字幕一区 | 在线成人 | 影音先锋成人在线 | 黄色网址在线播放 | 青青在线视频观看 | 四虎精品成人免费网站 | 青草视频在线 | 一本久久综合 | 欧美中文字幕在线观看 | 九九久久九九久久 | 日中文字幕| 日韩一级欧美 | 性爱一级视频 | 国产精品传媒在线 | 最新日韩视频 | 豆花免费跳转入口官网 | 亚洲精品乱码久久久久久蜜桃图片 | av不卡中文字幕 | 午夜老司机福利 | 少妇在线视频 | 91theporn国产在线观看 | 成人免费影片 | 国产一区毛片 | 免费成人在线播放 | 亚洲涩色| 国产精品无码久久久久高潮 | 国产精品无码网站 | 成人理论片 | 免费99精品国产自在在线 | 加勒比在线一区 | 黄色日韩在线 | 91麻豆精品国产91久久久更新时间 | 在线观看国产黄色 | 日韩二区 | 精品无码人妻一区 | aaa毛片视频 | 天天爽天天摸 | 91成人免费网站 | 毛茸茸多毛bbb毛多视频 | 日韩欧美高清dvd碟片 | 视频精品一区 | 久久精品国产亚洲av麻豆色欲 | 性自由色xxxx免费视频 | 婷婷综合激情 | 99一级片| 国产精品20p | 色97色| 男女男精品视频网站 | 久草成人| 一线毛片| 久久成人乱码欧美精品一区二区 | 国产区在线 | www日韩在线观看 | 72成人网| 青春草在线视频观看 | 性网爆门事件集合av | 国产日韩高清在线 | 人人狠狠 | 精品一区二区在线观看视频 | 欧美精品亚洲精品日韩精品 | 白峰美羽在线播放 | 麻豆av网 | 影音先锋在线中文字幕 | 久久看看 | 久久免费精品视频 | va在线播放 | 久久亚洲精品无码va白人极品 | 亚洲第一页中文字幕 |