CAS-技术专区-SSO配置完整案例(静态认证+数据库认证) 【演示环境】 【环境说明】 【安全证书配置】: 【部署CAS-Server以及配置Tomcat】 1、需要将几个jar文件 2、修改配置,支持mysql数据库交互验证 【部署CAS-client以及Tomcat的配置】 【测试验证SSO】

1.jdk-7u67-windows-x64.exe(最好只装一个版本的jdk,避免出现意外错误)

2.apache-tomcat-7.0.76.zip(非安装版)

3.cas-server-4.0.0-release.zip(cas服务端)

4.cas-client-3.2.0-release.zip(cas客户端)

【环境说明】

         修改hosts文件添加域名,C:WindowsSystem32driversetchosts 在文件末端添加下面三条信息:

127.0.0.1 sso.server.com(对应部署casserver的tomcat)

127.0.0.1 sso.client1.com(对应部署cas client1的tomcat)

127.0.0.1 sso.client2.com(对应部署cas client2的tomcat)

       【注意】:这个非常重要,因为CAS单点登录系统是基于JAVA安全证书的https协议,要使用CAS单点登录必须要配置域名, cas server是不能通过ip访问的。

   上面3个ip都是127.0.0.1,这是为什么呢?因为我的环境都是在同一台机器,所以ip都是一致的。一个域名对应一个应用,模拟多端!

【安全证书配置】:

         本教程由于是演示所以用JDK自带的keytool工具生成证书;如果以后在产品环境中使用肯定要去证书提供商购买,证书认证一般都是由 VeriSign认证,中文官方网

站: http://www.verisign.com/cn/。

  1>.打开cmd命令窗口(管理员身份打开)

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

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

        【说明】:-alias后面的别名可以自定义;-validity指定证书有效期;-keypass指定证书密钥库的密码;-keystore指定证书的位置,这里指定放在c盘根目录,密钥库名称可以自定义,这

里是wsriakey;-storepass和前面-keypass密码相同,否则下面tomcat 配置https 会访问失败。

  3>.命令输入完成,回车之后,会提示你输入一些资料

CAS-技术专区-SSO配置完整案例(静态认证+数据库认证)
【演示环境】
【环境说明】
【安全证书配置】:
【部署CAS-Server以及配置Tomcat】
1、需要将几个jar文件
2、修改配置,支持mysql数据库交互验证
【部署CAS-client以及Tomcat的配置】
【测试验证SSO】

      【注意】:第一个让你输入的“您的名字与姓氏是什么”,请必须输入在C:WindowsSystem32driversetchosts文件中加入的服务端的域名。

  我这里也就是sso.server.com,为何这么做?

        首先cas只能通过域名来访问,不能通过ip访问,同时上方是生成证书,所以要求比较严格,如果不这么做的话,既是最终按照教程配置完成,cas也可以正常访问,访问一个客户端应用也能进入cas验证首页,但是,当输入信息正确后,cas在回调转入你想访问的客户端应用的时候,会出现No subject alternative names present错误异常信息,这个错误也就是在上面输入的第一个问题答案不是域名导致、或者与hosts文件配置的不一致导致。

  4>.导出证书:

        在cmd窗口继续输入以下命令,导出证书:

keytool -export -alias ssodemo -keystore c:wsriakey -file c:wsria.crt -storepass 123456

  【说明】:-alias后面的名称要与生成证书的命令里面的alias的名称一致; –keystore指定证书存放的位置,这里我放在C盘根目录,同时证书名称要与”生成证书”对应的命令里的keystore名称一致,这里是wsriakey;-file指定导出证书的路径,我也指定在c盘根目录;-storepass的证书密码要与上面输入的密码一致。

CAS-技术专区-SSO配置完整案例(静态认证+数据库认证)
【演示环境】
【环境说明】
【安全证书配置】:
【部署CAS-Server以及配置Tomcat】
1、需要将几个jar文件
2、修改配置,支持mysql数据库交互验证
【部署CAS-client以及Tomcat的配置】
【测试验证SSO】

