【SSO单点系列】(1):CAS4.0 环境的搭建

基于CAS协议的SSO单点登录-深度剖析 阅读详情


一、概述

   今天开始写CAS相关的第一篇文章,这篇文章主要是关于CAS环境的搭配,提供给刚刚接触CAS的一个入门指南,并演示一个CAS的最简单的实例

 

二、环境要求

博主的环境如下:

  1. win8.1 64 bitJDK1.7  下载地址点我Tomcat-8.0.15  下载地址点我cas-server-4.0.0 、cas-client-3.3.3  下载地址点我  (官网速度比较慢,提供百度网盘)

tomcat服务器需要部署三个,我分别命名为 apache-tomcat-8.0.15-app1、apache-tomcat-8.0.15-app2、apache-tomcat-8.0.15-cas

分别的用途如下:
序号
服务器名称
用途
1
tomcat-app1
客户端服务器1:用户部署应用app1
2
tomcat-app2
客户端服务器2:用户部署应用app2
3
tomcat-cas
cas服务器:用来部署CAS server

 

 三、特别说明

  CAS 默认认证方式使用的是HTTPS协议,一般对安全性不高的话建议取消改成HTTP方式。因为,开启的话会经常提示证书过期、需要用户确认等,对客户的感知不好,当前有需要的可以开启。

 如果需要HTTPS协议的话,有关证书的生成可以参考这篇文章 : CAS单点登录证书导入 

 取消HTTPS协议的方法,第四点会具体介绍,大家可以接着往下看!

 

四、实例讲解

第一步、Tomcat修改

  1. 解压下载的 Tomcat-8.0.15.zip,并按照第二点的约定复制三个并命名

修改tomcat的相关启动等端口,使机器可以运行多个tomcat。我的访问端口对应如下:

序号 服务器名称 访问端口
1 tomcat-app1 8081
2 tomcat-app2 8082
3 tomcat-cas 18080

端口的修改方法:打开 x:\tomcat-app1\conf\server.xml 文件, 找到

复制代码
 
   
第一个:修改Shutdown端口(默认为8005端口)
<
Server port="8005" shutdown="SHUTDOWN">
第二个: 修改http访问端口(默认为8080端口)
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

第三个:修改8009端口
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

      修改成自己需要的端口即可。

        

第二步、CAS-SERVER 服务端的部署

    1. 解压下载的 cas-server-4.0.0-release.zip 压缩包找到 X:\cas-server-4.0.0\modules\cas-server-webapp-4.0.0.war 文件解压到 tomcat-cas\webapps\ 下取消HTTPS协议:

       1)打开 cas-server\WEB-INF\deployerConfigContext.xml 文件 ,找到如下配置:

 

<!-- Required for proxy ticket mechanism. -->
    <bean id="proxyAuthenticationHandler" 
class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler" p:httpClient-ref="httpClient" /> 增加参数p:requireSecure="false",是否需要安全验证,即HTTPS,false为不采用。修改后为: <bean id="proxyAuthenticationHandler"
class
="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler" p:httpClient-ref="httpClient" p:requireSecure="false" />

 

     2)打开 cas-server\WEB-INF\spring-configuration\ticketGrantingTicketCookieGenerator.xml ,找到如下配置:

 

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

修改  p:cookieSecure="true" 为 p:cookieSecure="false"
即不开启https验证

 

    3) 打开 cas-server\WEB-INF\spring-configuration\warnCookieGenerator.xml ,找到如下配置:

 

<bean id="warnCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"
        p:cookieSecure="true"
        p:cookieMaxAge="-1"
        p:cookieName="CASPRIVACY"
        p:cookiePath="/cas" />
修改  p:cookieSecure="true" 为 p:cookieSecure="false"
即不开启https验证

 

 

 

