搭建CAS单点登录的Demo

现在很多系统并不是单一的,而是几个系统可以共同运作,相辅相成,这时,如果让用户一个系统一个系统的登录再一个一个地注销,显然体验感是不好的。如此便有了单点登录,实现一次登录,可以访问所有相关系统,访问完之后只需要一次注销。

搜了比较多的资料,将单点登录的原理的很多,这里可以放一篇了解一下原理:https://www.cnblogs.com/gy19920604/p/6029210.html

本篇博客主要记录搭建单点系统的过程。源码下载

一、下载CAS

先下载一个CAS开源项目:https://www.apereo.org/projects/cas/download-cas

我目前下载的是3.5的。

二、搭建CAS中央服务器

1、将下载的CAS解压得到如下目录,注意打箭头的文件夹,我们将把这里面的项目导进eclipse。

搭建CAS单点登录的Demo_第1张图片

2、新建一个web项目,将cas-server-3.5.0\cas-server-webapp\src\main\webapp目录下的文件放进新建项目的 WebContent目录下。

3、将\cas-server-3.5.0\cas-server-webapp\src\main\java下的org文件复制放到新建项目的src下。

4、解压1中图中的modules文件夹下面cas-server-webapp-3.5.0.war(即\cas-server-3.5.0\modules\cas-server-webapp-3.5.0.war)。将解压后的\modules\cas-server-webapp-3.5.0\WEB-INF\lib文件夹下面的jar拷贝到新建项目的lib目录下。

5、WEB-INF/deployerConfigContext.xml为了简单起见,我们不启用HTTPS,添加requireSecure为false:

6、ticketGrantingTicketCookieGenerator.xml同样添加cookieSecure为false:

7、warnCookieGenerator.xml同样添加cookieSecure为false:

8、在cas.properties中可以修改server.name中的域名和端口号。

到此中央服务器搭建完成,启动后就可以看到登录界面如下图:

用户名和密码输入相同的就可以登录成功了,如test/test。

搭建CAS单点登录的Demo_第2张图片

 

三、创建客户端项目CAS-web1

1、新建一个Maven项目,Maven项目的创建参照:https://blog.csdn.net/fancheng614/article/details/77712843

2、添加依赖jar

    
	    org.jasig.cas.client
	    cas-client-core
	    3.2.1
	
	
	    log4j
	    log4j
	    1.2.16
	

3、修改项目的web.xml

注意casServerLoginUrlserverNamecasServerUrlPrefixserverName下面对应的的值。

  	
  		index.jsp
  	
	  
	
	    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://127.0.0.1:8081/CAS/login
	    
	    
	        serverName
	        
	        http://127.0.0.1:8080/
	    
	
	
	    CAS Filter
	    /*
	
	
	    CAS Validation Filter
	    
	        org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter
	    
	    
	        casServerUrlPrefix
	        
	        http://127.0.0.1:8081/CAS/
	    
	    
	        serverName
	        
	        http://127.0.0.1:8080
	    
	
	
	    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
	    /*
	
	

致此,发布CAS-web1项目访问它的index.jap时会跳往CAS的登录界面,输入用户名和密码相同的值后会跳回CAS-web1的index.jsp页面。

 

四、实现CAS登录访问数据库用户表

此过程需要添加的jar:cas-server-support-jdbc-3.5.0.jar、ojdbc14.jar

1、在deployerConfigContext.xml文件中标签下修改:

删除默认的验证方式:

然后添加数据库验证方式:


	
	 
    
	

2、在deployerConfigContext.xml文件中的标签下添加数据源,并配置加密方式

	
	
	   oracle.jdbc.driver.OracleDriver
	   jdbc:oracle:thin:@localhost:1521:ORCL
	   scott
	   scott
		
	
	
	 
         
             MD5
        
    

到此完成数据库账户密码的验证!

你可能感兴趣的:(技术)