`
zccmp
  • 浏览: 8181 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

CAS在tomcat下的部署和定制

阅读更多
引言

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

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

说明

CAS的相关文档在网上可谓铺天盖地,可是对于企图搭架构起CAS服务的新手,往往会发现,介绍理论的文章没有结合操作;介绍操作的文章又缺胳膊断腿,并不能真正按部就班的架构起一个完整的单点登录/退出的服务。

本文就将以操作步骤为主,尽可能完整的讲述一个cas的客户端和服务端在tomcat下部署和配置的过程,至于理论知识,请读者自行搜索,或者参考文章末尾的参考资料。

环境

Windows XP

JDK1.5

Tomcat6.0

准备1

安装JDK,eclipse,tomcat

准备2

到CAS官方站点下载CAS的客户端和服务器端

官方地址为:http://www.ja-sig.org/products/cas/

下载页面为:http://www.ja-sig.org/products/cas/downloads/index.html

到下载页面下载以下3个zip包:

第一个,CAS Server,这个是CAS的服务器端(当前最新版本是3.3.1)

第二个,JA-SIGCAS Java Client,这个是官方开发的CAS的客户端,用于单点退出。特别注意事项:当前只有这个客户端(JA-SIGCAS Java Client)的3.1.2及以上版本支持单点退出(当前最新版本是3.1.3)

第三个,Yale CAS Client,这个是耶鲁大学开发的CAS的客户端,用于单点登录,不支持单点退出(当前最新版本是2.0.11)

下载后的ZIP包安放于c:\resource\cas目录下,分别解压于当前目录。

准备工作结束,开始正式操作。

步骤1:制作密钥

开始-运行-CMD

先测试一下,键入:(键入尖括号右面的代码。尖括号不要键入,下同)

>keytool

如果没有出现帮助说明,说明Path没有配置,如何配置不会的自己baidu。

配置好了重新打开CMD窗口,转到c:\resource\cas目录下。

怎么转?好吧,不会的按照下面的代码键入:

>c:

>cd\

>cd resource\cas

接下来开始生成密钥,键入:

>keytool -genkey -alias tomcat -keystore ./mykeystore -keyalg RSA -validity 2000

password:changeit

Common Name/Your Name:localhost

剩下的随便输入

确认,输入"yes",中文的话输入"是"

最后,使用密码相同,直接回车

操作成功的话,会在c:\resource\cas目录下产生一个mykeystore的文件

继续键入:

>keytool -export -alias tomcat -keystore ./mykeystore -file server.crt

Keystore password:changeit

操作成功的话,会在c:\resource\cas目录下产生一个server.crt的文件

继续键入:

>keytool -import -alias tomcat -file ./server.crt -keystore %JAVA_HOME%/jre/lib/security/cacerts

Keystore password:changeit

特别说明:这个%JAVA_HOME%是指tomcat需要使用的JDK,当然,如果按照本文后面的用eclipse里配置的tomcat,那%JAVA_HOME%就是eclipse中tomcat所配置的JDK,如果你配到其他的jdk上,到后面实际访问服务端的时候会出现异常:unable to find valid certification path to requested target

tomcat所配置的JDK是哪个?不知道?查看eclipse中tomcat所配置的JDK的方法:

Eclipse下菜单window-preperences-myEclipse-servers-tomcat-tomcat6-jdk-tomcat JDK name,这个tomcat JDK name对应的是window-preperences-java-installed JREs下的name属性,其对应的location就是jdk的路径了。

至此,步骤1完成。

步骤2:配置tomcat

打开%TOMCAT_HOME%/conf/server.xml,其中有这么一段代码

    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"

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

               clientAuth="false" sslProtocol="TLS" />

这段代码当前状态是被注释掉的,将他打开,并完善成如下代码:

    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"

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

       clientAuth="false" sslProtocol="TLS"

           keystoreFile="c:/resource/cas/mykeystore "

       keystorePass="changeit"/>

注意事项:其中的keystoreFile="c:/resource/cas/mykeystore" ,配置上后此文件不可被删除,不然tomcat会报错:找不到此文件。

保存关闭文件,步骤2完成。

步骤3:配置CAS服务端

在c:\resource\cas\cas-server-3.3.1-release\cas-server-3.3.1\modules目录下,有个cas-server-webapp-3.3.1.war的war包,复制到%TOMCAT_HOME%/webapps目录下,并更名为cas_server.war

因为我们刚才配置的是eclipse使用的JDK,所以现在通过eclipse启动tomcat

访问http://localhost:8080/cas_server,出现登录页面,说明部署成功。

尝试下登录,用户名和密码相同就可以登录成功。

步骤4:配置CAS客户端

在eclipse中新建一个web工程,名字:cas_client1

将c:\resource\cas\cas-client-2.0.11\cas-client-2.0.11\java\lib\casclient.jar复制到工程cas_client1的lib下面(用于单点登录)

将c:\resource\cas\cas-client-3.1.3-release\cas-client-3.1.3\modules目录下的cas-client-core-3.1.3.jar复制到工程cas_client1的lib下面(用于单点退出)

将c:\resource\cas\cas-client-3.1.3-release\cas-client-3.1.3\modules目录下的commons-logging-1.1.jar复制到工程cas_client1的lib下面(用于单点退出)

在工程cas_client1的web.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>

<filter-name>CAS Filter</filter-name>

<filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class>

    <init-param>

      <param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name>

       <param-value>https://localhost:8443/cas_server/login</param-value>

    </init-param>

    <init-param>

       <param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>

       <param-value>https://localhost:8443/cas_server/serviceValidate</param-value>

    </init-param>

    <init-param>

       <param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>

       <param-value>localhost:8080</param-value>

    </init-param>

</filter>

<filter-mapping>

    <filter-name>CAS Single Sign Out Filter</filter-name>

    <url-pattern>/*</url-pattern>

</filter-mapping>

<filter-mapping>

    <filter-name>CAS Filter</filter-name>

    <url-pattern>/*</url-pattern>

</filter-mapping>

注意事项:web.xml中的filter要注意先后顺序,CAS Single Sign Out Filter相关配置要放在原先配置的CAS Filter的前面(至少filter-mapping要在前面)

至此,步骤4完成。

测试:同时将cas_client1和cas_server发布一下,访问http://localhost:8080/cas_client1,将自动跳转到服务端的登录页面,填写相同的用户名和密码,则成功登录并跳转回客户端的。

步骤5:单点登录和退出

按照步骤4 的流程,再创建web工程,名字:cas_client2

同时部署server,client1,client2

测试1:访问client1,登录后可以直接访问client2

测试2:访问client2,登录后可以直接访问client1

测试3:登录client1,退出后可以不可访问client1和client2

如何退出?访问https://localhost:8443/cas_server/logout就退出了。

注意事项:访问形如http:// localhost:8080/cas_server/logout,这种通过http方式访问退出是不行的!!因为你不通过https来注销,CAS Server怎么"杀"掉它通过https发给你的TGC Cookie?

至此,步骤5完成,基本完成单点登录和退出功能。
分享到:
评论

相关推荐

    使用CAS在Tomcat中实现单点登录

    然后,CAS Server作为Java Web应用部署在Tomcat上,通常需要根据具体需求扩展用户验证接口,以适应不同组织的认证策略。 部署CAS Server的步骤包括: 1. 配置Tomcat使用HTTPS,这涉及到生成SSL证书和修改Tomcat的`...

    使用CAS 在Tomcat 中实现单点登录实例教程,有例子和参考

    1. **CAS服务器配置**:首先,你需要在服务器上部署CAS服务器。这通常涉及到下载CAS服务器的WAR文件,将其放入Tomcat的webapps目录,并启动Tomcat。确保CAS服务器的配置文件(如`cas.properties`)正确无误,包括...

    构建cas的war部署包(cas-overlay)(cas-server-webapp)(4.2.7)

    在4.2.7版本中,CAS的部署方式采用了WAR overlay技术,这是一种优化的打包策略,允许开发者在不修改CAS源码的情况下,自定义CAS服务器的行为和外观。 首先,理解WAR文件:WAR(Web Application Archive)是Java Web...

    CAS服务器部署

    2. **部署到Tomcat**:将WAR文件复制到Tomcat的`webapps`目录下,Tomcat会自动解压并启动CAS服务。 3. **启动与验证**:启动Tomcat,通过浏览器访问`http://your-server:port/cas`,如果出现CAS登录页面,表示部署...

    myeclipse、tomcat集成CAS

    在“tomcat集成CAS.doc”文档中,应该详细介绍了在Tomcat服务器上配置和部署CAS客户端的步骤,包括添加CAS服务器的信任证书、配置服务器的context.xml以支持HTTPS以及调整CAS客户端的配置文件。通过阅读这份文档,你...

    openjdk11+tomcat9+CASServer.zip

    在这个"openjdk11+tomcat9+CASServer.zip"压缩包中,包含了搭建CAS Server 6.3系列所需的基础软件组件,主要涉及三个关键技术:OpenJDK 11、Tomcat 9和CAS Server。 **OpenJDK 11**: OpenJDK是Java Development Kit...

    CAS单点登录 for Tomcat

    1. **下载和安装CAS服务器**:首先,从官方站点下载CAS服务器的源码或预编译版本,然后在Linux环境中部署和配置。这通常涉及到修改`server.xml`配置文件,添加相应的监听器和过滤器。 2. **配置CAS客户端**:在...

    定制cas单点登录用户名密码验证

    这些文件名暗示了学习资源的内容,包括Yale大学的CAS教程、关于CAS的Java开发者论坛讨论、一篇关于CAS最佳实践的文章以及一篇关于在Tomcat上开发CAS单点登录并定制认证方式的博客文章。这些资料将提供详细的步骤、...

    cas4认证服务

    Overlay技术允许用户在不修改CAS核心代码的情况下,覆盖默认配置和视图,实现定制化需求。 CAS 4.0.1的几个关键知识点包括: 1. **协议支持**:CAS支持多种身份验证协议,如CAS Protocol、SAML 1.1、OAuth、OpenID ...

    cas_server4.1.2

    将CAS Server部署到Tomcat中,可以利用Tomcat的性能和灵活性,同时利用CAS提供的认证服务来保护Web应用程序的安全。 初始配置时,CAS Server 4.1.2默认设置了一个用户名和密码——"casuser/Mellon"。这个用户账户是...

    cas实现单点登录服务端及客户端

    - 同一Tomcat部署:将提供的三个工程(CAS服务器和两个测试客户端)全部打包成WAR文件,放入同一个Tomcat的webapps目录下,启动后可以同时运行并测试SSO效果。 - 分开部署:如果因为资源限制或隔离需求,可以将...

    cas单点登录服务端

    最后,CAS还提供了一套丰富的API和Web服务接口,允许开发者扩展和定制功能,比如自定义登录界面、实现个性化认证策略等。 总的来说,CAS单点登录服务端的部署涉及了Web应用的部署、应用服务器的管理、服务定义配置...

    cas4.2.4、cas4.0war包

    将WAR文件复制到Tomcat的webapps目录下,容器会自动解压并启动CAS服务器。默认账号casuser和密码Mellon用于访问管理界面和其他可能需要身份验证的操作。 为了确保安全性,强烈建议在生产环境中更改默认的管理员账户...

    cas修改登录页

    9. **部署与发布**:最后,了解如何将修改后的CAS服务器部署到生产环境,如Tomcat或Jetty等应用服务器,也是重要的一步。 通过这个项目,你不仅能够学习到如何自定义CAS登录页面,还能深化对SSO系统、Web开发以及...

    cas.rar_cas java_cas服务端代码_单点登录

    5. 部署与配置:部署CAS服务器通常涉及设置服务器环境,如配置Tomcat,导入CAS的WAR文件,然后进行必要的CAS服务器配置,如设置数据库连接、定义服务等。开发者可以通过修改配置文件来调整服务器的行为。 6. 单点...

    cas-server-4.0.0-release

    部署CAS服务器时,你需要将WAR包部署到像Tomcat这样的应用服务器中,然后根据你的环境和需求调整配置文件。一旦配置完成,CAS服务器将作为中心的身份验证服务,为你的应用生态系统提供安全的SSO体验。

    cas-server-4.0.0-release与依赖包.zip

    2. **部署CAS**:将CAS的WAR文件部署到Servlet容器中,通常是将其拷贝到容器的webapps目录下。 3. **配置CAS**:修改配置文件以适应你的环境,例如设置数据库连接、服务URL等。 4. **启动CAS**:启动Servlet容器,...

    cas-client-3.2.1 cas-server-3.4.11

    - 服务器应用:如WAR文件,可部署在Tomcat等Servlet容器中。 - 配置文件:如server.xml,用于设置服务器端口、数据库连接等。 - 认证模块:支持多种认证方式,如用户名/密码、LDAP、Active Directory等。 - 管理...

    cas-overlay-template-master.zip

    "cas-overlay-template-master"中的文件提供了这些定制的起点,开发者可以修改`src/main/resources`下的配置文件,例如`cas.properties`和` applicationContext.xml`来调整服务器行为。 7. **安全考虑**:在部署CAS...

Global site tag (gtag.js) - Google Analytics