CAS-5.3单点登录/退出客户端搭建(Springboot)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CAS-5.3单点登录/退出客户端搭建(Springboot)相关的知识,希望对你有一定的参考价值。

参考技术A

使用Springboot搭建cas客户端,主要是配置四个过滤器和一个监听器。

用于过滤不需要登录的用户,需要实现UrlPatternMatcherStrategy 接口,在matches 函数里添加不需要用户登录的链接。

按照同样的方法实现客户端系统2。
启动cas服务器端和两个客户端。输入 http://springbootcasclient.com:8001/ ,则跳转到登录界面

单点退出,需要下面三个步骤:1、添加过滤器类,过滤掉不需要登录的url;2、添加退出跳转的控制器;3、修改服务端application.properties ,加cas.logout.followServiceRedirects=true,让客户端可以自己制定退出的路径,否则会走默认退出路径。

过滤器类需要实现UrlPatternMatcherStrategy接口,然后配置到springboot中,请参考 单点登录 创建过滤器类 配置过滤器到springboot

退出的方式有两种,一种是走默认的路径,另一种是走自定义的返回路径。请参考 单点登录 用户退出控制器

将上面的内容添加到applicaiton.properties, 这样就可以允许客户端定制自己的退出路径了。

http协议配置:cas 5.3.x默认客户端不支持http协议, 如果不进行配置,则会出现“未认证授权的服务”错误。

要配置兼容http协议,需要在HTTPSandIMAPS-10000001.json文件中添加http。

cas单点登录服务端客户端搭建

jdk1.6

apache-tomcat-7

cas-server-webapp-4.0.0.war、cas-client-core-3.2.1.jar

 

(1)cas服务端

一、.修改hosts 文件,要使用CAS单点登录必须要配置域名, cas是不能通过ip访问的.,编辑文件 C:WindowsSystem32driversetchosts

  为了简单,直接改成:127.0.0.1      localhost,这个用于cas服务端,cas客户端我直接在eclipse中启动。

二、【安全证书配置】:

  1 打开cmd命令窗口

  2 生成证书,在cmd窗口输入以下命令:

    keytool -genkey -alias ssodemo -keyalg RSA -keysize 1024 -keypass zhoubang -validity 365 -keystore c:zhoubang.keystore -storepass zhoubang

 

    【说明】:-alias后面的别名可以自定义,-keypass指定证书密钥库的密码, -storepass和前面keypass密码相同,否则下面tomcat 配置https 会访问失败 -keystore指定证书的    
         位置,这里指定放在c盘根目录,密钥库名称可以自定义,这里是zhoubang.keystore
      
  3 命令输入完成,回车之后,会提示你输入一些资料,见下图:
 
             技术分享图片
    【注意】:第一个让你输入的“您的名字与姓氏是什么”,请必须输入在C:WindowsSystem32driversetchosts文件中加入的服务端的域名,也就是localhost。
 
  4导出证书:  
    在cmd窗口继续输入以下命令,导出证书:
    keytool -export -alias ssodemo -keystore c:zhoubang.keystore -file c:ssodemo.crt -storepass zhoubang
    之后可以在c盘看到生成的文件。
 
  5.客户端导入证书:
    在cmd窗口输入命令: 
    keytool -import -keystore %JAVA_HOME%jrelibsecuritycacerts -file c:ssodemo.crt -alias ssodemo
    

    回车之后,会让你输入密钥库口令,注意,这里的密码必须要输入changeit,不能输入上面指定的密码zhoubang,切记,输入y回车即可,见下图。

 
                  技术分享图片
  6 部署CAS-Server相关的Tomcat

    配置HTTPS。编辑E:apache-tomcat-7.0.57confserver.xml,找到下面片段:

    <!--
         <Connector executor="tomcatThreadPool" port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
    -->
    去掉注释,修改成:
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
      maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
      keystoreFile="C:/zhoubang.keystore" keystorePass="zhoubang"
      clientAuth="false" sslProtocol="TLS" />
    其中,keystoreFile就是创建证书的路径,keystorePass就是创建证书的密码.
 
    【注意】:protocol="HTTP/1.1"     要改成     protocol="org.apache.coyote.http11.Http11Protocol"       刚开始我没改,报错了。
 
  7.验证cas服务端
    将cas-server-webapp-4.0.0.war部署到tomcat,启动。    
    在地址栏输入https://localhost:8443/ 出现下面画面,其实这就表明cas服务端tomcat的https配置是没有问题了. 
                技术分享图片
                技术分享图片

 

     【说明】:此时,CAS只是单独运行,至于登录的用户名和密码是什么,请查看:E:apache-tomcat-7.0.57webappscasWEB-INFdeployerConfigContext.xml文件中有      

          这样一段配置:

          技术分享图片

 

      这个配置是默认静态配置用户名和密码,那就在浏览器的CAS服务的登陆框中输入用户名casuser和密码Mellon,登录看看效果,就会出现验证成功的页面,如下图。

      你也可以在文件中自己配置自己的用户名和密码。

              技术分享图片

      看到上述页面表示CAS-Server已经部署成功。

      
  8.链接数据库
    【说明】:我本地使用的是oracle数据库。
    需要commons-pool-1.5.6.jar、ojdbc14_10g.jar、cas-server-support-jdbc-4.0.0.jar这。3个jar包放到E:apache-tomcat-7.0.57webappscasWEB-INFlib目录下。
    
    编辑E:apache-tomcat-7.0.57webappscasWEB-INF deployerConfigContext.xml文件,你会看到有这样一段配置:
                技术分享图片
    注释掉第二个entry配置,最终配置如下:
                 技术分享图片    

    然后再在这个xml中新加入2个bean配置,如下:

        技术分享图片

        技术分享图片

    现在,CAS已经支持数据库交互验证了。到此服务端的搭建就完毕了

(2)cas客户端后续写

 

 
 
 
 
 
 
 
 
 
 
 








以上是关于CAS-5.3单点登录/退出客户端搭建(Springboot)的主要内容,如果未能解决你的问题,请参考以下文章

CAS4.2单点登录如何配置多个系统登录一次和退出到登录页问题

CAS 5.3服务器搭建

CAS搭建单点登录Web端

cas单点登录服务端客户端搭建

cas4.2.7单点登录带验证码服务端客户端搭建

③CAS SSO单点登录客户端环境搭建之之源码深度分析