概念html
角色:java
原則:git
原理github
兩個部分組成:web
協議流程:數據庫
最重要的部分爲ticke安全
兩種實現方式:服務器
(1)cookie
(2)基於代理的實現:session
重點1:着重須要考慮的安全性問題:
重點2:怎樣在cas server中設置和數據庫鏈接
本身的理解:
cas v2的實現方式:cas流程中最重要是依靠ticket和session&cookie來實現的,第一階段,brower訪問集成了cas client的app1,跳轉到cas server,認證完畢後,生成一張ticket,並把這張ticket id發給brower,並跳轉至app1;第二階段,brower把ticket id發給app1,app1把ticket id發給cas server進行確認,確認ok就能夠登陸,並創建局部的session通訊;第三階段,登陸以後,如同普通brower和app進行校訂登陸;
cas v3的實現方式,就是經過proxy來訪問其餘app,就是在app1中直接登陸app2;
歸根結底是通訊雙方有一個能肯定身份的「信物」。
代碼實現流程
一、下載cas:https://github.com/apereo/cas
git下載有點慢,選擇下載release版本會快點,版本號爲4.1.0
二、導入idea
經過import maven方式導入會出錯,選擇open方式打開,忽略錯誤
三、部署cas-server-webapp,能夠看到服務器端登陸頁面,這一步是部署cas server的步驟;
四、子系統中集成cas-client,須要導入相關jar包,其中主要是配置web.xml
五、部署成功標誌:登陸cas client應用,可以自動跳轉到client server登陸,認證完畢後跳轉回cas client原頁面;
Demo
配置說明
問題總結
一、未認證受權的服務 CAS的服務記錄是空的,沒有定義服務。 但願經過CAS進行認證的應用程序必須在服務記錄中明肯定義。
"serviceId" : "^http.*",https://blog.csdn.net/leftfist/article/details/79426328
二、cas client web.xml中主要配置
參考
https://www.ibm.com/developerworks/cn/opensource/os-cn-cas/index.html
http://www.blogjava.net/security/archive/2006/10/02/sso_in_action.html
這是一個系列,配置過程講的不錯https://www.imooc.com/article/15417#
https://apereo.github.io/cas/4.2.x/protocol/CAS-Protocol.html
cas系列文章都不錯,配置和原理都講的很明白:http://www.cnblogs.com/richaaaard/p/5047112.html