day59,17,品优购,单点登录原理,CAS登录框架原理,CAS部署Linux,单点退出功能,cas远程连接mysql,cas登录页面改造,security和cas搭配的用户中心

什么是单点登录:
单点登录又叫做SSO, 是在互相信任的多个系统中, 只需要数据一次用户名密码, 就可以直接登录其他互相
信任的系统.
使用场景(作用):
传统企业项目: 做系统权限集成
互联网项目: soa分布式架构下, 是多个项目, 如果跨项目跳转访问能够自动认证.

传统登录流程:
1. 在登录页面输入用户名密码
2. 在controller中接收用户名密码并且校验是否正确
3. 如果不正确, 跳转到登录页面重新登录
4. 正确, 放行, 并且将用户登录信息记录到tomcat的session中
5. 编写拦截器, 拦截所有请求, 每次请求都判断tomcat的session中是否有用户登录信息
如果没有则跳转到登录页面重新登录, 如果有则放行

问题:
tomcat的session是否能够跨tomcat. 是否能够多个项目共享使用.
不能. session叫做会话, 浏览器, 访问项目, 会建立session会话, 浏览器关闭, 会话销毁.
session无法跨Tomcat使用.

cas是耶鲁大学的一个开源项目, cas是单点登录的一个解决方案.
优点: 是cas, 基本可以不写代码, 就可以实现单点登录. 原理是cas是一个现成的项目 部署到linux系统形成
单点登录服务器, 项目中配置cas的客户端工具包, 就可以不用写代码实现单点登录.

单点登录原理(图解):

在这里插入图片描述

CAS登录框架原理

在这里插入图片描述

CAS部署到Linux

1.3 CAS服务端部署
Cas服务端其实就是一个war包。
这里有个固定的用户名和密码 casuser /Mellon
登录成功后会跳到登录成功的提示页面

安装步骤详细:

cd /usr/local/ 

切换到目录下,

mkdir cas  

创建cas文件夹
把cas.war ,和tomcat 都 复制到cas目录中,并且把tomcat解压,并且改为容易使用的短名字

注意:复制代码,linux代码篇章去查询

把cas.war 剪切到tomcat/webapps/目录下

mv cas.war tomcat/webapps/

由于tomcat默认端口8080,已经被zookeeper占用,所以要修改为9100. tomcat,中conf/service.xml,的三个端口参数(不能重复),用EditPlus远程连接修改,比用vim方便。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
进入tomcat/bin/目录启动tomcat ,启动会自动解压一次webapps目录下的cas.war文件

sh.startup.sh 

再次关闭 tomcat

sh.shutdown.sh

再进入,cd/tomcat/webapps/里面删除已经解压过得cas.war,文件。(一定要删,不然下次启动,改过的配置文件就会被覆盖)
rm -rf cas.war

(2)修改CAS配置文件
修改cas的WEB-INF/cas.properties

server.name=http://192.168.200.128:9100

在这里插入图片描述

1.4.2去除https认证
CAS默认使用的是HTTPS协议,如果使用HTTPS协议需要SSL安全证书(需向特定的机构申请和购买) 。如果对安全要求不高或是在开发测试阶段,可使用HTTP协议。我们这里讲解通过修改配置,让CAS使用HTTP协议。
(1)修改cas的WEB-INF/deployerConfigContext.xml
找到下面的配置

<bean class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler"
p:httpClient-ref="httpClient" p:requireSecure="false"/>

这里需要增加参数p:requireSecure=“false”,requireSecure属性意思为是否需要安全验证,即HTTPS,false为不采用
在这里插入图片描述
(2)修改cas的/WEB-INF/spring-configuration/ticketGrantingTicketCookieGenerator.xml
找到下面配置

<bean id="ticketGrantingTicketCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"
      p:cookieSecure="false"
      p:cookieMaxAge="3600"
      p:cookieName="CASTGC"
      p:cookiePath="/cas" />

参数p:cookieSecure=“true”,同理为HTTPS验证相关,TRUE为采用HTTPS验证,FALSE为不采用https验证。
参数p:cookieMaxAge="-1",是COOKIE的最大生命周期,-1为无生命周期,即只在当前打开的窗口有效,关闭或重新打开其它窗口,仍会要求验证。可以根据需要修改为大于0的数字,比如3600等,意思是在3600秒内,打开任意窗口,都不需要验证。
我们这里将cookieSecure改为false , cookieMaxAge 改为3600
在这里插入图片描述
(3)修改cas的WEB-INF/spring-configuration/warnCookieGenerator.xml
找到下面配置

<bean id="warnCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"
p:cookieSecure="false"
p:cookieMaxAge="3600"
p:cookieName="CASPRIVACY"
p:cookiePath="/cas" />
我们这里将cookieSecure改为false ,  cookieMaxAge 改为3600

在这里插入图片描述
改完所有配置之后,再次重启tomcat
进入tomcat/bin/目录启动tomcat

sh.startup.sh 

最后,进入浏览器:http://192.168.200.128:9100/cas/ 进行测试

在这里插入图片描述

单点退出到某个页面的功能

修改cas系统的配置文件WEB-INF目录下的cas-servlet.xml

 <bean id="logoutAction" class="org.jasig.cas.web.flow.LogoutAction"
        p:servicesManager-ref="servicesManager"
        p:followServiceRedirects="${cas.logout.followServiceRedirects:true}"/>

在这里插入图片描述
修改配置文件之后,记住,重启tomcat,

sh.shutdown.sh 
sh.startup.sh 

改为true后,可以在退出时跳转页面到目标页面,修改index.jsp的退出链接,service=http://www.baidu.com",表示要退出到哪个页面

<a href="http://192.168.200.128:9100/cas/logout?service=http://www.baidu.com">退出登录</a>

————安装步骤结束——————————————————

soa分布式,要求cas远程连接mysql,的相关配置:

—————————步骤开始———
切换目录到cas,tomcat下的WEB-INF/lib存放的jar目录

cd /usr/local/cas/tomcat/webapps/cas/WEB-INF/lib/

把三个关于数据库的jar包,复制进来。

cp /root/cas/jar/c3p0-0.9.1.2.jar ./
cp /root/cas/jar/cas-server-support-jdbc-4.0.0.jar ./
cp /root/cas/jar/mysql
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值