1. 程式人生 > >cas單點登陸系統-建立單點登陸系統的應用

cas單點登陸系統-建立單點登陸系統的應用

dep authent loginurl get nth spring password list c項目

上一篇如果已經操作成功,說明casServer已經實現了,下面就是搭建casClient與casServer聯合調試。代碼已經上傳到github上。你可以下載看看,如果自己在搭建的過程中遇到問題,你也可以加我qq。

在github上,我創建了兩個項目,分別是myCasServer,myCasClient。myCasClient是使用intellij idea搭建的maven,springmvc項目,下面是搭建的流程。

建立應用主要分下面三個部分:  

    1.1、添加cas-client-core-xxx.jar到pom.xml中

  1.2、配置過濾器到web.xml

  1.3、添加證書到信任庫。

1.1、添加cas-client-core-xxx.jar到pom.xml中

    <dependency>
      <groupId>org.jasig.cas.client</groupId>
      <artifactId>cas-client-core</artifactId>
      <version>3.1.11</version>
    </dependency>

1.2、配置過濾器

這裏一共要配置4個,每個過濾器的作用可以參考:http://elim.iteye.com/blog/2142631,也可以自己下載源碼看看。

<context-param>
    <param-name>serverName</param-name>
    <param-value>http://localhost:8080</param-value>
  </context-param>

  <filter>
    <filter-name>casAuthenticationFilter</filter-name>
    <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class
> <init-param> <param-name>casServerLoginUrl</param-name> <param-value>https://localhost:8443/cas/login</param-value> </init-param> </filter> <filter> <filter-name>casTicketValidationFilter</filter-name> <filter-class>org.jasig.cas.client.validation.Cas10TicketValidationFilter</filter-class> <init-param> <param-name>casServerUrlPrefix</param-name> <param-value>https://localhost:8443/cas</param-value> </init-param> </filter> <filter> <filter-name>casHttpServletRequestWrapperFilter</filter-name> <filter-class>org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class> </filter> <filter> <filter-name>casAssertionThreadLocalFilter</filter-name> <filter-class>org.jasig.cas.client.util.AssertionThreadLocalFilter</filter-class> </filter> <filter-mapping> <filter-name>casAuthenticationFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>casTicketValidationFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>casHttpServletRequestWrapperFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>casAssertionThreadLocalFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>

1.3、添加證書到信任庫:關於證書不懂的可以參考:http://blog.csdn.net/szzt_lingpeng/article/details/51247980

第一步:使用java自帶keytool創建本地密鑰庫
        keytool -genkey -alias tomcat -keyalg RSA
第二步:把密鑰庫導出成證書文件
        keytool -export -alias tomcat -file "%JAVA_HOME%/jre/lib/security/tomcat.crt" -storepass yourpassword
第三步:將創建過的證書導入到java證書庫
        keytool -import -alias tomcat -keystore "%JAVA_HOME%/jre/lib/security/cacerts" -file "%JAVA_HOME%/jre/lib/security/tomcat.crt" -storepass Awsdrain@9

附:
查看是否有重名的證書:
        keytool -list -v -alias tomcat -keystore "%JAVA_HOME%/jre/lib/security/cacerts" -storepass changeit
刪除已經創建的證書:
        keytool -delete -alias tomcat -keystore "%JAVA_HOME%/jre/lib/security/cacerts" -storepass changeit  

第一步:畫紅色一定要配置成域名,本地的配置成localhost。

技術分享圖片

第二步:技術分享圖片

第三步:

技術分享圖片

驗證:

將myCasServer與myCasClient打包部署到tomcat下。

註意,如果myCasServer的登陸方式沒有改,那麽就可以使用:用戶名和密碼一樣的方式登陸,我的myCasServer登陸方式已經更改,需要創建數據庫cas,並且添加表t_user,在裏面添加用戶名和密碼的方式登陸。

CREATE TABLE `t_user` (
  `username` varchar(32) NOT NULL,
  `password` varchar(32) DEFAULT NULL,
  PRIMARY KEY (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

輸入地址:localhost:8080/myCasClient/

驗證截圖順序依次是:

技術分享圖片

技術分享圖片

技術分享圖片

cas單點登陸系統-建立單點登陸系統的應用