第一:

本demo在一个机器上实现(三个虚拟主机),来看SSO单点登录实例(我们可以布到多个机器上使用都是同一个道理的),一个服务器主机,和两个客户端虚拟主机

  1. <span style="font-size:18px;"># 127.0.0.1 localhost
  2. # ::1 localhost
  3. 127.0.0.1 localhost
  4. 127.0.0.1 www.bbs.itcast.cn
  5. 127.0.0.1 www.news.itcast.cn
  6. 127.0.0.1 www.news.com
  7. 127.0.0.1 www.bbs.com
  8. 127.0.0.1 www.server.com
  9. </span></span></span>

第二:在tomcat的根目录下,分别建立三个目录,即server、bbs、news。

在三个目录下,分别都建立一个ROOT(ROOT是tomcat的主默认主页目录)文件夹。

将cas-server.xx.war解压后散放到/tomcat/server/ROOT目录下。如下图:

注意目录结构,是散放到ROOT的目录下。

第三步:先测试服务器是否可以正常使用

 启动tomcat,在地址栏输入:

 http://www.server.com:8080(因为我没有修改端口默认值)

用户名与密码相同就可以登录,默认

请先保证在单个服务器上登录可以登录成功。如果不能登录成功,请重复前面的配置。

第四步:配置两个客户端

将下载的文件mywebapp.war分别解压到tomcat/bbs/ROOT目录下和tomcat/news/ROOT目录下。注意是散放到ROOT目录下。

由于在mywebapp.war中并没有放置依赖的jar文件,所以,还需要我们添加它所依赖的jar文件,为此我为大家准备了已经放放置好的

mywebapp.war文件。

放置好的目录结构如下:

WEB-INF/lib目录下的包如下:

cas-client-core-3.2.1.jar

commons-logging-1.1.jar

这两个包,在cas-client.rar文件中都可以找到。

此处,你可以启动一个tomcat,如果启动成功,则进入下一步。

第五步:修改客户端的配置文件

当使用登录客户端受保护的资源时,如果发现还没有登录,则会重定向到服务器(售票处)请求登录验证,登录成功后即会获取一张票据,服务器会携带这张票据再重定向到客户端页面。

修改客户端的web.xml配置文件,让它在登录时,知道去哪台服务器:

注意将里面的https全部修改成http。

修改的部分主要分为两块:

1:修改登录重定向过虑器,它用于保护受保护的资源,如果发面用户在访问受保护的资源时,用户还没有登录,则会重定向到服务器,要求用户登录:

  1. <span style="font-size:18px;"><filter>
  2. <!--配置登录过滤器,注意负责在登录时重定到服务器页面-->
  3. <filter-name>CAS Authentication Filter</filter-name>
  4. <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
  5. <init-param>
  6. <!--到服务器地址,注意后面的/login-->
  7. <param-name>casServerLoginUrl</param-name>
  8. <param-value>http://www.server.com:8080/login</param-value>
  9. </init-param>
  10. <init-param>
  11. <!--本程序所在的URL-->
  12. <param-name>serverName</param-name>
  13. <param-value>http://www.news.com:8080</param-value>
  14. </init-param>
  15. <init-param>
  16. <param-name>renew</param-name>
  17. <param-value>false</param-value>
  18. </init-param>
  19. <init-param>
  20. <param-name>gateway</param-name>
  21. <param-value>false</param-value>
  22. </init-param>
  23. </filter></span>

第六步:测试登录

目前还不能实现单点登录。但可以对任意的一个客户端进行登录验证。

1、 在地址栏输入

http://www.news.com:8080

点击访问受保护的页面:got to protected area

将重定向到服务器请求登录:

登录成功后即重定回原请求页面:

第七步:配置可以单点登录

Cas服务器都是用spring配置文件配置而成。且使用了cookie技术。在ticketGrantingTicketCookieGenerator.xml文件中,保存了cookie的生成方式及有效时间。

注意,这是在server服务器上的spring配置文件。

打开此文件,修改成以下内容:

  1. <span style="font-size:18px;"><bean id="ticketGrantingTicketCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"
  2. p:cookieSecure="false"
  3. p:cookieMaxAge="3600"
  4. p:cookieName="mycas"
  5. p:cookiePath="/" /></span>

说明:false是指支持http协议登录。默认为true,支持https登录。

 3600中cookie保存在本地的时间,默认为-1即浏览器缓存。

   cookiePath是cookie的path设置。

第八步:单点登录测试

修改了上面文件后,即可测试是否可以从一个点的登录,即可以访问两个网站时都显示先登录的姓名:

先输入http://www.news.com:8080

在地址栏直接输入:www.bbs.com:8080

可以看到,显示的是news用户名,即之前在www.news.com上登录的用户名,即实现单点登录。

好了,以上步骤,完成,如果可以配置成功,再进入下一步。



总结

以上都是在建立在SSO的war下实现的单点登录的效果,最简单的效果,最简单的入门操作,

在CAS的主页上,可以看到CAS服务器,和客户端配置的完整过程,根据提示,完全可以配置成功服务器和客户端。同时,在CAS上也可以找到服务器端的程序和客户端的程序,都是已经配置好的,对于初步学习来说,完全可以直接取来配置测试。以上就是直接使用CAS官方提供的示例服务器和示例客户端配置一个单点登录的示例!