我们再看看c盘下面是否生成crt文件:

CAS-技术专区-SSO配置完整案例(静态认证+数据库认证)
【演示环境】
【环境说明】
【安全证书配置】:
【部署CAS-Server以及配置Tomcat】
1、需要将几个jar文件
2、修改配置,支持mysql数据库交互验证
【部署CAS-client以及Tomcat的配置】
【测试验证SSO】

  5>.导入证书:   

keytool -import -keystore %JAVA_HOME%jrelibsecuritycacerts -file c:wsria.crt -alias ssodemo

       【说明】:命令中指定了JAVA_HOME,意思是将证书导入到客户端证书库,也就是jdk证书库中,因为客户端应用运行在本地,需要jdk的支持。-file指定证书的位置,也就是上一步导出证书的位置,即c:wsria.crt。

        回车之后,会让你输入密钥库口令,注意,这里的密码必须要输入changeit,不能输入上面指定的密码123456,切记,否则导入客户端证书会有问题,如果是多台机器演示,需要在每一台客户端导入该证书,步骤都是一样的。当看到提示“是否信任此证书”,输入y回车即可,见下图:(说明,命令中的-alias后面的别名可以自定义,如果出现”证书未导入,别名<***>已经存在”的错误,该意思是说客户端的密钥库中已经存在该别名证书了,重新指定其他别名即可)

  CAS-技术专区-SSO配置完整案例(静态认证+数据库认证)
【演示环境】
【环境说明】
【安全证书配置】:
【部署CAS-Server以及配置Tomcat】
1、需要将几个jar文件
2、修改配置,支持mysql数据库交互验证
【部署CAS-client以及Tomcat的配置】
【测试验证SSO】

       

   至此,CAS所需的证书环境,已经配置好。

        下面,开始我们的CAS服务、Tomcat、以及多客户端的配置及测试访问。

【部署CAS-Server以及配置Tomcat】

   1>.配置HTTPS

          由于CAS是基于HTTPS协议,所以需要配置服务端的tomcat,使之支持SSL安全协议访问。当然也可以设置cas支持http访问,这个之后再补充讨论,下面先配置https协议。

        解压apache-tomcat-7.0.76-windows-x64,我本地路径为D:gongjuapache-tomcat-7.0.76,编辑D:gongjuapache-tomcat-7.0.76confserver.xml,找到下面片段:

  CAS-技术专区-SSO配置完整案例(静态认证+数据库认证)
【演示环境】
【环境说明】
【安全证书配置】:
【部署CAS-Server以及配置Tomcat】
1、需要将几个jar文件
2、修改配置,支持mysql数据库交互验证
【部署CAS-client以及Tomcat的配置】
【测试验证SSO】

  去掉注释,修改成:

<ConnectorportConnectorport="8443" protocol="org.apache.coyote.http11.Http11Protocol"  
   maxThreads="150" SSLEnabled="true" scheme="https" secure="true"  
   keystoreFile="C:/wsriakey" keystorePass="123456"  
   clientAuth="false" sslProtocol="TLS"/>  

        其中,keystoreFile就是创建证书的路径,keystorePass就是创建证书的密码

2>.验证HTTPS配置

        其他按照默认配置不作修改,双击D:gongjuapache-tomcat-7.0.76instartup.bat启动tomcat 验证https是否配置成功,我本地使用google览器访问,在地址栏输入https://sso.server.com:8443/出现下面画面,其实这就表明cas服务端tomcat的https协议配置没问题了。

  点击【高级】,点击出现的【继续前往sso.server.com(不安全)】,将会出现下面tomcat默认首页,tomcat已经支持https协议访问了,一切ok!