5.启动 tomcat-cas ,访问  http://localhost:18080/cas-server ,可以看到如下界面

  

      

  注意:cas-server4.0之前的默认验证规则:只要用户名和密码相同就认证通过

  4.0 之后规则改了,默认是配置在 deployerConfigContext.xml 配置文件中,可以看到用户名密码为 casuser/Mellon。

      

<bean id="primaryAuthenticationHandler"
          class="org.jasig.cas.authentication.AcceptUsersAuthenticationHandler">
        <property name="users">
            <map>
                <entry key="casuser" value="Mellon"/>
            </map>
        </property>
    </bean>

 

 

 第三步、客户端(cas-client)的配置

注:我们直接用tomcat自带的examples工程作为客户端例子

  1. 解压我们下载的cas-client-3.3.3-release.zip 包,复制cas-client-3.3.3\modules\cas-client-core-3.3.3.jar 包放到 tomcat-app1\webapps\examples\WEB-INF\lib 下(两个client tomcat都需要放,这边只列出其中一个)修改examples\WEB-INF\web.xml 文件,增加下面的内容:

 

 

<!-- ========================单点登录开始 ======================== -->
    <!--用于单点退出,该过滤器用于实现单点登出功能,可选配置 -->
    <listener>
        <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>
    </listener>
    <!--该过滤器用于实现单点登出功能,可选配置。 -->
    <filter>
        <filter-name>CASSingle Sign OutFilter</filter-name>
        <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>CASSingle Sign OutFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <filter>
        <filter-name>CASFilter</filter-name>
        <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
        <init-param>
            <param-name>casServerLoginUrl</param-name>
            <param-value>http://localhost:18080/cas-server/login</param-value>
        </init-param>
        <init-param>
            <param-name>serverName</param-name>
            <param-value>http://localhost:8081</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>CASFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <!--该过滤器负责对Ticket的校验工作,必须启用它 -->
    <filter>
        <filter-name>CASValidationFilter</filter-name>
        <filter-class>
            org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter
        </filter-class>
        <init-param>
            <param-name>casServerUrlPrefix</param-name>
            <param-value>http://localhost:18080/cas-server</param-value>
        </init-param>
        <init-param>
            <param-name>serverName</param-name>
            <param-value>http://localhost:8081</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>CASValidationFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <!-- 该过滤器负责实现HttpServletRequest请求的包裹, 比如允许开发者通过HttpServletRequest的getRemoteUser()方法获得SSO登录用户的登录名,可选配置。 -->
    <filter>
        <filter-name>CASHttpServletRequest WrapperFilter</filter-name>
        <filter-class>
            org.jasig.cas.client.util.HttpServletRequestWrapperFilter
        </filter-class>
    </filter>
    <filter-mapping>
        <filter-name>CASHttpServletRequest WrapperFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <!-- 该过滤器使得开发者可以通过org.jasig.cas.client.util.AssertionHolder来获取用户的登录名。 比如AssertionHolder.getAssertion().getPrincipal().getName()。 -->
    <filter>
        <filter-name>CASAssertion Thread LocalFilter</filter-name>
        <filter-class>org.jasig.cas.client.util.AssertionThreadLocalFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>CASAssertion Thread LocalFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <!-- ========================单点登录结束 ======================== -->

 

 4.启动 tomcat-app1 ,然后访问 http://localhost:8081/examples ,页面会跳到

http://localhost:18080/cas-server/login?service=http%3A%2F%2Flocalhost%3A8081%2Fexamples%2F

说明单点成功

 

 

同样的  tomcat-app2 我这边就不演示了,

我把修改完的两个web.xml 上传上来 

tomcat-app1 : web.xml

tomcat-app2 : web.xml

 

 第四步、 单点流程演示

我们首先依次把三个tomcat都启动后 ,我们先单独访问两个客户端看看效果

1. 访问 http://localhost:8081/examples  ==》 跳到 http://localhost:18080/cas-server/login?service=http%3A%2F%2Flocalhost%3A8081%2Fexamples%2F

