apache cas-4.2.7 + tomcat8.5

1.运行环境

jdk8

tomcat8.5

gradle-4.3.1

idea2.1

服务端 CAS-server-4.2.7 源码下载地址 https://github.com/apereo/cas/releases/tag/v4.2.7
客户端 CAS-client-3.4.1  源码下载地址 https://github.com/apereo/java-cas-client
或者 
<dependency>
  <groupId>org.jasig.cas.clientgroupId>
  <artifactId>cas-client-coreartifactId>
  <version>3.4.1version>
dependency>


2.设置环境

2.1下载cas-4.2.7到自己想放的目录

2.2解压tomcat 到 D:\sso 复制3份 

D:\sso\apache-tomcat-8-cas 

D:\sso\apache-tomcat-8-c1 

D:\sso\apache-tomcat-8-c2 

2.3解压 gradle-4.3.1 到 D:\gradle-4.3.1

apache cas-4.2.7 + tomcat8.5_第1张图片

和jdk一样,直接解压,然后配置环境变量就行了
GRADLE_HOME   D:\gradle-4.4.1
Path %GRADLE_HOME%\bin
apache cas-4.2.7 + tomcat8.5_第2张图片

测试: 在cmd窗口中输入 gradle -v 输出版本信息。

2.4 修改hosts
单点登录主要用的的是域名下的 保存登录信息 cookies,所以测试单点登录首先要配置3个域名,
本机配置 测试域名 是通过修改 hosts 文件  C:\Windows\System32\drivers\etc\hosts 
127.0.0.1 server.cas.com
127.0.0.1 client1.cas.com
127.0.0.1 client2.cas.com

2.5 证书配置

生成证书

keytool -genkey -alias cas -keyalg RSA -keysize 1024 -keypass a111111 -validity 365 -keystore d:\sso\cas.keystore -storepass a111111

名字和姓氏要填的和 上面你打算用的域名一样



导出证书
keytool -export -alias cas -keystore d:\sso\cas.keystore -file d:\sso\cas.crt
导入证书导入到jdk中
keytool -import -alias cas -file d:\sso\cas.crt -keystore D:\Java\jdk1.8.0_111\jre\lib\security\cacerts -storepass changeit

3 CAS服务端

3.1编译cas服务端

从CMD界面 进入cas web目录 输入gradle build 


编译完成后 找到war包

apache cas-4.2.7 + tomcat8.5_第3张图片


3.2 修改服务端tomcat

把cas-server-webapp-4.2.7.war 修改名字,拷贝到 D:\sso\apache-tomcat-8-cas\webapps\cas.war

修改server.xml 

找到
               
               
 
 
    org.jasig.cas.client.session.SingleSignOutHttpSessionListener
 

 
 
    CAS Single Sign Out Filter
    org.jasig.cas.client.session.SingleSignOutFilter
   
      casServerUrlPrefix
      https://server.cas.com:8443/cas/
   

 

 
    CAS Single Sign Out Filter
    /*
 

 
 
    CASFilter
    org.jasig.cas.client.authentication.AuthenticationFilter
   
     
      casServerLoginUrl
      https://server.cas.com:8443/cas/login
   

   
     
      serverName
      http://client1.cas.com:18080
   

   
      useSession
      true
   

   
      redirectAfterValidation
      true
   

 

 
    CASFilter
   

    /*
 

 
 
    CAS Validation Filter
   
      org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter
   

   
      casServerUrlPrefix
      https://server.cas.com:8443/cas/
   

   
      serverName
      http://client1.cas.com:18080
   

 

 
    CAS Validation Filter
   
    /*
 

 
 
    CAS HttpServletRequest Wrapper Filter
   
      org.jasig.cas.client.util.HttpServletRequestWrapperFilter
   

 

 
    CAS HttpServletRequest Wrapper Filter
    /*
 

 
 
    CAS Assertion Thread Local Filter
    org.jasig.cas.client.util.AssertionThreadLocalFilter
 

 
    CAS Assertion Thread Local Filter
    /*
 

 

修改server.xml 端口号改一改 我用的 

http://client1.cas.com:18080/client1
http://client2.cas.com:28080/client2

改完就能访问了 

apache cas-4.2.7 + tomcat8.5_第8张图片

退出登录 : https://server.cas.com:8443/cas/logout

注遇到的难以解决的问题:

如果访问报错,上网搜了是证书问题 ,那很可能是 导入到jdk 里的证书没有生效,我是直接重启电脑,让他生效的。

参考博客

http://blog.csdn.net/u012554102/article/details/50274365

http://blog.csdn.net/zzq900503/article/details/54709801









你可能感兴趣的:(单点登录)