现在很多系统并不是单一的,而是几个系统可以共同运作,相辅相成,这时,如果让用户一个系统一个系统的登录再一个一个地注销,显然体验感是不好的。如此便有了单点登录,实现一次登录,可以访问所有相关系统,访问完之后只需要一次注销。
搜了比较多的资料,将单点登录的原理的很多,这里可以放一篇了解一下原理:https://www.cnblogs.com/gy19920604/p/6029210.html
本篇博客主要记录搭建单点系统的过程。源码下载
先下载一个CAS开源项目:https://www.apereo.org/projects/cas/download-cas
我目前下载的是3.5的。
1、将下载的CAS解压得到如下目录,注意打箭头的文件夹,我们将把这里面的项目导进eclipse。
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。
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
注意
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页面。
此过程需要添加的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
到此完成数据库账户密码的验证!