java+maven CAS单点登录服务端和客户端的搭建

1、服务端(http)

  • 部署

    • 下载地址cas4.0.0服务端
    • 解压并进入目录cas-server-4.0.0-release.zip\cas-server-4.0.0\modules,找到war包cas-server-webapp-4.0.0.war
    • 将war包改名为cas,放到tomcat的webapps下发布项目
    • 打开浏览器输入http://localhost:8080/cas,成功如下图
  • 配置mysql连接

    • 打开cas\WEB-INF\deployerConfigContext.xml
    • 找到id为primaryAuthenticationHandler的bean,修改为
      
          
          
      
      
    • 添加数据源
      
      
         
         
         
         
       
      
    • 添加jar包:
      • 打开cas\cas-server-4.0.0\modules
      • 复制cas-server-support-jdbc-4.0.0到项目的cas\WEB-INF\lib目录下
      • 下载mysql驱动mysql-connector-java-5.0.2.jar,添加到cas\WEB-INF\lib目录下
      • 重启tomcat
  • 去掉https验证

    1. 打开cas/WEB-INF/deployerConfigContext.xml
      
      
      增加参数p:requireSecure="false",是否需要安全验证,即HTTPS,false为不采用。修改后为:
      
      
    2. 打开cas/WEB-INF/spring-configuration/ticketGrantingTicketCookieGenerator.xml
      
      
      p:cookieSecure="true"改成p:cookieSecure="false"
    3. 打开WEB-INF\spring-configuration\warnCookieGenerator.xml
      
      
      将p:cookieSecure="true" 改成false

2、客户端

  • 在maven配置文件添加依赖
    
    
     org.jasig.cas.client
     cas-client-core
     3.3.3
    
    
     xml-apis
     xml-apis
     1.4.01
    
    
  • 配置web.xml文件
    
        
            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
                http://localhost:8080/cas/login
            
            
            
            
                serverName
                http://localhost:8090
            
        
        
            CAS Filter
            /*
        
        
        
            CAS Validation Filter
            
                org.jasig.cas.client.validation.Cas10TicketValidationFilter
            
            
                casServerUrlPrefix
                http://localhost:8080/cas
            
            
                serverName
                http://localhost:8090
            
        
        
            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
            /*
        
    

3、报错

unable to find valid certification path to requested target

https证书问题,将证书导入到起作用的jdk里面

java.security.cert.CertificateException: No name match

生成证书的时候,“您的名字与姓氏是什么”应填写项目域名,比如localhost

java.lang.IllegalArgumentException: casServerUrlPrefix cannot be null.

客户端使用的cas-client-core版本不对,4.0.0的服务端应使用3.3

java.lang.NoClassDefFoundError: org/w3c/dom/ElementTraversal

添加依赖xml-apis

  ````
  
    xml-apis
    xml-apis
    1.4.01
  
  ````

你可能感兴趣的:(java+maven CAS单点登录服务端和客户端的搭建)