`

cas在tomcat实现单点登录

    博客分类:
  • Java
阅读更多

使用cas在tomcat实现单点登录(精)2009-04-01 08:17cas是目前非常流行的企业应用SSO解决方案。本文就cas的配置及使用展开讨论,下图为cas原理:

 

一、软件准备:

1、apache-tomcat-6.0.18。

2、cas-server-3.3.1-release.zip(cas服务器)。

3、cas-client-2.0.11.zip。


二、配置tomcat的ssl

1、生成keystore证书

keytool -genkey -keyalg RSA -alias tomcatsso -dname "cn=localhost" -keystore server.keystore -storepass changeit

cn表示一个主机名或者一个域名,本机用localhost表示。

alias表示插入到证书中的别名。

命令执行完后,在当前目录生成server.keystore证书文件,注意,该文件一定要保护好,后面配置时需要用到。为了后面方便导入,将该文件直接生成在C:Program FilesJavajdk1.6.0_10jrelibsecurity目录下,该目录是我的jdk安装目录,注意:在windows下用导入证书时,目录名中间不能有空格,为了避免导入麻烦,jdk最好安装在没有空格的目录里。

 

2、导出证书

keytool -export -alias tomcatsso -file server.cer -keystore server.keystore -storepass changeit

该命令执行完后在当前目录生成证书文件server.cer

 

3、将server.cer导入到jdk的信任库中

在导入之前可以看看信任库中有什么证书

keytool -list -keystore cacerts -storepass changeit

执行完该命令后显示所有证书信息。默认情况下jdk1.6 u10的cacerts信任库中有59条证书信息。

如果信任库中已经有自己的证书信息了,可以用下面的命令删除:

keytool -delete -alias tomcatsso -keystore cacerts -keypass changeit

需要指定tomcatsso别名。

导入证书用一下命令:

keytool -import -alias tomcatsso -file server.cer -keystore cacerts -storepass changeit
执行结果如下:

 

以上就是tomcat中配置ssl的全部步骤。


三、打开tomcat的https

打开%CATALINA_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="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS"
      keystorePass="changeit" keystoreFile="C:server.keystore"/>

注意红色部分,我将证书文件拷贝到C盘根下了,不过这不是必须的,我只是为了让目录结构尽量短些。

如果一切顺利,启动tomcat,在浏览器中输入https://localhost:8443/,将会看到tomcat启动页面,说明tomcat的ssl已经配置成功。

四、配置cas server

1、解压cas-server-3.3.1-release.zip,找到cas-server-webapp-3.3.1.war,重命名为cas.war,

将其拷贝到tomcatwebapps下,启动tomcat,生成cas目录,在cas的WEB-INF下的lib目录中拷贝如下jar包:

cas-server-support-jdbc-3.3.1.jar(该文件也在cas-server-3.3.1-release.zip中)

commons-dbcp.jar

commons-pool.jar

spring.jar(必须的)

根据你的数据库的不同,再下个其中拷贝对应数据库的jdbc驱动,本文使用mysql,则拷贝

mysql-connector-java-5.0.5-bin.jar


2、配置cas的deployerConfigContext.xml

配置之前需要建立用户表:

 

打开cas/WEB-INF,打开deployerConfigContext.xml,先加入一个bean:

<bean id="casDataSource" class="org.apache.commons.dbcp.BasicDataSource">
     <property name="driverClassName">
          <value>com.mysql.jdbc.Driver</value>
     </property>
     <property name="url">
          <value>jdbc:mysql://localhost:3306/mydata</value>
     </property>
     <property name="username">
          <value>root</value>
     </property>
     <property name="password">
          <value>111111</value>
     </property>
</bean>
然后向下找到<bean
      class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />

将其注释掉,添加如下配置:

<bean id="SearchModeSearchDatabaseAuthenticationHandler"
      class="org.jasig.cas.adaptors.jdbc.SearchModeSearchDatabaseAuthenticationHandler"
      abstract="false" lazy-init="default"
                       autowire="default" dependency-check="default">
<property name="tableUsers">
   <value>t_users</value><!--表的名字-->
</property>
<property name="fieldUser">
   <value>username</value><!--用户名对应的字段名-->
</property>
<property name="fieldPassword">
   <value>password</value><!--口令对应的字段名-->
</property>
<property name="dataSource" ref="casDataSource" />
</bean>
cas server到此配置完毕,启动tomcat,在地址栏输入:https://localhost:8443/cas/login

不出意外,将出现登陆窗口,如果前面数据库中有数据,如用户名为xhd,口令为111111,则在该登录页面输入,点击登录后将显示登陆成功的页面。

五、配置cas客户端

1、在myeclipse中建立一个web project,在web.xml中添加如下内容:

<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/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/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>
    <init-param>
      <param-name>edu.yale.its.tp.cas.client.filter.wrapRequest</param-name>
      <param-value>true</param-value>
    </init-param>(1)
</filter>
<filter-mapping>
    <filter-name>CAS Filter</filter-name>
    <url-pattern>/*</url-pattern>(2)
</filter-mapping>

注意:(1)部分表示在cas server登录成功后,可以自动跳转到客户端访问的页面。

      (2)部分表示客户端的所有资源都将被保护,也就是说当客户端访问的任何页面都将被cas验证。

2、解压cas-client-2.0.11.zip,在cas-client-2.0.11.zipcas-client-2.0.11javalib下找到casclient.jar,将其拷贝到客户应用的WEB-INFlib下。

好了,启动tomcat,体验你的辛苦带来的乐趣吧。


参考:

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

http://www.ibm.com/developerworks/cn/opensource/os-cn-cas/index.html

 

 

分享到:
评论

相关推荐

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

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

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

    CAS 在 Tomcat 中实现单点登录

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

    单点登录(SSO)是现代企业环境中一种高效的身份验证机制,它允许用户在一个系统中登录后,无需再次输入凭证即可访问多个相互信任的应用系统。CAS(Central Authentication Service)是SSO的一种实现,由Yale大学...

    使用CAS在Tomcat中实现单点登录参考代码及配置

    ### 使用CAS在Tomcat中实现单点登录的关键知识点 #### 一、CAS简介与特性 - **CAS**(Central Authentication Service)是由耶鲁大学发起的一个开源项目,它为Web应用程序提供了一种简单可靠且功能强大的单点登录...

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

    总结来说,实现使用CAS在Tomcat6中进行单点登录,需要理解SSO的基本概念,熟悉CAS的工作原理和协议流程,掌握CAS Server的部署和配置,以及CAS Client在Tomcat中的集成。通过这些步骤,可以构建一个安全且方便的单点...

    CAS+TOMCAT实现单点登录SSO

    cas-server-3.3.1-release.zip服务器端所有资源包 cas-client-java-2.1.1.zip客户端源码包 casclient-2.1.1.jar客户端JAR包 说明.doc,完整的说明帮助文档

    cas tomcat整合单点登录demo

    【标题】"CAS Tomcat整合单点登录Demo"是一个示例项目,展示了如何将CAS(Central Authentication Service)与Tomcat应用程序服务器集成,实现单点登录(Single Sign-On, SSO)的功能。CAS是一种开放源码的身份验证...

    使用CAS整合CXF实现单点登录部署步骤

    本文将详细介绍如何使用CAS整合CXF,实现基于Tomcat服务器的单点登录部署步骤。 首先,我们需要在Tomcat服务器上部署CAS项目。这通常涉及以下步骤: 1. **下载CAS服务器**:从官方Git仓库或Maven仓库获取最新的CAS...

    Tomcat 下用cas实现单点登录

    Tomcat 下用cas实现单点登录,实现系统整合。

    cas单点登录(tomcat)

    描述中的“写的挺细”暗示了文档内容可能包含了详细的步骤和解释,这意味着我们将深入探讨如何在Tomcat环境下配置和实现CAS单点登录。 **单点登录(SSO)** 单点登录是网络环境中的一种安全机制,用户只需要一次...

    tomcat配置单点登录

    总结来说,Tomcat实现单点登录SSO,主要通过配置合适的Realm,结合Cookie机制,实现用户身份在多个应用间的共享。同时,理解SSO的各种实现技术,如基于Cookie、Kerberos、SAML和CAS等,有助于选择最合适的SSO解决...

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

    理解并掌握以上知识点,将有助于你成功地在Tomcat环境中实施CAS单点登录。这个教程应包含详细的步骤、示例代码以及可能遇到的问题和解决方法,帮助你一步步构建起安全、高效的SSO环境。在实际操作中,可能会遇到各种...

    CAS单点登录 for Tomcat

    《CAS_Tomcat6.doc》可能专注于在Tomcat6上的特定配置,而《使用 CAS 在 Tomcat 中实现单点登录.mht》可能提供了一种更直观的教程形式。 此外,《CAS使用.doc》和《Java Web 应用如何集成cas3.doc》可能涵盖了CAS的...

    基于cas的sso 单点登录tomcat配置过程

    7. **退出SSO**:为了实现单点登出,需要在应用中添加一个登出链接,点击后将用户从CAS服务器中注销,同时清除应用中的会话信息。 8. **测试SSO功能**:完成上述配置后,重启Tomcat服务器,尝试访问应用中的受保护...

    CAS多数据库配置单点登录

    为了实现单点登录,需要在CAS服务器端进行相应的配置。下面将详细介绍CAS服务器端配置的步骤: 1. 配置CAS服务器端 在CAS服务器端,需要配置单点登录的服务端口、服务器名称和认证方式等。 2. 配置客户端认证 在...

    单点登录服务端项目cas-server

    单点登录服务端项目cas-server单点登录服务端项目cas-server 单点登录服务端项目cas-server 单点登录服务端项目cas-server 单点登录服务端项目cas-server 单点登录服务端项目cas-server 单点登录服务端项目cas-...

    tomcat配置ssl-单点登录(sso).rar

    - "使用 CAS 在 Tomcat 中实现单点登录_1.pdf":这份文档应该详细介绍了如何在Tomcat上集成CAS,包括下载CAS服务器,配置服务提供者,以及客户端的安装和配置。 - "跨域SSO实例安装和配置指南_3.pdf":此文件可能...

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

    CAS(Central Authentication Service)是一种广泛使用的开放源代码的单点登录(Single Sign-On,SSO)框架,由耶鲁大学开发并维护。SSO允许用户通过一次登录验证就能访问多个应用系统,无需在每个系统之间单独进行...

    liferay+cas实现单点登录步骤

    下面我们将详细阐述如何在Liferay 6.1.x版本上结合CAS 3.5.0实现单点登录。 1. **部署CAS服务器** - 首先,你需要下载并解压CAS服务器的发行版,例如`cas-server-3.5.0-release`。 - 将`cas-server-webapp-3.5.0....

Global site tag (gtag.js) - Google Analytics