CAS SSO單點登入客戶端環境搭建之Spring Cloud + Spring Boot 企業架構

JIAN2 發表於 2021-11-25
Spring

1.準備兩個個全新的tomcat8,用來作為sso單點登入的客戶端,如下:


2.修改server.xml檔案(因為考慮到埠衝突,所以將裡面的埠全部改掉)

需要框架原始碼的朋友可以看我個人簡介聯絡我

CAS SSO單點登入客戶端環境搭建之Spring Cloud + Spring Boot  企業架構

 其中apache-tomcat-client1-8082的埠改成了8082
其中apache-tomcat-client2-8083的埠改成了8083
apache-tomcat-client1-8082新增:

<Host name="sso1.jeesz.cn"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
apache-tomcat-client1-8083新增:
<Host name="sso2.jeesz.cn"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

3.建立兩個web工程,sso1,sso2,配置web.xml檔案如下(這裡只以sso1為例,sso2的配置可以在專案中檢視):

<listener>
    <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>
  </listener>
  <filter>
    <filter-name>CAS Single Sign Out Filter</filter-name>
    <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>CAS Single Sign Out Filter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  <filter>
    <filter-name>CAS Filter</filter-name>
    <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
    <init-param>
      <param-name>casServerLoginUrl</param-name>
      <param-value>
    </init-param>
    <init-param>
      <param-name>serverName</param-name>
      <param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>CAS Filter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  <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>
    </init-param>
    <init-param>
      <param-name>serverName</param-name>
      <param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>CAS Validation Filter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  <filter>
    <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>
    <filter-class>  
                org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  <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 Assertion Thread Local Filter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>


注意標紅色的區域
4.將sso1、sso2兩個專案分別打成war包匯入到兩個tomcat中,分別啟動執行,
此時訪問:會出現一個異常,我們截圖用來記錄錯誤

CAS SSO單點登入客戶端環境搭建之Spring Cloud + Spring Boot  企業架構

這個錯誤很明顯,我們需要配置當前容器支援http,找到cas專案下的HTTPSandIMAPS-10000001.json檔案,路徑為:\WEB-INF\classes\services,裡面增加http協議支援。

CAS SSO單點登入客戶端環境搭建之Spring Cloud + Spring Boot  企業架構

5.重啟sso的服務端,再次訪問(成功跳轉)

CAS SSO單點登入客戶端環境搭建之Spring Cloud + Spring Boot  企業架構

6.其中sso2的客戶端,訪問(成功跳轉)

CAS SSO單點登入客戶端環境搭建之Spring Cloud + Spring Boot  企業架構

需要框架原始碼的朋友可以看我個人簡介聯絡我

7.反覆用預設賬號測試登入登出,訪問sso1,sso2應用,可以確認只需要登入一次



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70006413/viewspace-2844118/,如需轉載,請註明出處,否則將追究法律責任。