1. 程式人生 > >讓Cas單點登入系統在移動端,PC端,javaweb以及前後端分離等場景下適用

讓Cas單點登入系統在移動端,PC端,javaweb以及前後端分離等場景下適用

說在前面:本來的cas單點登入系統是專門為javaweb所開發的,所以在支援javaweb,這樣說好彆扭,還是直接用Jsp代替吧,也就是說,我們在jsp方面是基本不用做太大改動的,需要修改認證方式,以及需要驗證票據等為數不多的修改。但是針對於其他方向,我們就該下一些功夫了,尤其是在html做的前後端分離的情況下

下面對每個場景做單獨闡述

一、在jsp下場景的應用,這個時候我們需要修改handler、resolver,如果你是在http協議上工作的,那麼一定要允許http才行,不然預設不支援單點登入,handler處理登入請求,我們可以支援多種方式,primary支援簡單的在記憶體上做驗證,Databasehandler是使用資料庫的方式,另外還支援mongodb、memcached、redis等的驗證方式,在這種方式下,我們要認識一個新朋友,就是springWebflow,以工作流的方式作為時間驅動,一步一步的進行單點登入驗證以及tgt、st的處理。

二、支援移動端的認證方式,(Android、Ios)原理是一樣的,我們都知道,移動端在本地是有一個小型的關係資料庫,叫做sqllite,不過這個關係資料庫比較小,就像一個資料夾似的內建,因為移動端本身並沒有像我們web端的cookie機制,所以我們使用這個sqlite作為票據儲存。

工作步驟如下

1、在手機端的登入頁,提交使用者名稱、密碼至sso伺服器

2、認證通過、返回tgt,然後本地儲存這個tgt

3、請求st、並且以上一步請求到的tgt作為引數

4、sso伺服器返回st

5、移動端訪問業務系統,並且攜帶st作為引數

6、業務系統接收到請求,會向sso伺服器校驗st是否有效

7、若有效,則返回該使用者資訊,若無效,即此次登入無效

三、支援html方式,即前端以html的方式單獨執行,後端只提供java介面呼叫

這種方式是比較噁心的,因為它無法使用webflow的方式,也無法像移動端那樣有自己的本地儲存,慶幸的是在web下我們還有cooike機制支援,所以我採用類似於移動端的方式,但是在後臺多出一個藉口,在html方式獲取st的時候,使用了cookie方式獲取tgt

1、在手機端的登入頁,提交使用者名稱、密碼至sso伺服器

2、認證通過、返回tgt,,並且在sso服務端設定response-header中cookie鍵值,以及路徑存放路徑,那麼在下次請求時就可獲取

3、直接請求st的另一個介面

4、sso伺服器返回st

5、訪問業務系統,並且攜帶st作為引數

6、業務系統接收到請求,會向sso伺服器校驗st是否有效

7、若有效,則返回該使用者資訊,若無效,即此次登入無效

相關推薦

Cas登入系統移動PCjavaweb以及前後分離場景適用

說在前面:本來的cas單點登入系統是專門為javaweb所開發的,所以在支援javaweb,這樣說好彆扭,還是直接用Jsp代替吧,也就是說,我們在jsp方面是基本不用做太大改動的,需要修改認證方式,以及需要驗證票據等為數不多的修改。但是針對於其他方向,我們就該下一些功夫了,

HttpClient和HtmlParser配合實現自動CAS登入系統抽取頁面資訊

httpclient下載地址:http://mirror.bit.edu.cn/apache//httpcomponents/httpclient/binary/httpcomponents-client-4.5.1-bin.zip 專案中引入所有的jar包,然後看下面的

CAS登入系統整合——註冊的問題

最近一段時間在搞CAS單點登入系統,涉及到幾個子系統的整合問題。對於註冊,這裡遇到了一個選擇: 在子系統內完成註冊,然後把資訊同步到CAS系統;在CAS系統中完成基本資訊的註冊,比如:使用者名稱、郵箱、密碼,然後把基本資訊同步到需要這些資訊子系統中 剛開始的時候,自己有點

Jasig cas 登入系統Server&Java Client配置

Jasig cas(Central Authentication Service)官方站點:http://www.jasig.org/cas,訪問這個站點需要翻牆。 cas官網文件訪問地址:https://wiki.jasig.org/display/CASUM/Hom

登入系統CAS

一.單點登入   單點登入(Single Sign On),簡稱為 SSO,是目前比較流行的企業業務整合的解決方案之一。SSO的定義是在多個應用系統中,使用者只需要登入一次就可以訪問所有相互信任的應用系統。  有諸多子系統的系統,這些子系統是分別部署在不同的伺服器中,那麼使用傳統方式的session是無法解

