最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

cas-server

来源:动视网 责编:小OO 时间:2025-09-26 21:11:11
文档

cas-server

CAS-SSO-Server文档目的书写该文档主要是配置CASServer端的配置。参考文献大部分是网友写的博客还有简略看一些官方材料。术语与缩写解释缩写、术语解释SSO即Singlesignon/off,单点登录/退出CAS全称JA-SIGCentralAuthenticationService,实现SSO的开源项目…1概述1.1基本原理首先,在我们修改之间,先了解以下CAS运行基本原理。CAS服务器,客户端(应用),浏览器的序列图如下:其中:ST:ServiceTicket,用于客户端应用
推荐度:
导读CAS-SSO-Server文档目的书写该文档主要是配置CASServer端的配置。参考文献大部分是网友写的博客还有简略看一些官方材料。术语与缩写解释缩写、术语解释SSO即Singlesignon/off,单点登录/退出CAS全称JA-SIGCentralAuthenticationService,实现SSO的开源项目…1概述1.1基本原理首先,在我们修改之间,先了解以下CAS运行基本原理。CAS服务器,客户端(应用),浏览器的序列图如下:其中:ST:ServiceTicket,用于客户端应用
CAS-SSO-Server

文档目的

书写该文档主要是配置CAS Server端的配置。

参考文献

大部分是网友写的博客还有简略看一些官方材料。

术语与缩写解释

缩写、术语解 释

SSO即Single sign on/off,单点登录/退出

CAS全称JA-SIG Central Authentication Service,实现SSO的开源项目

1 概述

1.1 基本原理

首先,在我们修改之间,先了解以下CAS运行基本原理。CAS服务器,客户端(应用),浏览器的序列图如下:

其中:

ST:Service Ticket,用于客户端应用持有,每个ST对应一个用户在一个客户端上

TGT:Ticket Granting Ticket,存储在CAS服务器端和用户cookie两个地方

CAS服务器持有ST与TGT+客户端的映射关系,客户端持有ST与用户Session的映射关系,在renew的情况下,每次客户端根据用户 Session将ST发送给CAS服务器端,服务器端检验ST是否存在即可知道此用户是否已登陆。在普通情况下,用户第一次登陆应用时,客户端将用户页面 重定向到CAS服务器,服务器取出用户cookie中的TGT,检验是否在服务器中存在,若存在则生成ST返回给客户端  (若不存在则要求登陆,登陆成功后同样返回ST给客户端),客户端拿到ST后再发送给CAS服务器认证是否为真实ST,认证成功即表示登陆成功

我们可以看到,其实我们需要做的就是第2步中返回的登陆页面由服务器改放到客户端,然后让第3步中由用户在客户端上输入用户名密码但提交到CAS服务器端,登陆成功与失败都将转向客户端。

1.2 系统环境

Window 7 旗舰版、 jdk1.7.0、apache-tomcat-6.0.32

Java环境变量: D:\\Program Files\\Java\\jdk1.7.0

1.3 下载资源

服务器端:http://downloads.jasig.org/cas/ 

当前最新版本cas-server-3.4.11-release.zip

客户端:http://downloads.jasig.org/cas-clients/ 

当前最新客户端版本 cas-client-3.2.1-release.zip

2 配置 CAS Server

2.1 简单配置

把你下载cas-server-3.4.11-release解压,进入cas-server-3.4.11\\modules,复制cas-server-webapp-3.4.11.war到apache-tomcat-6.0.32\webapps下,修改名称为cas.war,方便使用,原来的名字太长了。启动tomcat,然后启动IE,输入http://localhost:8080/cas检验是否可以访问,如果可以,则输入相同的用户名和密码,比如cas/cas,测试是否能登录。

如果出现如下界面,那么恭喜你第一阶段完成了。可以进行关联数据库和证书的操作。

2.2数据库验证配置

简单配置后,可以使用相同的用户名和密码,进行登录。这个不实际,可以通过配置实现连接自己的数据库进行配置。这里有个前提,就是所有系统需要使用相同的用户表和密码加密方法,可以使用CAS自带的加密方法(\\org\\jasig\\cas\\authentication\\handler\\ DefaultPasswordEncoder.class)或自己用JAVA写的加密方法。

进入目录apache-tomcat-6.0.32\\webapps\\cas\\WEB-INF,打开文件deployerConfigContext.xml,找到类似下面的代码:

这是默认的方法。同时还有两种可选,如下:

              