3>.部署CAS-Server

         CAS-Server下载地址:http://developer.jasig.org/cas/这里最高版本是4.0.0,想要下载最新版本,请去官网下载:http://www.jasig.org/cas/download  

         本文以cas-server-4.0.0-release.zip为例,解压cas-server-4.0.0-release.zip到cas-server-4.0.0modules里提取cas-server-webapp-4.0.0.war文件,把文件copy到D:gongjuapache-tomcat-7.0.76webapps目下,并重命名为:cas.war。

         启动tomcat,在地址栏入:https://sso.server.com:8443/cas/login 回车,出现CAS服务端的登录验证首页:

 CAS-技术专区-SSO配置完整案例(静态认证+数据库认证)
【演示环境】
【环境说明】
【安全证书配置】:
【部署CAS-Server以及配置Tomcat】
1、需要将几个jar文件
2、修改配置,支持mysql数据库交互验证
【部署CAS-client以及Tomcat的配置】
【测试验证SSO】

         此时,CAS只是单独运行,至于登录的用户名和密码是什么,请查看:D:gongjuapache-tomcat-7.0.76webappscasWEB-INF deployerConfigContext.xml文件中有这样一段配置:

<bean >  
   <property name="users">  
       <map>  
           <entry key="casuser" value="Mellon"/>  
       </map>  
   </property>  
</bean>  

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

 CAS-技术专区-SSO配置完整案例(静态认证+数据库认证)
【演示环境】
【环境说明】
【安全证书配置】:
【部署CAS-Server以及配置Tomcat】
1、需要将几个jar文件
2、修改配置,支持mysql数据库交互验证
【部署CAS-client以及Tomcat的配置】
【测试验证SSO】

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

        用户名和密码肯定需要和数据库进行交互验证的,那么如何配置呢?

       【说明】:我本地使用的是mysql数据库。

1、需要将几个jar文件

  放到CAS服务的lib目录下,我本地使用的jar版本分别是mysql-connector-java-5.0.8.jar、cas-server-support-jdbc-4.0.0.jar这2个缺一不可,其中由于数据源的配置方法不一样,需要的jar也就不一样,根据个人喜好而定吧哈哈。将这2个jar放到D:gongjuapache-tomcat-7.0.76webappscasWEB-INFlib。对了” cas-server-support-jdbc-4.0.0.jar “这个jar在”cas-server-4.0.0-release.zip “的modules文件有。

2、修改配置,支持mysql数据库交互验证

         编辑D:gongjuapache-tomcat-7.0.76webappscasWEB-INFdeployerConfigContext.xml文件,你会看到有这样一段配置:

         注释掉第二个entry配置,最终配置如下:

<constructor-arg>  
  <map>  
    <entrykey-refentrykey-ref="proxyAuthenticationHandler" value-ref="proxyPrincipalResolver"/>  
       <!--注释这个-->  
       <!--<entrykey-ref="primaryAuthenticationHandler"value-ref="primaryPrincipalResolver" />-->  
    <!-- key-ref指定自己的本地数据库访问 -->  
    <entrykey-refentrykey-ref="dbAuthHandler" value-ref="primaryPrincipalResolver"/>  
   </map>  
 </constructor-arg>  
        然后再在这个xml中新加入2个bean配置,如下:
[html] view plain copy
<!-- 指定数据源 -->  
<bean  />  
</bean>    

<!-- 访问本地数据库 -->  
<bean />  

        其中,sql语句的意思就是,根据用户名获取密码,CAS会根据你页面输入的用户名获取该用户密码,和你输入的密码进行校验,来判断输入是否正确。Sql中的表换成你自己本地的表即可,只要根据用户名查询密码即可。

        至此,CAS与数据库交互验证的配置已经配置完成,你可以重新访问cas,输入数据库中存在的用户名和密码,来看看效果如何~如果登录成功,说明配置无误。否则,请耐心检查配置是否有问题,jar包是否缺少。

        现在,CAS已经支持数据库交互验证了,服务端tomcat也支持HTTPS协议访问,现在,我们来搭建客户端,实现多个客户端的单点登录。这里,我本地只使用2个tomcat客户端来测试,其实已经满足单点登录的要求了,至少2个应用。