登入系統CAS入門

一、單點登入的概念   單點登入(Single Sign On),簡稱為SSO。SSO是定義在多個應用系統中,使用者只需要登入一次就可以訪問所有的相互信任的應用系統。   當我們建立工程的子系統部署在不同的服務中的時候,使用傳統的session是無法解決問題的,這時候我們就需要使用相關的單點登入技術來解決

cas登入 (二) 客戶與springboot整合

在springboot專案中實現cas單點登入統一認證,只需要在專案中配置 cas過濾器即可使用. 1. springboot專案pom.xml中 新增web支援依賴 、cas客戶端依賴包 <dependency> <groupId>org

CAS登入(客戶、服務)搭建

一、單點登入簡介 單點登入(Single Sign On),簡稱為 SSO,是目前比較流行的企業業務整合的解決方案之一。SSO的定義是在多個應用系統中,使用者只需要登入一次就可以訪問所有相互信任的應用系統。 CAS 是一個開源的企業級單點登入系統,CAS 包含兩個部分:CAS Serve

CAS登入(3):cas-4.0.0 客戶配置

新建web工程 新增依賴jar包 cas-client-core-3.2.1.jar commons-logging-1.2.jar Tips: Maven專案直接新增Pom: <dependency> <grou

CAS登入-客戶整合(shiro、springboot、jwt、pac4j)(十)

CAS單點登入-客戶端整合(shiro springboot jwt pac4j)(十) 由於我們通常在業務上會有以下的使用場景: 移動端通過業務系統鑑權 移動端免登入(登入一次以後) 解決方案: JWT(token認證方案) OAuth(第三方認

CAS實現的登入系統

單點登入(single sign on ),簡稱SSO。 純屬學習用,對來自網路的部分如果侵害了您的權力,請聯絡我。QQ:262800095 SSO的定義是在多個應用系統中,使用者只需要登入一次就可以訪問所有相互信任的應用系統,而不需要重新登入。 用一個現實中的例子做比較。

1、[置頂] CAS登入原始碼解析之【客戶

前期準備: 2.cas-client-3.2.1-release.zip 3.應用系統webapp(http://127.0.0.1:8090/webapp/main.do) 4.CAS單點登入伺服器端(http://127.0.0.1:8081/cas-server/)        

CAS登入原始碼解析之【伺服器

前期準備: 2.應用系統webapp1(http://127.0.0.1:8090/webapp1/main.do) 3.應用系統webapp2(http://127.0.0.1:8091/webapp2/main.do) 4.CAS單點登入伺服器端(http://127

Cas登入客戶配置

一直不喜歡說太多東西,直接上程式碼。     主要是以下幾個步驟: 1、專案加入cas-client-core-3.2.1.jar到lib中         2、匯入證書(此步驟根據專案判斷是否需要操作)         3、配置web.xml         4、編寫客戶

cas登陸系統-建立登陸系統的應用

dep authent loginurl get nth spring password list c項目 上一篇如果已經操作成功,說明casServer已經實現了,下面就是搭建casClient與casServer聯合調試。代碼已經上傳到github上。你可以下載看看,如

windows系統部署登入系統

windows系統單點登入 1:在 D:\software\java\learning\sso\keys 目錄下生成 keystore keytool -genkey -alias mykey -keyalg RSA -keystore D:\software\java\learn

SpringBoot+MyBatis+Redis實現SSO登入系統(二)

SpringBoot+MyBatis+Redis實現SSO單點登入系統(二)   三、程式碼 配置檔案配置資料庫,redis等相關的資訊。 # See http://docs.spring.io/spring-boot/docs/current/reference/html

SpringBoot+MyBatis+Redis實現SSO登入系統(一)

SpringBoot+MyBatis+Redis實現SSO單點登入系統(一)   一、SSO系統概述        SSO英文全稱Single Sign On,單點登入。SSO是在多個應用系統中,使用者只需要

CAS統一登入認證(16): openedx 通過oauth2.0接入cas登入

openedx 是流行的開源mooc(慕課)平臺,我這安裝的是edx-ginkgo.2-7版本,cas是5.3.2 這個接入頗費了一番周折,總是設定不成功,因為沒有可以直接參考的案例,只有edx的官方站點有些說明,但都是針對google,facebook,github等賬號的第三方oauth2.

sso登入系統

1 課程計劃 第十一天: sso註冊功能實現 sso登入功能實現 通過token獲得使用者資訊 Ajax跨域請求(jsonp)   2 Sso系統工程搭建 需要建立一個sso服務工程,可以參考e3-manager建立。 e3-