CAS SSO單點登入客戶端環境搭建

JIAN2發表於2022-08-12

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

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

需要原始碼

CAS SSO單點登入客戶端環境搭建

CAS SSO單點登入客戶端環境搭建


其中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中,分別啟動執行, 此時訪問: sso1.jeesz.cn:8082/sso1 會出現一個異常,我們截圖用來記錄錯誤

CAS SSO單點登入客戶端環境搭建


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


CAS SSO單點登入客戶端環境搭建


5.重啟sso的服務端,再次訪問 sso1.jeesz.cn:8082/sso1 (成功跳轉)

CAS SSO單點登入客戶端環境搭建


6.其中sso2的客戶端,訪問 sso2.jeesz.cn:8083/sso2 (成功跳轉)

CAS SSO單點登入客戶端環境搭建


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


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

相關文章