1. 程式人生 > >cas5.3.2單點登入-骨架搭建(一)

cas5.3.2單點登入-骨架搭建(一)

域名對映

修改/etc/hosts檔案,新增服務端域名(server.cas.com) 以及兩個客戶端的域名(app1.cas.com , app2.cas.com)
這裡寫圖片描述

編譯

解壓zip,命令列進去,執行mvn clean package
結束之後會出現 target 資料夾,裡面有一個cas.war包,這個war包就是我們要執行的程式。

本地配置tomcat通過https訪問

生成keystore

keytool -genkey -alias tomcat -keyalg RSA -validity 3650 -keystore /Users/wangsaichao/Desktop/tomcat.keystore

-alias tomcat :表示祕鑰庫的別名是tomcat,實際操作都用別名識別,所以這個引數很重要。
-validity 3650 : 表示證書有效期10年。
祕鑰庫口令 我輸入的是 changeit
名字與姓氏輸入伺服器域名,其它一路回車,最後如果顯示正確 輸入 ‘y’ 就行了。
tomcat祕鑰口令我採用與祕鑰庫相同,因此也是一路回車。
這裡寫圖片描述
之後可以使用以下命令檢視生成祕鑰庫的檔案內容:

keytool -list -keystore /Users/wangsaichao/Desktop/tomcat.keystore 

這裡寫圖片描述

根據keystore生成crt檔案

#輸入第一步中keystore的密碼changeit
keytool -export -alias tomcat -file /Users/wangsaichao/Desktop/tomcat.cer -keystore /Users/wangsaichao/Desktop/tomcat.keystore -validity 3650

這裡寫圖片描述

信任授權檔案到jdk

sudo keytool -import -keystore /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/security/cacerts -file /Users/wangsaichao/Desktop/tomcat.cer -alias tomcat -storepass changeit

證書庫cacerts的預設口令為changeit ,這也是為什麼我上面的密碼都是用的它,防止混淆,直接都設成一樣的。
這裡寫圖片描述
注意:我在命令的最前面加了 sudo 是因為我的環境是mac 直接操作jdk沒有許可權。
刪除授權檔案命令如下,刪除證書也需要輸入密碼:changeit

sudo keytool -delete -alias tomcat -keystore /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/security/cacerts

檢視cacerts中證書 命令如下:

keytool -list -v -keystore /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/security/cacerts

修改tomcat的配置檔案server.xml

新增以下內容:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="200" SSLEnabled="true" scheme="https"
           secure="true" clientAuth="false" sslProtocol="TLS"
           keystoreFile="/Users/wangsaichao/Desktop/tomcat.keystore"
           keystorePass="changeit"/>

這裡寫圖片描述

讓chrome瀏覽器信任證書

這裡寫圖片描述
這裡寫圖片描述

啟動CAS服務

將第一步編譯好的cas.war部署到tomcat中啟動,然後訪問https://server.cas.com:8443/cas/login 如果提示簽名不正確之類的就點選高階/詳細資訊,繼續訪問。
這裡寫圖片描述
旁邊Static Authentication 提示你:你現在只有一個寫死的使用者預設賬號:casuser 預設密碼:Mellon 僅有這一個使用者,目前這個服務端只能看看,沒什麼實際用途。建議您將CAS連線到LDAP、JDBC等。

什麼是Overlay

overlay可以把多個專案war合併成為一個專案,並且如果專案存在同名檔案,那麼主專案中的檔案將覆蓋掉其他專案的同名檔案。使用maven 的Overlay配置實現無侵入的改造cas。

使用Overlay生成真正有用的服務端

新建專案

pom.xml

