首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 企业软件 > 行业软件 >

CAS 配备(转)

2012-12-14 
CAS 配置(转)CAS官网地址:http://www.jasig.org/cas??? CAS服务端下载地址:http://www.ja-sig.org/downloa

CAS 配置(转)

CAS官网地址:http://www.jasig.org/cas

??? CAS服务端下载地址:http://www.ja-sig.org/downloads/cas/

??? CAS客户端下载地址:http://www.ja-sig.org/downloads/cas-clients/

?? 准备工作

????? 1. 环境:Windows XP 、JDK1.5 、Tomcat6.0

????? 2. 所需的包:commons-pool-1.5.4.jar

???????????????????????? commons-dbcp-1.2.2.jar

???????????????????????? commons-collections-3.2.jar

???????????????????????? cas-server-support-jdbc-3.1.1.jar

???????????????????????? 数据库驱动包

?? 配置SSL

?? 使用命令提示符进入到Tomcat安装目录 :
?? 1. 生成服务端密匙,执行以下命令
???????? keytool -genkey -alias 别名keyalg RSA -keypass changeit -storepass changeit?? -keystore server.keystore
?????? 例:keytool -genkey -alias casserver -keyalg RSA -keypass changeit -storepass changeit -keystore server.keystore
?????? 运行后出现提示信息:
?????? 您的名字与姓氏是什么?
?????? [Unknown]: localhost???????? // 这里一定要填写正确的主机名
?????? 您的组织单位名称是什么?
?????? [Unknown]: test
?????? 您的组织名称是什么?
?????? [Unknown]: test
?????? 您所在的城市或区域名称是什么?
?????? [Unknown]:beijing
?????? 您所在的州或省份名称是什么?
?????? [Unknown]:beijing
?????? 该单位的两字母国家代码是什么
?????? [Unknown]: cn
?????? CN=localhost, OU=oksonic, O=oksonic, L=kunming, ST=yunnan, C=cn 正确吗? Y
?????? 完成后会在Tomcat目录生成一个名为server.keystore的文件


?? 2. 生成服务端证书,执行以下命令
?????? keytool -export -alias casserver -storepass changeit -file server.cer? -keystore server.keystore
?????? 命令执行后生成一个server.cer的证书文件


?? 3. 生成客户端密匙,执行以下命令
?????? keytool -genkey -alias casclient -keyalg RSA -keypass changeit -storepass changeit -keystore client.keystore

?? 4. 生成客户端证书,执行以下命令
?????? keytool -export -alias casclient -storepass changeit -file client.cer? -keystore client.keystore
?????? 命令执行后生成一个server.cer的证书文件


?? 5. 导入证书文件到cacerts 文件中,执行以下命令
?????? keytool -import -trustcacerts -alias server -file server.cer -keystore cacerts -storepass changeit
?????? keytool -import -trustcacerts -alias client -file client.cer -keystore?? cacerts -storepass changeit
?????? 把cacerts文件,拷贝到$java_home/jre/lib/security目录下

?? 6. 修改Tomcat的配置文件server.xml把以下补注释的内容打开并添加红色部分
????? <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
?????????????? keystoreFile="/server.keystore" keystorePass="changeit"
?????????????? maxThreads="150" scheme="https" secure="true"
?????????????? clientAuth="false" sslProtocol="TLS" />

?? CAS部属

?? 1.? 将cas-server-3.3.5/modules/包内cas-server-webapp-3.3.5.war改名为cas.war并拷贝到Tomcat目录下的webapps目录下

?? 2.? 启动Tomcat,访问https://localhost:8443/cas,如果能出现正常的 CAS 登录页面,则说明 CAS Server 已经部署成功

?? 3.? 如果需要连接数据库来登录还需要配置 deployerConfigContext.xml文件

??????? 将<bean />

??????? 注释后添加:

?????? <bean id="SearchModeSearchDatabaseAuthenticationHandler"
????????????????? lazy-init="default"? autowire="default" dependency-check="default">
????????????????? <property name="tableUsers">
?????????????????? <value>table_name</value>
????????????????? </property>
????????????????? <property name="fieldUser">
?????????????????? <value>username</value>
????????????????? </property>
????????????????? <property name="fieldPassword">
?????????????????? <value>password</value>
????????????????? </property>
????????????????? <property name="dataSource" ref="casDataSource" />
???????? </bean>

?????? 然后配置数据库,在外面添加一个bean ,内容如下:

?????? <bean id="casDataSource" class="org.apache.commons.dbcp.BasicDataSource">
?????????? <property name="driverClassName">
??????????????? <value>oracle.jdbc.driver.OracleDriver</value>
?????????? </property>
?????????? <property name="url">
???????????????? <value>jdbc:oracle:thin:@192.168.1.52:1521:dbname</value>
?????????? </property>
?????????? <property name="username">
???????????????? <value>name</value>
?????????? </property>
?????????? <property name="password">
???????????????? <value>password</value>
?????????? </property>
?????? </bean>

?? 部属客户端应用

?? 1. 与CAS SERVER建立信任关系

?????? 假设 CAS Server 单独部署在一台机器 A,而客户端应用部署在机器 B 上,由于客户端应用与 CAS Server 的通信采用 SSL,因此,需要在

?????? A 与 B 的 JRE 之间建立信任关系。首先与 A 机器一样,要生成 B 机器上的证书,配置 Tomcat 的 SSL 协议。其次下载

?????? http://blogs.sun.com/andreas/entry/no_more_unable_to_find 的 InstallCert.java,运行“ java InstallCert compA:8443 ”命

?????? 令,并且在接下来出现的询问中输入 1。这样,就将 A 添加到了 B 的 trust store 中。如果多个客户端应用分别部署在不同机器上,那么每

?????? 个机器都需要与 CAS Server 所在机器建立信任关系

?? 2. 依赖包部属

?????? a. 将在准备工作中下载的三个包放到 $Tomcat_Home/webapps/cas/WEB-INF/lib目录下

?????? b. 将casclient-2.1.1.jar、cas-client-core-3.1.9.jar(用于单点退出)放到你的应用lib下,如 client_1/WEB-INF/lib目录下

?? 3. web.xml配置

??? <!--单点退出配置-->

???? <filter>
??????? <filter-name>CAS Single Sign Out Filter</filter-name>
??????? <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>
??? </filter>???


??? <!--单点登录配置-->?

??? <filter-mapping>
??????? <filter-name>CAS Single Sign Out Filter</filter-name>
??????? <url-pattern>/*</url-pattern>
??? </filter-mapping>
??? <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:8081</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>
???
??? <listener>
?????? <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>
??? </listener>

?? 4.? 测试登录

???? a. 登录client_1,输入正确的用户名密码登录成功

???? b. 在访问client_2,不用再登录

?? 5.? 测试退出

???? a. 访问https://localhost:8443/cas/logout就退出了

???? b. 再访问client_2或clinet_1需要登录

?? 注意:退出一定要用https, 用 http 是不行的。

? 参考文献:

? http://blog.csdn.net/DL88250/archive/2008/08/20/2799522.aspx

? http://ssh-2009-126-com.javaeye.com/blog/562111

热点排行