2. 访问 http://localhost:8082/examples  ==》 跳到  http://localhost:18080/cas-server/login?service=http%3A%2F%2Flocalhost%3A8082%2Fexamples%2F

说明两个客户端第一次访问时都需要跳转到cas-server进行认证

 

接下来:我们登录其中一个客户端 http://localhost:8081/examples ,账号密码  casuser/Mellon

登录成功后 显示下面的界面

 

然后我们在打开一个新选项卡 ,直接访问 http://localhost:8082/examples

可以看到 不会跳转到cas-server登录界面 直接显示下面的界面

 

说明 两个客户端单点登录成功,登录了其中一个,另一个不需要登陆即可进行访问。

 

 

总结、

  单点登录(Single Sign On , 简称 SSO )是目前比较流行的服务于企业业务整合的解决方案之一, SSO 使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 

上文只是介绍了最简单的单点登录例子,在实际开发中是不能使用的。如果需要应用到项目中,还需要许多个性化的订制,比如登陆页的美化、通过数据库认证、服务端与客户端用户信息的交互等。这些都会在后面的文章中介绍到。

 

好了,第一篇大概就这样了, 没有什么代码,就不上传源码了,大家凑合的看吧!

下一篇会介绍 【登录页的个性化定制】。

 

打完收工。。。

!

!

 

posted @ 2014-12-17 23:20 _辉 阅读(2022) 评论(13) 编辑 收藏
SSO 单点登录 CAS4.0 环境的搭建 单点登录(Single Sign On,简称SSO)是目前比较流行的服务于企业业务整合的解决方案之一,SSO使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。CAS(Central Authentication Service)是一款不错的针对Web应用的单点登录框架,这里就说说使用CAS实现SSO的方式。 阅读详情

相关推荐

【单点登录】什么是 SSO 与 CAS?

SSO 【转自】https://www.cnblogs.com/btgyoyo/p/10722010.html SSO 是英文 Single Sign On 的缩写,翻译过来就是单点登录。顾名思义,它把两个及以上个产品中的用户登录逻辑抽离出来,达到只输入一次用户名密码,就能同时登录多个产品的效果。 打个比方,SSO 和我们去迪士尼玩时购买的通票很像。 我们只要买一次通票,就可以玩所有游乐场内的设施,而不需要在过山车或者摩天轮那里重新买一次票。在这里,买票就相当于登录认证,游乐场就相当于使用一套

happydecai的博客 1852

CAS4.0 server 环境的搭建

一:不需https访问环境搭建1、上cas的官网下载cas server 官网地址:https://github.com/Jasig/cas/releases,下载好后    解压下载的 cas-server-4.0.0-release.zip 压缩包,把cas-server-4.0.0\modules\cas-server-webapp-4.0.0.war     重命名为cas.war也可以到...

zangguangtian的博客 6060

CAS认证解决方案:客户端与服务器版本实践

本文还有配套的精品资源,点击获取 简介:CAS(Central Authentication Service)是基于Web的单一登录(SSO)协议,用于提供网络上的统一认证服务。本文介绍的"cas-client-3.2.1+cas-server-3.4.10"组合涉及CAS客户端和服务器的特定版本。包括客户端特性如协议支持、自动配置、登录/退出处理、安全增强以及多语言支持。...

weixin_35706255的博客 2136

cas单点登录系统搭建、配置、扩展

title: cas单点登录系统搭建、配置、扩展 tags: cas notebook: cas 环境信息 节点 已安装软件 系统配置 node8 apache-tomcat-8.0.53.tar.gz;jdk-8u181-linux-x64.tar.gz centos7.2 一.安装 cas单点登录系统 1.下载源码,编译 cas-server-4.0.0-release....

JinLiang16353 1156

cas-server-4.0版本

cas-server-4.0,版本,直接放到tomcat里面使用,内容已经换好