/************************************************************************/

                       abstract="false" lazy-init="default" autowire="default" dependency-check="default">

                 

                       

                       

                       

                       

                       

以上两种方式都经过测试。另外,也可以写出自己的方法验证,修改BEAN的CLASS属性即可。如果没有密码没有加密,则可以把参数去掉。

说明:参考配置完的Cas-Server中我使用的第三种方案,所以应该把默认的注释。

下面针对最下面的方法进行说明。

看它的属性,还需要定义两个BEAN,数据源和加密,如下:

        

        

        

        

        

        

              

       

 

              class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder" autowire="byName">

注:把这些配置文件复制到deployerConfigContext.xml中的时候不要有任何中文字符和特殊字符。因为有的工具解析的时候会有异常信息。所以我们不要在配置文件中包含任何非法字符。

如出现以下错误:

 [/WEB-INF/deployerConfigContext.xml];nested exception is com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 2 字节的 UTF-8 序列的字节 2 无效。

如果出现上述错误删除配置文件中的特殊字符即可。

    由于CAS-SERVER.WAR默认没有采用数据库加密,所以部分JAR包,没有引入,下面这些需要复制到webapps\\cas\\WEB-INF\\lib里面:

Cas-server-support-jdbc-3.3.3.jar    //这两个文件在cas-server-3.4.11\\modules文件夹下

Cas-server-support-ldap-3.3.3.jar

Commons-dbcp.jar        // apache-tomcat-6.0.32\\lib下就能找到,或者从apache官方下载

Commons-pool.jar        // 从apache官方下载

Org.springframework.jdbc-3.0.0.M4.jar     //spring默认的包内含有该两个文件

Org.springframework.transaction-3.0.0.M4.jar

Oraclejdbc.jar                                // 我使用的是Oracle

完成以后,用户表数据准备好后,可以运行http://localhost:8080/cas进行登录测试。这个时候很容易出现错误,多数是因为JAR包问题,查看apache-tomcat-6.0.32\\logs日志缺少哪些jar文件。

2.3 可选参数配置

    Cas默认是启用https协议进行验证的,如果不向启用https则需要配置如下3个文件。

    

1、apache-tomcat-6.0.32\\webapps\\cas\\WEB-INF\deployerConfigContext.xml

                    p:httpClient-ref="httpClient"/>

增加参数p:requireSecure="false",是否需要安全验证,即HTTPS,false为不启用。

2、apache-tomcat-6.0.32\\webapps\\cas\\WEB-INF\\spring-configuration\ 

ticketGrantingTicketCookieGenerator.xml

        p:cookieSecure="true"

        p:cookieMaxAge="-1"

        p:cookieName="CASTGC"

        p:cookiePath="/cas" />

参数p:cookieSecure="true",同理为HTTPS验证相关,TRUE为采用HTTPS验证,与deployerConfigContext.xml的参数保持一致。

参数p:cookieMaxAge="-1",简单说是COOKIE的最大生命周期,-1为无生命周期,即只在当前打开的IE窗口有效,IE关闭或重新打开其它窗口,仍会要求验证。可以根据需要修改为大于0的数字,比如3600等,意思是在3600秒内,打开任意IE窗口,都不需要验证。

2.4 HTTPS验证配置

证书的制作使用keytool工具,进入CMD,输入keytool,回车测试,如果出现帮助,则说明环境变量配置正确,如果没有,则配置PATH,加入%JAVA_HOME%\\bin。

制作证书

下面开始制作,先找好存放证书的位置:如D:\\key

keytool -genkey -alias greatsoft –keystore greatsoft -keyalg RSA -validity 3666

参数说明:

-keyalg使用加密的算法,这里是RSA

-alias密钥的别名

-keypass私有密钥的密码,这里设置为123456

-keystore 密钥保存在D:\key目录下的greatsoft文件中

-storepass 存取密码,这里设置为123456,这个密码提供系统从greatsoft文件中将信息取出

-validity该密钥的有效期为 180天

注:名字与姓氏要输入主机名或域名或localhost,如果Cas-Server和Cas-Client在同一台计算机上可以使用localhost,在局域网内可以计算机名称。

建议:最好使用域名,这个域名可以是一个网络中不真实、不存在的域名。如果这个域名对于Cas-Server不是真实的话,需要在客户端配置DNS的虚拟映射(C:\\Windows\\System32\\drivers\\etc\\hosts)。

导出证书

keytool -export -alias greatsoft -keystore greatsoft -file greatsoft.crt

这一步是把密钥库导出为证书文件:

