1. 程式人生 > >cas搭建之客戶端搭建

cas搭建之客戶端搭建

 1、新增客戶端到你的專案中

Maven的pom.xml配置中新增

           <dependency>

              <groupId>org.jasig.cas.client</groupId>

              <

artifactId>cas-client-core</artifactId>

              <version>3.3.3</version>

           </dependency>

           <

dependency>

              <groupId>commons-logging</groupId>

              <artifactId>commons-logging</artifactId>

              <

version>1.2</version>

           </dependency>

Webapp所在工程的pom.xml中新增

       <dependency>

           <groupId>org.jasig.cas.client</groupId>

           <artifactId>cas-client-core</artifactId>

       </dependency>

       <dependency>

           <groupId>commons-logging</groupId>

           <artifactId>commons-logging</artifactId>

       </dependency>

2、在客戶端專案的web.xml配置過濾器

新增

<!-- ======================== 單點登入開始 ======================== -->

    <!-- 用於單點退出,該過濾器用於實現單點登出功能,可選配置 -->

    <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>CASFilter</filter-name>

       <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>

       <init-param>

           <param-name>casServerLoginUrl</param-name>

           <param-value>https://www.yunhetong.com:8443/cas/login</param-value>

       </init-param>

       <init-param>

           <param-name>serverName</param-name>

           <param-value>http://localhost:8080</param-value>

       </init-param>

    </filter>

    <filter-mapping>

       <filter-name>CASFilter</filter-name>

       <url-pattern>/*</url-pattern>

    </filter-mapping>

 

    <!-- 該過濾器負責對Ticket的校驗工作,必須啟用它 -->

    <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>https://www.yunhetong.com:8443/cas</param-value>

       </init-param>

       <init-param>

           <param-name>serverName</param-name>

           <param-value>http://localhost:8080</param-value>

       </init-param>

    </filter>

    <filter-mapping>

       <filter-name>CAS Validation Filter</filter-name>

       <url-pattern>/*</url-pattern>

    </filter-mapping>

 

    <!-- 該過濾器負責實現HttpServletRequest請求的包裹,比如允許開發者通過HttpServletRequestgetRemoteUser()方法獲得SSO登入使用者的登入名,可選配置。 -->

    <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>

 

    <!-- 該過濾器使得開發者可以通過org.jasig.cas.client.util.AssertionHolder來獲取使用者的登入名。比如AssertionHolder.getAssertion().getPrincipal().getName()

       <filter>-->

    <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>

    <!-- ======================== 單點登入結束 ======================== -->

程式碼重新編譯釋出後,訪問原先地址http://www.yunhetong.com:7777/resource

自動跳轉到cas單點登入的介面


輸入使用者名稱和密碼後自動跳轉回需要訪問的介面

 

        

五、本地測試

需要上linux系統上把/home/java/keys/demo.crt檔案拷貝到本地,然後倒入到本地的jre中才能進行執行