1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        基于CAS實(shí)現(xiàn)SSO單點(diǎn)登錄

        共 4017字,需瀏覽 9分鐘

         ·

        2021-08-18 11:24

        1. 概述

        1.1. 什么是SSO?

        單點(diǎn)登錄( Single Sign-On , 簡(jiǎn)稱 SSO )是目前比較流行的服務(wù)于企業(yè)業(yè)務(wù)整合的解決方案之一, SSO 使得在多個(gè)應(yīng)用系統(tǒng)中,用戶只需要 登錄一次 就可以訪問(wèn)所有相互信任的應(yīng)用系統(tǒng)。

        1.2. 什么是CAS?

        隨著SSO技術(shù)的流行,相關(guān)產(chǎn)品也比較多,其中CAS就是一套解決方案,CAS(Central Authentication Service)中文翻譯為統(tǒng)一身份認(rèn)證服務(wù)或中央身份服務(wù),它由服務(wù)端和客戶端組成,實(shí)現(xiàn)SSO,并且容易進(jìn)行企業(yè)應(yīng)用的集成。

        CAS是Yale大學(xué)(耶魯)發(fā)起的一個(gè)開(kāi)源項(xiàng)目,旨在為web應(yīng)用系統(tǒng)提供一種可靠的單點(diǎn)登錄方法,CAS在2004年12月正式成為JA-SIG的一個(gè)項(xiàng)目。

        官網(wǎng):https://www.apereo.org/projects/cas

        CAS具有以下的特點(diǎn):

        • 開(kāi)源的企業(yè)級(jí)單點(diǎn)登錄解決方案
        • CAS Server為需要獨(dú)立部署的web應(yīng)用
        • CAS Client支持非常多的客戶端(這里指單點(diǎn)登錄系統(tǒng)中的各個(gè)web應(yīng)用),包括 Java、.Net 、ISAPI、Php、Perl、uPortal、Acegi、Ruby、VBScript等客戶端

        有了CAS,我們的系統(tǒng)架構(gòu)就演變成下面這樣的:

        從架構(gòu)上可以看出,CAS包含兩個(gè)部分:CAS Server和CAS Client.

        • CAS Server需要獨(dú)立部署,主要負(fù)責(zé)對(duì)用戶的認(rèn)證工作,CAS Client負(fù)責(zé)處理
        • 對(duì)客戶端受保護(hù)資源的訪問(wèn)請(qǐng)求,需要登錄,重定向到CAS Server。

        下面,我們一步步搭建CAS實(shí)現(xiàn)SSO.

        1.3. 開(kāi)發(fā)環(huán)境要求

        Jdk1.8+ maven3.6 idea tomcat9.0+ windows10

        2. CAS Server服務(wù)器端

        2.1. CAS服務(wù)器端軟件包下載

        • 下載版本為5.3

        下載服務(wù)器的overlay地址: https://github.com/apereo/cas-overlay-template/tree/5.3

        壓縮包:cas-overlay-template-5.3.zip

        解壓好后用命令:build.cmd package

        然后用編譯的目錄查看war包:

        2.2. 服務(wù)器端的基本部署和測(cè)試

        將war包放到tomcat的webapp中,然后啟動(dòng)tomcat

        訪問(wèn)地址:http://localhost:8080/cas 或者 http://localhost:8080/cas/login

        默認(rèn)用戶名和密碼在\webapps\cas\WEB-INF\classes\application.properties里面 用戶名:casuser 密碼:Mellon

        CAS服務(wù)端啟動(dòng)成功

        2.3. CAS Server服務(wù)器配置

        2.3.1 去除https認(rèn)證

        CAS默認(rèn)使用的是HTTPS協(xié)議,如果使用HTTPS協(xié)議需要SSL安全證書(shū)(需向特定的機(jī)構(gòu)申請(qǐng)和購(gòu)買)。如果對(duì)安全要求不高或是在開(kāi)發(fā)測(cè)試階段,可使用HTTP協(xié)議。我們這里講解通過(guò)修改配置,讓CAS使用HTTP協(xié)議。

        修改CAS服務(wù)端配置文件:

        \cas\WEB-INF\classes\application.properties里添加如下內(nèi)容:

        cas.tgc.secure=false
        cas.serviceRegistry.initFromJson=true

        \cas\WEB-INF\classes\services目錄下的HTTPSandIMAPS-10000001.json修改內(nèi)容如下:

        "serviceId" : "^(https|http|imaps)://.*"

        3. CAS Client客戶端配置(自己項(xiàng)目)

        Pom文件的依賴即pom.xml

        <dependency>
        <groupId>net.unicon.cas</groupId>
        <artifactId>cas-client-autoconfig-support</artifactId>
        <version>2.1.0-GA</version>
        </dependency>

        application.yml配置文件

        客戶端1

        server:
          port: 9010
        cas:
          server-url-prefix: http://localhost:8080/cas
          server-login-url: http://localhost:8080/cas/login
          client-host-url: http://localhost:9010
          validation-type: cas3

        注:?jiǎn)?dòng)類追加開(kāi)啟CAS的注解@EnableCasClient

        項(xiàng)目中新建一個(gè)測(cè)試類

        iimport io.swagger.annotations.Api;
        import org.springframework.web.bind.annotation.GetMapping;
        import org.springframework.web.bind.annotation.RestController;

        @RestController
        @Api(description = "SSO-CAS的測(cè)試")
        public class TestController {

            @GetMapping("/test1")
            public String test1(){
                return "test1....";
            }
        }

        客戶端2

        server:
          port: 9011
        cas:
          server-url-prefix: http://localhost:8080/cas
          server-login-url: http://localhost:8080/cas/login
          client-host-url: http://localhost:9011
          validation-type: cas3

        注:?jiǎn)?dòng)類追加開(kāi)啟CAS的注解@EnableCasClient

        項(xiàng)目中新建一個(gè)測(cè)試類

        import io.swagger.annotations.Api;
        import org.springframework.web.bind.annotation.GetMapping;
        import org.springframework.web.bind.annotation.RestController;

        @RestController
        @Api(description = "SSO-CAS的測(cè)試")
        public class TestController {

            @GetMapping("/test2")
            public String test1(){
                return "test2....";
            }
        }

        客戶端1,客戶端2和cas服務(wù)器搭建好之后,接下來(lái)我們進(jìn)行測(cè)試:

        1.首先啟動(dòng)tomcat服務(wù)器中的CAS Server。

        2.分別啟動(dòng)客戶端1和客戶端2,然后在瀏覽器地址欄輸入客戶端1的地址http://localhost:9010/test1

        在不登錄的狀態(tài),在瀏覽器的地址欄繼續(xù)輸入客戶端2的地址:http://localhost:9011/test2

        當(dāng)我們?cè)谄渲幸粋€(gè)登錄界面登錄賬號(hào)后(假設(shè)登錄客戶端2)就會(huì)跳轉(zhuǎn)到登陸后的界面,如下圖:

        我們?cè)俅卧跒g覽器窗口重新輸入客戶端1,http://localhost:9010/test1,或者在剛剛輸入客戶端頁(yè)面重新刷新,不用登錄即可進(jìn)入頁(yè)面,如下圖:

        以上就是單點(diǎn)登錄的測(cè)試。


        4 款 MySQL 調(diào)優(yōu)工具,公司大神都在用!

        面試官問(wèn):數(shù)據(jù)庫(kù) delete 表數(shù)據(jù),磁盤空間還是被一直占用,為什么?

        面試官:Redis用過(guò)是吧?那你講講Redis都有哪些監(jiān)控指標(biāo)?

        免費(fèi)的XShell替代品,又來(lái)一款國(guó)產(chǎn)良心工具....

        代碼總是被嫌棄寫(xiě)的太爛?裝上這個(gè)IDEA插件再試試!

        最近面試BAT,整理一份面試資料Java面試BATJ通關(guān)手冊(cè),覆蓋了Java核心技術(shù)、JVM、Java并發(fā)、SSM、微服務(wù)、數(shù)據(jù)庫(kù)、數(shù)據(jù)結(jié)構(gòu)等等。

        獲取方式:點(diǎn)“在看”,關(guān)注公眾號(hào)并回復(fù) Java 領(lǐng)取,更多內(nèi)容陸續(xù)奉上。

        文章有幫助的話,在看,轉(zhuǎn)發(fā)吧。

        謝謝支持喲 (*^_

        瀏覽 36
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            性猛交xxxx乱大交孕妇2 | 精品人妻天天做天天做天天爽 | 成人做爰A片一区二区app | 影音先锋男人在线资源 | 男女尻屄视频 | 日本免费一区二区三曲 | 麻豆av网站 | 色色9999 | 国产伦精品一区二区三区妓女原神 | 哈~好长np乱h |