pom是從解壓的cas.war中拷貝出來的,將無用的配置刪除。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd ">
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.apereo.cas</groupId>
    <artifactId>cas-server-base</artifactId>
    <packaging>war</packaging>
    <version>1.0</version>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>${springboot.version}</version>
                <configuration>
                    <mainClass>org.springframework.boot.loader.WarLauncher</mainClass>
                    <addResources>true</addResources>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.6</version>
                <configuration>
                    <warName>cas</warName>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                    <recompressZippedFiles>false</recompressZippedFiles>
                    <archive>
                        <compress>false</compress>
                        <manifestFile>${project.build.directory}/war/work/org.apereo.cas/cas-server-webapp${app.server}/META-INF/MANIFEST.MF
                        </manifestFile>
                    </archive>
                    <overlays>
                        <overlay>
                            <groupId>org.apereo.cas</groupId>
                            <artifactId>cas-server-webapp${app.server}</artifactId>
                        </overlay>
                    </overlays>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.3</version>
            </plugin>
        </plugins>
        <finalName>cas</finalName>
    </build>

    <dependencies>
        <dependency>
            <groupId>org.apereo.cas</groupId>
            <artifactId>cas-server-webapp${app.server}</artifactId>
            <version>${cas.version}</version>
            <type>war</type>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.apereo.cas</groupId>
            <artifactId>cas-server-support-jdbc</artifactId>
            <version>${cas.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apereo.cas</groupId>
            <artifactId>cas-server-support-jdbc-drivers</artifactId>
            <version>${cas.version}</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.36</version>
        </dependency>
        <!--<dependency>
            <groupId>org.jasig.cas</groupId>
            <artifactId>cas-server-core-authentication</artifactId>
            <version>4.2.7</version>
        </dependency>-->
        <!--<dependency>
            <groupId>org.apereo.cas</groupId>
            <artifactId>cas-server-core-util</artifactId>
            <version>${cas.version}</version>
        </dependency>-->
    </dependencies>

    <properties>
        <cas.version>5.3.2</cas.version>
        <springboot.version>2.0.0.RELEASE</springboot.version>
        <!-- app.server could be -jetty, -undertow, -tomcat, or blank if you plan to provide appserver -->
        <app.server>-tomcat</app.server>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <repositories>
        <repository>
            <id>sonatype-releases</id>
            <url>http://oss.sonatype.org/content/repositories/releases/</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
            <releases>
                <enabled>true</enabled>
            </releases>
        </repository>
        <repository>
            <id>sonatype-snapshots</id>
            <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
            <releases>
                <enabled>false</enabled>
            </releases>
        </repository>
        <repository>
            <id>shibboleth-releases</id>
            <url>https://build.shibboleth.net/nexus/content/repositories/releases</url>
        </repository>
        <repository>
            <id>spring-milestones</id>
            <url>https://repo.spring.io/milestone</url>
        </repository>
    </repositories>
</project>

最終專案目錄如下:
這裡寫圖片描述
其中application.properties和META-INF資料夾從 css.war 裡面拷貝出來,還有log4j2.xml也是從cas.war中拷貝出來的,因為預設的日誌生成位置是在/etc/cas/logs下,啟動會報錯。

修改application.properties

server.ssl.enabled=true
server.ssl.key-store=file:/Users/wangsaichao/Desktop/tomcat.keystore
server.ssl.key-store-password=changeit
server.ssl.key-password=changeit
server.ssl.keyAlias=tomcat

這裡寫圖片描述

在IntelliJ IDEA配置Tomcat

1.點選Run-Edit Configurations…

這裡寫圖片描述

2.新增tomcat

這裡寫圖片描述

3.配置tomcat如下:

這裡寫圖片描述
這裡寫圖片描述

4.第一次啟動會出現以下介面,選accept就行了

相關推薦

cas5.3.2登入-骨架搭建()

域名對映 修改/etc/hosts檔案,新增服務端域名(server.cas.com) 以及兩個客戶端的域名(app1.cas.com , app2.cas.com) 編譯 解壓zip,命令列進去,執行mvn clean package

cas5.3.2登入-配置記住我(十六)

正常情況下,在application.properties中配置開啟記住我,在登入頁面是會顯示記住我的文字框,如下圖: 但是由於我們使用的是自定義登入頁面,配置了記住我之後,頁面上也沒有顯示該

cas5.3.2登入-分散式部署(二十)

隨著使用者量的上升,單機的cas服務肯定是不行的,因此需要分散式來部署多臺,要滿足分散式部署,需要滿足下面兩個條件: 1、採用統一的ticket存取策略,所有ticket的操作都從中央快取redi

SSO之CAS登入詳細搭建教程

<!-- 用於單點退出,該過濾器用於實現單點登出功能,可選配置--> <listener> <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener

cas登入環境搭建

公司最近想做一個類似單點登入功能的專案,考慮用cas還是用memcache達到單點登入功能。自己以前搭過cas+shiro的環境,記憶已有些模糊。重新搭一下cas的環境,遇到了一些問題,寫下來,希望能幫到某些人,也留著以後忘記的時候,拿來看看。以下是一些步驟,網上也有很多類

day77_淘淘商城專案_10_ Linux下的Nginx代理詳解(配置虛擬主機+實現反向代理+實現負載均衡+高可用) + 登入系統工程搭建 + SSO系統介面文件講解_匠心筆記

淘淘商城專案_10 1、目前訪問系統使用的方式存在的問題 2、什麼是nginx 3、nginx的應用場景 4、nginx的安裝 4.1、要求的安裝環境 4.2、安裝步驟 4.3、啟動nginx

CAS登入-介紹(

CAS單點登入-介紹(一) 由於之前工作需要都是對接現成的單點登陸服務,基於自己興趣目前正在研究CAS單點登陸原理和搭建以及不同的應用場景對接方式。特此來記錄學習的過程以及分享,希望能幫助大家。 1.CAS是什麼? CAS是Central Authenticat

CAS5.3登入服務端搭建與整合springboot

什麼是單點登入 單點登入(Single Sign On),簡稱為 SSO,是目前比較流行的企業業務整合的解決方案之一。SSO的定義是在多個應用系統中,使用者只需要登入一次就可以訪問所有相互信任的應用系統。 SSO是概念,實現SSO需要用到CAS框架 使用cas框架實現單點登陸 有多個不同伺服器的

Atitit 登入實現幾種模式架構圖 目錄 1. 因此要點也就以下兩個:儲存信任驗證信任 1 1.1. 共享cookie (最簡單 1 1.2. 通過 url帶token引數跳轉 1 1.3.

Atitit 單點登入實現幾種模式架構圖   目錄 1. 因此要點也就以下兩個:儲存信任驗證信任 1 1.1. 共享cookie (最簡單 1 1.2. 通過 url帶token引數跳轉 1 1.3. 頁面重定向(複雜 1 1.3.1. 父子應用重定向 2

Docker 建立 Crucible4.6.1 以及與 Crowd3.3.2 實現 SSO 登入

目錄 目錄 1、介紹 1.1、什麼是 Crucible? 2、Crucible 的官網在哪裡? 3、如何下載安裝? 4、對 Crucible 進行配置 4.1、破解 Crucible 第一步 4.2、破解 Crucible 第二步,獲取授權許

Docker 建立 Crowd3.3.2 以及打通 Jira Software7.12.3和Confluence6.12.2 SSO 登入

目錄 目錄 1、介紹 1.1、什麼是Crowd? 2、Crowd 的官網在哪裡? 3、如何下載安裝? 4、對 Crowd 進行配置 4.1、破解 Crowd 第一步 4.2、破解 Crowd 第二步,獲取授權許可 4.2、Crowd

GitLab11.3.9 使用 Crowd3.3.2 的帳號實現 SSO 登入,以及GitLab配置騰訊企業郵箱

GitLab11.3.9 的安裝方法: 點選檢視。   Crowd3.3.2 的安裝方法:點選檢視。   需要先在 Crowd 建立應用程式,參考 <Docker 建立 Crowd3.3.2 以及打通 Jira Software7.12.3和Confluence6.12.2 SSO 單點登入>

02登入CAS5.3.4資料庫JDBC認證

上一章搭建了單點登入的基本搭建,但是它的使用者名稱和密碼是寫死的。顯然,這樣是不行的,使用者名稱密碼一般都存放在資料庫中。本文將介紹如何讓CAS支援MySQL儲存使用者名稱和密碼。 1.初始化MySQ

更多免費初級中級高階大資料java視訊教程下載 加(微***信((號keepper,請備註java或掃下面23維4碼登入

更多免費初級中級高階大資料java視訊教程下載 加(微***信((號keepper,請備註java或掃下面2二3維4碼單點登入java視訊教程單點登入17.mp4java視訊教程單點登入18.mp4java視訊教程單點登入19.mp4java視訊教程單點登入20.mp4java視訊教程單點登入21.mp4ja

登入cas綜述之cas4.2.7服務端+cas客戶端+示例程式+環境搭建說明-陳杰

3其他說明 1環境搭建以及把示例程式跑起來        一切跑不起來的程式和走不通的教程都是耍流氓,二話不說,先按照我的步驟把程式跑起來在說吧。 1.1安裝JDK1.8       安裝jdk1.8

CAS5.2x登入()——搭建cas伺服器

單點登入的介紹 單點登入(Single Sign On ,簡稱SSO)是目前比較流行的服務於企業業務整合的解決方案之一,SSO 使得在多個應用系統中,使用者只需要登入一次就可以訪問所有相互信任的應用系統。 CAS(Central Authentication

基於CAS的登入SSO[3]: 改造cas-overlays-template支援Redis儲存Ticket

基於CAS的單點登入SSO[3]: 改造cas-overlays-template支援Redis儲存Ticket 作者:家輝,日期:2017-08-20 CSDN部落格: http://blog.csdn.net/gobitan 摘要:預

Java架構-(十二) 整合spring cloud雲架構 - SSO登入之OAuth2.0 登出流程(3)

上一篇我根據框架中OAuth2.0的使用總結,畫了一個根據使用者名稱+密碼實現OAuth2.0的登入認證的流程圖,今天我們看一下logout的流程: Java程式碼 我這裡只是簡單寫了一些登出的程式碼,我們會在後面的文章中詳細貼出所有程式碼供大家參考,而且會從建立資料庫,到執

Java架構-(十) 整合spring cloud雲架構 - SSO登入之OAuth2.0登入流程(2)

上一篇是站在巨人的肩膀上去研究OAuth2.0,也是為了快速幫助大家認識OAuth2.0,閒話少說,我根據框架中OAuth2.0的使用總結,畫了一個簡單的流程圖(根據使用者名稱+密碼實現OAuth2.0的登入認證): 上面的圖很清楚的描述了當前登入login的流程,現在我們針對於log

SSO CAS登入搭建詳細步驟及原始碼

1.因為是本地模擬sso環境,而sso的環境測試需要域名,所以需要虛擬幾個域名出來,步驟如下: 2.進入目錄C:\Windows\System32\drivers\etc 3.修改hosts檔案 127.0.0.1  jeesz.cn 127.0.0.1  sso1.