cas服务端搭建两种方式(4.0.3版本)

    cas4服务端搭建的方式在网上的资料全都是部署war到tomcat中,但是使用cas一般都会有一些自定义需求开发,一种方式是overlay方式进行开发,还有一种是看了公司的cas摸索出来的一种,目前对于基于gradle的cas还没有深入研究,这篇文章就是基于cas4.0.3版本进行说明的。

overlay方式

首先创建一个maven项目,然后修改pom.xml文件即可

pom.xml 



    4.0.0

    com.***
    cas-overlay
    1.0-SNAPSHOT
    war

    
        UTF-8
        1.8
        4.0.3
    

    
        
            org.jasig.cas
            cas-server-webapp
            ${cas.version}
            war
            runtime
        
    
    
        cas
        
            
                org.apache.maven.plugins
                maven-war-plugin
                
                    false
                    cas
                    
                        
                            org.jasig.cas
                            cas-server-webapp
                        
                    
                
            
        
    

overlay方式相关的jar都在下载war的时候在lib目录下有的,所有一些源码的话要额外引入一个cas-server-core包,保证可以编译通过

 方式二

源码下载地址:https://github.com/apereo/cas

首先下载以下源码(4.0.3分支的),解压后,通过idea导入解压后的cas-4.0.3\cas-server-webapp 这个目录,强调一下是cas-server-webapp这个目录,然后修改pom.xml,把${project.version}换成4.0.3,把${spring.version}换成3.2.6.RELEASE ,把最后的properties去掉,删除项目src下除main以外的目录,tomcat启动即可。

改造后的pom.xml


  
    org.jasig.cas
    cas-server
    4.0.3
  
  4.0.0
  cas-server-webapp
  war
  Jasig CAS Web Application
  
    
      org.jasig.cas
      cas-server-webapp-support
      4.0.3
      compile
    
    
      org.springframework
      spring-expression
      3.2.6.RELEASE
      runtime
    
    
      javax.servlet
      jstl
      1.1.2
      jar
      runtime
    
    
      taglibs
      standard
      1.1.2
      jar
      runtime
    
    
      org.jasig.cas
      cas-server-security-filter
      runtime
    
  

  
    
      
        org.apache.maven.plugins
        maven-war-plugin
        
          cas
          
            
              ${basedir}/src/main/webapp/WEB-INF
              true
              WEB-INF
              
                **/web.xml
              
            
          
        
      
    
  


自定义校验器需要修改deployerConfigContext.xml中的primaryAuthenticationHandler,可以将原来primaryAuthenticationHandler改成自己实现的校验器,需要继承AbstractUsernamePasswordAuthenticationHandler类,简单自定义校验器demo如下

import org.jasig.cas.authentication.HandlerResult;
import org.jasig.cas.authentication.PreventedException;
import org.jasig.cas.authentication.UsernamePasswordCredential;
import org.jasig.cas.authentication.handler.support.AbstractUsernamePasswordAuthenticationHandler;
import org.jasig.cas.authentication.principal.SimplePrincipal;

import javax.security.auth.login.FailedLoginException;
import java.security.GeneralSecurityException;
import java.util.List;

/**
 * Created by Administrator on 2019/1/26.
 */
public class UserPwd extends AbstractUsernamePasswordAuthenticationHandler {
    @Override
    protected HandlerResult authenticateUsernamePasswordInternal(UsernamePasswordCredential credential) throws GeneralSecurityException, PreventedException {
        String username = credential.getUsername();
        String pwd = credential.getPassword();
        if (username.equals("admin") && pwd.equals("123")){
            return createHandlerResult(credential,new SimplePrincipal(username), (List)null);
        }
        throw new FailedLoginException();
    }
}

deployerConfigContext.xml中部分如下

 
    
    
          
        
            
                
            
        
    

仅供参考,欢迎讨论~

cas5接下来可参考:https://www.jianshu.com/p/c1273d81c4e4

你可能感兴趣的:(权限)