【部署CAS-client以及Tomcat的配置】

        CAS-client下载地址:http://developer.jasig.org/cas-clients/ 

        首先,客户端应用是要和CAS服务端进行交互的,所以这里需要jar文件放在客户端应用的lib目录下。分别是:cas-client-core-3.3.3.jar、commons-logging.jar。这两个jar可在” cas-client-3.2.0-release.zip “的modules文件里找到。

这里呢,我就直接使用tomcat默认自带的 webappsexamples作为演示的简单web项目。我就不去另写一个web测试的demo了。

  既然需要2个客户端应用,则需要2个tomcat做为客户端服务器,所以,我本地解压了2份tomcat,作为客户端服务器,并重新命名,本地路径分别为:D:gongjuapache-tomcat-client1和D:gongjuapache-tomcat-client2

        首先,将上面2个jar分别放到

  D:gongjuapache-tomcat-client1webappsexamplesWEB-INFlib目录和D:gongjuapache-tomcat-client2webappsexamplesWEB-INFlib目录。

  由于在一台机子上同时启动多个tomcat,为避免端口冲突,修改cas-client1和cas-client2对应的tomcat端口号。

配置apache-tomcat-client1客户端:

         编辑D:gongjuapache-tomcat-client1confserver.xml文件,找到如下3处内容:

1、port改成:18005

 CAS-技术专区-SSO配置完整案例(静态认证+数据库认证)
【演示环境】
【环境说明】
【安全证书配置】:
【部署CAS-Server以及配置Tomcat】
1、需要将几个jar文件
2、修改配置,支持mysql数据库交互验证
【部署CAS-client以及Tomcat的配置】
【测试验证SSO】

2、port改成:18080

 CAS-技术专区-SSO配置完整案例(静态认证+数据库认证)
【演示环境】
【环境说明】
【安全证书配置】:
【部署CAS-Server以及配置Tomcat】
1、需要将几个jar文件
2、修改配置,支持mysql数据库交互验证
【部署CAS-client以及Tomcat的配置】
【测试验证SSO】

3、port改成:18009

 CAS-技术专区-SSO配置完整案例(静态认证+数据库认证)
【演示环境】
【环境说明】
【安全证书配置】:
【部署CAS-Server以及配置Tomcat】
1、需要将几个jar文件
2、修改配置,支持mysql数据库交互验证
【部署CAS-client以及Tomcat的配置】
【测试验证SSO】

        然后启动这个tomcat,即运行D:gongjuapache-tomcat-client1instartup.bat,如果启动窗口中没有出现错误,说明端口配置无误。请记住你配置的端口号。

浏览器输入:

  http://sso.client1.com:18080/examples/servlets/servlet/HelloWorldExample,请注意”sso.client1.com”域名,就是教程一开始需要配置的C:WindowsSystem32driversetchosts的域名,用于不同的客户端域名访问,回车:

 CAS-技术专区-SSO配置完整案例(静态认证+数据库认证)
【演示环境】
【环境说明】
【安全证书配置】:
【部署CAS-Server以及配置Tomcat】
1、需要将几个jar文件
2、修改配置,支持mysql数据库交互验证
【部署CAS-client以及Tomcat的配置】
【测试验证SSO】

        看到上述内容表示apache-tomcat-client1的基本安装配置已经成功。接下来需要配置最重要的内容,让客户端应用和CAS服务连接:

        编辑D:gongjuapache-tomcat-client1webappsexamplesWEB-INFweb.xml,在最下面加入如下配置:

   

