CAS单点登录及数据库验证登录简易小例

这几天公司业务上需要使用到CAS单点登录,于是自己动手做了一个简易的小例子。

一、环境:

1.tomcat-7.0.70

2.jdk1.7.0_79

3.CAS  Server版本 4.0.0https://www.apereo.org/projects/cas/download-cas

4.CAS Client版本:3.3.3http://developer.jasig.org/cas-clients/)


二、创建证书

这里使用的是本机上安装的JDK自带的keytool工具生成证书

生成证书命令:keytool -genkey -alias ymkj -keyalg RSA -keystore d:/key/ymkjkey(已手动创建了D盘下key文件夹)

CAS单点登录及数据库验证登录简易小例_第1张图片


三、导出证书

导出证书命令:D:\keys>keytool -export -file d:/key/ymkj.crt -alias ymkj -keystore d:/key/ymkjkey


四、为客户端JVM导入证书

命令:keytool -import -keystore C:\Java\jdk1.7.0_79\jre\lib\security\cacerts -file d:/key/ymkj.crt -alias ymkj

 

注意,因为通常情况下JDK是安装在C:\Program Files目录下,所以会出现这样的问题:


因此,故将C:\Program Files目录下的JAVA文件夹拷贝到C盘目录下,再更新环境变量JAVA_HOMEJRE_HOME为当前的路径。最后执行导入证书命令并信任这个认证(输入y)

如果提示: 
keytool error: java.io.IOException: Keystore was tampered with, or password was incorrect,那么输入密码:changeit 
这是因为JDK安装后会默认创建一个密钥库,密码为:changeit 

 

五、应用证书到tomcat

打开tomcat目录的conf/server.xml文件,找到:

修改为


		maxThreads="150" port="8443" 
		protocol="org.apache.coyote.http11.Http11Protocol" 
		scheme="https" secure="true" sslProtocol="TLS"/>


六、配置CAS Server

可在网上下载 cas-server-webapp-4.0.0.war文件,然后改名为cas.war,然后复制castomcat/webapps目录下


七、配置域名

C:\Windows\System32\drivers\etc\hosts内,添加:

127.0.0.1 sso.ymkj.com

127.0.0.1 sso.ymkj1.com

127.0.0.1 sso.ymkj2.com

第一个用于 CAS Server,第二个和第三个将用于CAS Client1CAS Client2

 

八、运行

  访问CAS应用了,要使用HTTPS加密协议访问

1.在地址栏输入:https://sso.ymkj.com:8443/cas/login

CAS单点登录及数据库验证登录简易小例_第2张图片

2.点击继续浏览,输入CAS Server 4.0.0默认的登录名和密码casuser /Mellon :

CAS单点登录及数据库验证登录简易小例_第3张图片

4.如果需要退出,地址栏输入: https://sso.ymkj.com:8443/cas/logout

至此,CAS Server 配置初步完成。


九、配置客户端

1.下载两个tomcat,改名为tomcat-ym1tomcat-ym2

2.增加新环境变量CATALINA_HOME1,CATALINA_HOME1,以及CATALINA_BASE1, CATALINA_BASE2,值分别为两个新的tomcat的地址

3.修改tomcat-ym1tomcat-ym2中的startup.bat,把其中所有CATALINA_HOME改为     相应的CATALINA_HOME1CATALINA_HOME2 

4.修改tomcat-ym1tomcat-ym2中的catalina.bat,把其中所有的CATALINA_HOME相应的CATALINA_HOME1CATALINA_HOME2CATALINA_BASE改为相应的CATALINA_BASE1CATALINA_BASE2

5.修改tomcat的端口(5处)

 tomcat-ym1tomcat-ym2conf/server.xml文件中找到如下3处内容:

,
分别改为:


以及


6.配置拦截器

tomcat-ym1tomcat-ym2webapps\root\WEB-INF\web.xml 中,分别添加:


    
        casServerLogoutUrl
        https://sso.ymkj.com:8443/cas/login
    
    
        org.jasig.cas.client.session.SingleSignOutHttpSessionListener
    
    
        CAS Single Sign Out Filter
        org.jasig.cas.client.session.SingleSignOutFilter
    
    
        CAS Single Sign Out Filter
        /*
    
    
        CAS Filter
        org.jasig.cas.client.authentication.AuthenticationFilter
        
            casServerLoginUrl
            https://sso.ymkj.com:8443/cas/login
        
        
            serverName
            http://sso.ymkj1.com:18080
        
    
    
        CAS Filter
        /*
    
    
        CAS Validation Filter
        
            org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter
        
        
            casServerUrlPrefix
            https://sso.ymkj.com:8443/cas
        
        
            serverName
            http://sso.ymkj1.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
        /*
    

和:


    
        casServerLogoutUrl
        https://sso.ymkj.com:8443/cas/login
    
    
        org.jasig.cas.client.session.SingleSignOutHttpSessionListener
    
    
        CAS Single Sign Out Filter
        org.jasig.cas.client.session.SingleSignOutFilter
    
    
        CAS Single Sign Out Filter
        /*
    
    
        CAS Filter
        org.jasig.cas.client.authentication.AuthenticationFilter
        
            casServerLoginUrl
            https://sso.ymkj.com:8443/cas/login
        
        
            serverName
            http://sso.ymkj2.com:28080
        
    
    
        CAS Filter
        /*
    
    
        CAS Validation Filter
        
            org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter
        
        
            casServerUrlPrefix
            https://sso.ymkj.com:8443/cas
        
        
            serverName
            http://sso.ymkj2.com:28080
        
    
    
        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
        /*
    

7.添加jar包

 下载cas-client-3.3.3,解压之后将modules目录下的jar包根据自身情况拷入到tomcat-ym1\webapps\ROOT\WEB-INF\lib里(我是选择全部拷入)和tomcat-ym2\webapps\ROOT\WEB-INF\lib里。


十、通过数据库验证登录

我使用的是MySQL数据库:

1、需要的jar包有cas-server-support-jdbc.jar,mysql-connector-java-5.1.24,  c3p0-0.9.1.2.jar,拷入到webapps\cas\WEB-INF\lib 中

2、在cas\WEB-INF下找到deployerConfigContext.xml进行修改:

 注释掉:

  
      
          
              
          
      

添加:

  
  
  
  
     

再找到id=authenticationManager的bean,

  
          
              
   
  
  
              
          
   
          
          
     

是为了注释掉key-ref="primaryAuthenticationHandler"的部分,然后引入id=dbAuthHandler的bean。

3重启tomcat 进行验证:打开tomcat-ym1,然后输入数据库user表中存储的用户名和密码:

CAS单点登录及数据库验证登录简易小例_第4张图片

点击login,验证成功。


4.设置 tomcat-ym1 tomcat-ym2的进入首页,代码为(另有css和其他的代码未贴出):

page 1 welcome you

to page 2---- -------logout

page 2 welcome you

to page 1---- -------logout

tomcat-ym1页面:

CAS单点登录及数据库验证登录简易小例_第5张图片

点击超链接跳转到tomcat-ym2:

CAS单点登录及数据库验证登录简易小例_第6张图片



至此,这个小例子就完成了~








你可能感兴趣的:(CAS单点登录及数据库验证登录简易小例)