SSO单点登录学习总结(3)—— 基于CAS实现单点登录实例的更多相关文章

  1. 基于CAS的单点登录实战(2)-- 搭建cas的php客户端

    在这之前已经搭好了CAS服务端 基于CAS的单点登录实战(1)-- 搭建cas服务器 PHP-Client php-Client是官方支持的,去官网下个最新版就好了.phpCAS 接入很简单,解压放到 ...

  2. SSO 基于CAS实现单点登录 实例解析(二)

    本文目录: 概述 演示环境 部署CAS-Server相关的Tomcat 部署CAS-Client相关的Tomcat 测试验证SSO 第一: 本demo在一个机器上实现(三个虚拟主机),来看SSO单点登 ...

  3. 基于CAS实现单点登录(SSO):工作原理

    工作中使用到了SSO,网上看到了这个博客的一系列文章感觉不错,转载收藏 源地址http://blog.csdn.net/tch918/article/details/19930037 系列文章的第一篇 ...

  4. (转)基于CAS实现单点登录(SSO):cas client端的退出问题

    出处:http://blog.csdn.net/tch918/article/details/22276627 自从CAS 3.4就很好的支持了单点注销功能,配置也很简单. 之前版本因为在CAS服务器 ...

  5. [原]基于CAS实现单点登录(SSO):cas client端的退出问题

    自从CAS 3.4就很好的支持了单点注销功能,配置也很简单. 之前版本因为在CAS服务器通过HttpClient发送消息时并未指定为POST方式,所以在CAS客户端的注销Filter中没有收到POST ...

  6. Java并发包源码学习系列:基于CAS非阻塞并发队列ConcurrentLinkedQueue源码解析

    目录 非阻塞并发队列ConcurrentLinkedQueue概述 结构组成 基本不变式 head的不变式与可变式 tail的不变式与可变式 offer操作 源码解析 图解offer操作 JDK1.6 ...

  7. [原]基于CAS实现单点登录(SSO):登录成功后,cas client如何返回更多用户信息

    从cas server登录成功后,默认只能从casclient得到用户名.但程序中也可能遇到需要得到更多如姓名,手机号,email等更多用户信息的情况. cas client拿到用户名后再到数据库中查 ...

  8. 基于CAS的单点登录实战(1)-- 搭建cas服务器

    公司有几个系统想做SSO,然后开始研究cas.系统是Centos7 搭建CAS服务器 cas的版本比较多,先在网上搜了一下各种教程配置经验.本来想搭建最新的CAS版本,然而为了快速部署,选择了网上教程 ...

  9. 基于CAS的SSO(单点登录)实例

    第一步 部署CAS-Server(服务端) 1.从CAS官方网站(http://developer.jasig.org/cas/)下载最新版本的CAS-Server(当前最新版本cas-server- ...

随机推荐

  1. java基础 this keyword!

    为了程序的可读性,通常将一个类中的表示同一属性的变量进行统一的命名.可是这样做又会导致成员变量与局部变量名字冲突导致无法訪问成员变量.为了解决问题,java中引入了this这个keyword!所以th ...

  2. 百度LBS开放平台个性化地图 制作一款独一无二的地图

    百度LBS开放平台个性化地图  制作一款独一无二的地图 天天用百度地图的亲们是否已不再满足仅仅看例如以下的地图样式了呢? 默认百度地图样式 是否特别渴望看特别不一样的地图呢.如带京城81号气息的午夜蓝 ...

  3. 79.express里面的app.configure作用

    以下摘自 express 3.0 的 文档 app.configure([env], callback) Conditionally invoke callback when env matches ...

  4. win10下虚拟机安装XP系统 后无网卡的解决

    Windows 8提供了免费的虚拟机 Hyper-V, 但是在配置 Hyper-V虚拟机的时候经常遇到虚拟机无法上网,本文介绍的是: 原料   Windows 10 Hyper-V Windows X ...

  5. 微信小程序官方文档中的加密算法

    用Nodejs来算一下:

  6. ES6学习笔记(四)数值的扩展

    1.二进制和八进制表示法 ES6 提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o(或0O)表示. 0b111110111 === 503 // true 0o767 === 503 ...

  7. linux下安装配置rabbitMQ

    1.安装Erlang 由于RabbitMQ依赖Erlang, 所以需要先安装Erlang Erlang的安装方式大概有两种: 1.从Erlang Solution安装(推荐) # 添加erlang s ...

  8. vue 常用ui组件库

    vux github ui demo:https://github.com/airyland/vux Mint UI 项目主页:http://mint-ui.github.io/#!/zh-cn de ...

  9. ssm框架的多表查询和增删查改

    必须声明本文章==>http://www.cnblogs.com/zhu520/p/7883273.html 一: 1):我的运行环境 我使用myeclipse(你也可以使用eclipse),t ...

  10. Windows Server 2016 主域控制器搭建

    基本上微软产品都需要依附于域控制器做身份认证,接下来我们一起来对Windows Server 2016 进行AD活动目录功能添加.1.更改服务器IP地址2.修改计算机名称(重新启动计算机)3.打开服务 ...