cas-server-4.0.0-release单点登录源码和war包-原版

原版cas单点登录源码和wa包,原版sso,官网下载太慢,所以特地放到csdn

CAS 4.0 配置开发手册

CAS 4.0部署、配置以及编译和开发手册

面对现实,忠于梦想 2万+

cas-server-4.0.0-release部署包

CAS实现SSO单点登录-CAS Server搭建,cas-server-4.0.0源码及部署包下载

【SSO单点系列】(1):CAS4.0 之环境的搭建

【SSO单点系列】(1):CAS4.0 环境的搭建 一、概述   今天开始写CAS相关的第一篇文章,这篇文章主要是关于CAS环境的搭配,提供给刚刚接触CAS的一个入门指南,并演示一个CAS的最简单的实例 二、环境要求 博主的环境如下: win8.1 64 bit JDK1.7 下载地址点我 Tomcat-8.0.15 下载地址点我 cas-server-...

182

cas-server4.0

最新cas server4.0,web server端部署配置文件

cas-server-4.0.0.rar

cas-server源码 自带moudle的.war文件,放到tomcat中就可以用 用于sso单点登录系统,适用于认证和授权

CAS实现SSO单点登录-CAS Server搭建

&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;最近公司连续接了三四个单点登录集成的项目,由我们公司提供CAS Server端的,也有需要我们把Client与其他公司提供的Server端对接的,我负责把我们公司的一个Client与另外一个公司提供的Server端对接,由于

高级项目经理、专注于技术架构、分享项目管理及职场心得 3万+

Ubuntu24.04LTS上Ollama GPU加速配置指南:从驱动安装到多卡均衡负载

本文详细介绍了在Ubuntu24.04LTS系统上配置Ollama GPU加速的完整指南,包括NVIDIA驱动安装、CUDA Toolkit配置、Ollama在线与离线安装方法,以及多GPU负载均衡优化策略。通过实战案例和性能调优建议,帮助开发者充分利用硬件资源提升大型语言模型的运行效率。

weixin_29255731的博客 760

SSO之CAS单点登录部署

项目之前用到单点登录,之前都是网上找了一些资料然后就用上了,中间也遇到了一些问题,这里总结一下,毕竟以后还是可能再用到这东西的。 这里摘抄下有关基本概念帮助后面理解CAS的实现1.基本概念:cookie,session,会话cookie,jssessionid cookie和session机制是为了解决HTTP协议的无状态而生的; cookie是客户端保存用户信息的机制; session是服务器保

记录成长的点点滴滴 6367

3dsMax高效导入OSGB倾斜模型的3个关键步骤与插件应用

本文详细解析了在3dsMax中高效导入OSGB倾斜模型的三个核心步骤:建立索引、处理贴图路径以及选择合适的插件。针对导入过程中常见的模型崩溃、贴图丢失和操作卡顿问题,提供了从数据结构理解到插件选型的实战解决方案,帮助用户实现大规模实景模型在3dsMax中的流畅导入与编辑。

weixin_29238147的博客 471

Vmware虚拟机一打开就蓝屏解决方法

Vmware虚拟机一打开就蓝屏解决方法 问题: 一打开Vmware虚拟机就蓝屏,如下图所示: 解决方法1: 启用和关闭windows功能(对话框)——>虚拟机平台(选项打对勾,默认没勾选)——>确定后重启——>再进应该就好了。 解决方法2: ①.查看电脑中的Hyper-V服务是否关闭 1.打开控制面板-程序-程序和功能 2.双击启用或关闭Windows功能 3.把Hyper-V前面的勾去掉 如果后期发下没有反应,或者电脑本身Hyper-V的服务没有打开,可以先打开在关闭,试

m0_55901666的博客 26万+
上一篇: Docker学习总结之Run命令介绍
下一篇: Spring Boot Logback应用日志
杜引强
博客等级 码龄13年 806粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值