<listener>  
       <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>  
   </listener>  
   <filter>  
       <filter-name>CAS Single Sign Out Filter</filter-name>  
       <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>  
   </filter>  
   <filter-mapping>  
       <filter-name>CAS Single Sign Out Filter</filter-name>  
       <url-pattern>/*</url-pattern>  
   </filter-mapping>  
   <filter>  
       <filter-name>CAS Filter</filter-name>  
       <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>  
       <init-param>  
           <param-name>casServerLoginUrl</param-name>  
           <param-value>https://sso.server.com:8443/cas/login</param-value>  
       </init-param>  
       <init-param>  
           <param-name>serverName</param-name>  
           <param-value>http://sso.client1.com:18080</param-value>  
       </init-param>  
   </filter>  
   <filter-mapping>  
       <filter-name>CAS Filter</filter-name>  
       <url-pattern>/*</url-pattern>  
   </filter-mapping>  
   <filter>  
       <filter-name>CAS Validation Filter</filter-name>  
       <filter-class>org.jasig.cas.client.validation.Cas10TicketValidationFilter</filter-class>  
       <init-param>  
           <param-name>casServerUrlPrefix</param-name>  
           <param-value>https://sso.server.com:8443/cas</param-value>  
       </init-param>  
       <init-param>  
           <param-name>serverName</param-name>  
           <param-value>http://sso.client1.com:18080</param-value>  
       </init-param>  
   </filter>  
   <filter-mapping>  
       <filter-name>CAS Validation Filter</filter-name>  
       <url-pattern>/*</url-pattern>  
   </filter-mapping>    
   <filter>  
       <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>  
       <filter-class>org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class>  
   </filter>  
   <filter-mapping>  
       <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>  
       <url-pattern>/*</url-pattern>  
   </filter-mapping>  
   
   <filter>  
       <filter-name>CAS Assertion Thread Local Filter</filter-name>  
       <filter-class>org.jasig.cas.client.util.AssertionThreadLocalFilter</filter-class>  
   </filter>  
   <filter-mapping>  
       <filter-name>CAS Assertion Thread Local Filter</filter-name>  
       <url-pattern>/*</url-pattern>  
   </filter-mapping>  

        配置完成后,启动CAS服务端tomcat,再启动该客户端1的tomcat,在浏览器访问:http://sso.client1.com:18080/examples/servlets/servlet/HelloWorldExample看看是否跳转到了CAS认证界面,回车之后,会出现如下图:

  CAS-技术专区-SSO配置完整案例(静态认证+数据库认证)
【演示环境】
【环境说明】
【安全证书配置】:
【部署CAS-Server以及配置Tomcat】
1、需要将几个jar文件
2、修改配置,支持mysql数据库交互验证
【部署CAS-client以及Tomcat的配置】
【测试验证SSO】

        认证观察会发现浏览器的地址栏中,URL信息是这样的:

  https://sso.server.com:8443/cas/login?service=http%3A%2F%2Fsso.client1.com%3A18080%2Fexamples%2Fservlets%2Fservlet%2FHelloWorldExample

        我想你已经知道什么意思了,由于你没有登录CAS认证系统,CAS认证系统拦截到你访问的客户端应用,首先进入到认证系统登录界面,同时URL后面加上你想访问的地址信息,当你登录成功后,CAS服务会转向到你刚刚访问的地址,也就是:

  http://sso.client1.com:18080/examples/servlets/servlet/HelloWorldExample

        转向到这个地址之后,浏览器会显示如下内容:

  CAS-技术专区-SSO配置完整案例(静态认证+数据库认证)
【演示环境】
【环境说明】
【安全证书配置】:
【部署CAS-Server以及配置Tomcat】
1、需要将几个jar文件
2、修改配置,支持mysql数据库交互验证
【部署CAS-client以及Tomcat的配置】
【测试验证SSO】

        上面这个内容,显示的就是你访问tomcat中的examples项目的一个servlet的返回结果。

        这里,如果你够细心的话,你会发现浏览器地址栏又多了一个内容,即多了一个jsessionid参数,这个就是CAS认证的原理所在,使用的是COOKIE机制,这里就不多说了。

配置apache-tomcat-client2客户端:

        配置与上面的客户端配置步骤相同,其中需要注意的就是,这第二个客户端的tomcat端口要与上面的客户端以及CAS服务端的端口不一样,否则出现端口占用的错误。

        主要配置如下:

1、port改成:28005

 CAS-技术专区-SSO配置完整案例(静态认证+数据库认证)
【演示环境】
【环境说明】
【安全证书配置】:
【部署CAS-Server以及配置Tomcat】
1、需要将几个jar文件
2、修改配置,支持mysql数据库交互验证
【部署CAS-client以及Tomcat的配置】
【测试验证SSO】

2、port改成:28080

 CAS-技术专区-SSO配置完整案例(静态认证+数据库认证)
【演示环境】
【环境说明】
【安全证书配置】:
【部署CAS-Server以及配置Tomcat】
1、需要将几个jar文件
2、修改配置,支持mysql数据库交互验证
【部署CAS-client以及Tomcat的配置】
【测试验证SSO】

3、port改成:28009

 CAS-技术专区-SSO配置完整案例(静态认证+数据库认证)
【演示环境】
【环境说明】
【安全证书配置】:
【部署CAS-Server以及配置Tomcat】
1、需要将几个jar文件
2、修改配置,支持mysql数据库交互验证
【部署CAS-client以及Tomcat的配置】
【测试验证SSO】

  修改编辑D:gongjuapache-tomcat-client2webappsexamplesWEB-INFweb.xml文件,加入的内容与上面第一个客户端的web.xml内容一致,只不过需要修改2处内容,就是2个客户端url地址,最终的配置如下:

 <listener>  
      <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>  
  </listener>  
  <filter>  
      <filter-name>CAS Single Sign Out Filter</filter-name>  
      <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>  
  </filter>  
  <filter-mapping>  
      <filter-name>CAS Single Sign Out Filter</filter-name>  
      <url-pattern>/*</url-pattern>  
  </filter-mapping>  
  <filter>  
      <filter-name>CAS Filter</filter-name>  
      <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>  
      <init-param>  
          <param-name>casServerLoginUrl</param-name>  
          <param-value>https://sso.server.com:8443/cas/login</param-value>  
      </init-param>  
      <init-param>  
          <param-name>serverName</param-name>  
          <param-value>http://sso.client2.com:28080</param-value>  
      </init-param>  
  </filter>  
  <filter-mapping>  
      <filter-name>CAS Filter</filter-name>  
      <url-pattern>/*</url-pattern>  
  </filter-mapping>  
  <filter>  
      <filter-name>CAS Validation Filter</filter-name>  
      <filter-class>org.jasig.cas.client.validation.Cas10TicketValidationFilter</filter-class>  
      <init-param>  
          <param-name>casServerUrlPrefix</param-name>  
          <param-value>https://sso.server.com:8443/cas</param-value>  
      </init-param>  
      <init-param>  
          <param-name>serverName</param-name>  
          <param-value>http://sso.client2.com:28080</param-value>  
      </init-param>  
  </filter>  
  <filter-mapping>  
      <filter-name>CAS Validation Filter</filter-name>  
      <url-pattern>/*</url-pattern>  
  </filter-mapping>  
  <filter>  
      <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>  
      <filter-class>org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class>  
  </filter>  
  <filter-mapping>  
      <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>  
      <url-pattern>/*</url-pattern>  
  </filter-mapping>  
  
  <filter>  
      <filter-name>CAS Assertion Thread Local Filter</filter-name>  
      <filter-class>org.jasig.cas.client.util.AssertionThreadLocalFilter</filter-class>  
  </filter>  
  <filter-mapping>  
      <filter-name>CAS Assertion Thread Local Filter</filter-name>  
      <url-pattern>/*</url-pattern>  
  </filter-mapping>  

【测试验证SSO】

        至此,2个客户端也已经配置完毕,启动配置好的三个tomcat分别为:CAS服务端tomcat、2个客户端tomcat。

基本的测试

        访问客户端1—->跳转到casserver验证—->验证成功显示客户端1的应用 —->新开选项卡访问客户端2—->直接显示客户端2应用 —->注销casserver —->打开客户端1/客户端2 —->重新跳转到casserver验证

        下面截图,根据上面所示进行测试,看看是否与上面说的流程一致:

        首先打开google浏览器,地址栏输入:

http://sso.client1.com:18080/examples/servlets/servlet/HelloWorldExample

        回车,将会出现CAS认证界面:

CAS-技术专区-SSO配置完整案例(静态认证+数据库认证)
【演示环境】
【环境说明】
【安全证书配置】:
【部署CAS-Server以及配置Tomcat】
1、需要将几个jar文件
2、修改配置,支持mysql数据库交互验证
【部署CAS-client以及Tomcat的配置】
【测试验证SSO】

       输入用户名和密码,登录成功后,显示的界面:

  CAS-技术专区-SSO配置完整案例(静态认证+数据库认证)
【演示环境】
【环境说明】
【安全证书配置】:
【部署CAS-Server以及配置Tomcat】
1、需要将几个jar文件
2、修改配置,支持mysql数据库交互验证
【部署CAS-client以及Tomcat的配置】
【测试验证SSO】

       重新打开一个选项卡,地址栏输入:

  http://sso.client2.com:28080/examples/servlets/servlet/HelloWorldExample

        回车,将直接显示客户端2界面,没有重新登录,浏览器显示界面:

    CAS-技术专区-SSO配置完整案例(静态认证+数据库认证)
【演示环境】
【环境说明】
【安全证书配置】:
【部署CAS-Server以及配置Tomcat】
1、需要将几个jar文件
2、修改配置,支持mysql数据库交互验证
【部署CAS-client以及Tomcat的配置】
【测试验证SSO】

        根据上面显示的界面,按照普通想逻辑,当访问客户端2的时候,应该会被CAS拦截,转到CAS认证服务的界面,但是结果却直接显示客户端2的界面,原因就是因为你在访问客户端1的时候已经登录认证过了,CAS会在你浏览器中注入COOKIE,记录你的认证凭证,如果你的浏览器没有关闭或者退出的话,当你访问客户端2应用的时候,CAS检测到认证的凭证,所以,就直接显示了客户端2的界面,大概的认证处理流程就是这样了,我这里说的比较浅显,其实CAS还是有很多更加复杂的操作在里面的,有兴趣的朋友自己慢慢研究吧。

        下面,我们新打开一个选项卡(也可在当前页面的地址栏输入),在浏览器地址栏中输入:https://sso.server.com:8443/cas/logout

        回车显示:

 CAS-技术专区-SSO配置完整案例(静态认证+数据库认证)
【演示环境】
【环境说明】
【安全证书配置】:
【部署CAS-Server以及配置Tomcat】
1、需要将几个jar文件
2、修改配置,支持mysql数据库交互验证
【部署CAS-client以及Tomcat的配置】
【测试验证SSO】

         上述表示认证注销成功,此时如果再访问 : 

http://sso.client1.com:18080/examples/servlets/servlet/HelloWorldExample 

或http://sso.client2.com:28080/examples/servlets/servlet/HelloWorldExample

    都将会跳转到CAS服务重新进行认证。

         到此,SSO之CAS单点登录系统已经搭建完毕!

         这里我借鉴一篇文章,提供大家学习:http://www.cnblogs.com/lr393993507/p/5231432.html

         当然,CAS认证之后,至于在后台如何获取到登录的用户信息,这里我就不作描述了。该文章最后有相应的讲解。其他的知识,自己慢慢学习和研究吧。