2.5 自定义页面

CAS页面文件放在Tomcat 6.0\\webapps\\cas\\WEB-INF\\view\\jsp中,页面配置文件在Tomcat 6.0\\webapps\\cas\\WEB-INF\\classes中,比如default_views.properties,在这里指定登录用哪个页面,注销用哪个页面等等。

在Tomcat 6.0\\webapps\\cas\\WEB-INF\\cas.properties文件指定使用哪个皮肤页面。

    下面开始操作:

    1、进入Tomcat 6.0\\webapps\\cas\\WEB-INF\\view\\jsp,复制default文件夹,并改名,再复制回来,如myth。

    2、进入Tomcat 6.0\\webapps\\cas\\WEB-INF\\classes,复制default_views.properties,并改名再复制回来,如myth_views.properties。打开文件,把里面的目录.修改为自己的路径,如.。

    3、进入Tomcat 6.0\\webapps\\cas\\WEB-INF,打开cas.properties文件,修改

cas.viewResolver.basename=myth_views

完成以上3步后,打开IE,进入http://localhost:8080/cas进行测试,如果成功则进行下一步。

注意:文件中logout使用的类。

4、修改页面样式

最后一点说明,Tomcat 6.0\\webapps\\cas\\WEB-INF\\cas-server.xml中,有个BEAN:

            p:order="0">

        

            

                ${cas.viewResolver.basename}

                protocol_views

            

        

这个不要修改,否则出现http code 500 for url 。

2.6应用证书到Web服务器-apache-tomcat

说是应用起始做的事情就是启用Web服务器(Tomcat)的SSL,也就是HTTPS加密协议,为什么加密我就不用啰嗦了吧……

     准备好一个干净的tomcat,本教程使用的apache-tomcat-6.0.32

打开tomcat目录的conf/server.xml文件,开启83和87行的注释代码,并设置keystoreFile、keystorePass修改结果如下:

               maxThreads="150" scheme="https" secure="true"

               clientAuth="false" sslProtocol="TLS" 

           keystoreFile="D:/keys/greatsoft"

           keystorePass="123456"

/>

参数说明:

keystoreFile:制作证书key存放位置。

这里要说明的是,这里的greatsoft指的是密钥库文件,而不是证书文件(greatsoft.crt)。

keystorePass:创建证书时的密码

好了,到此Cas-Server的SSL启用完成,现在你可以启动tomcat试一下了,例如本教程输入地址:https://localhost:8443/cas

另外:在启动apache-tomcat-6.0.32时候如果出现如下警告,但是访问应用程序正常:

警告: [SetAllPropertiesRule]{Server/Service/Connector} Setting property 'maxTheads' to '500' did not find a matching property.

2010-7-4 20:49:35 org.apache.catalina.startup.SetAllPropertiesRule begin

警告: [SetAllPropertiesRule]{Server/Service/Connector} Setting property 'minSpareTheads' to '100' did not find a matching property.

2010-7-4 20:49:35 org.apache.catalina.startup.SetAllPropertiesRule begin

警告: [SetAllPropertiesRule]{Server/Service/Connector} Setting property 'maxSpareTheads' to '300' did not find a matching property.

通过网上搜索,具体解决方法如下:

server.xml中的配置HTTPS的那部分Connector代码

maxThreads="150" scheme="https" secure="true"

clientAuth="false" sslProtocol="TLS"

keystoreFile="你的.keystore文件" />

将protocol参数由"HTTP/1.1"改成"org.apache.coyote.http11.Http11Protocol",重新启动Tomcat,搞定!

根据Tomcat官方的文档http://tomcat.apache.org/tomcat-6.0-doc/config/http.html,"HTTP/1.1"和"org.apache.coyote.http11.Http11Protocol"是一样的,但是不知道为什么前者会出错而后者就是对的,而且HTTP部分的Connector用的也是"HTTP/1.1"。

这个警告很是离奇,更改后就会解决。

文档

cas-server

CAS-SSO-Server文档目的书写该文档主要是配置CASServer端的配置。参考文献大部分是网友写的博客还有简略看一些官方材料。术语与缩写解释缩写、术语解释SSO即Singlesignon/off,单点登录/退出CAS全称JA-SIGCentralAuthenticationService,实现SSO的开源项目…1概述1.1基本原理首先,在我们修改之间,先了解以下CAS运行基本原理。CAS服务器,客户端(应用),浏览器的序列图如下:其中:ST:ServiceTicket,用于客户端应用
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top