CAS SSO单点登录实例详细步骤

来源:互联网 发布:网络侵权案例 编辑:程序博客网 时间:2024/05/18 02:37

 

CAS_SSO单点登录实例详细步骤()Tomcatssl(https)配置

(Central Authentication Service)

http://desert3.iteye.com/blog/1700335

 

http://www.mossle.com/docs/auth/html/ch103-cas.html

 

 

第一步
1、用keytool生成证书:

命令:
       
keytool -genkey -alias sjc-keyalg RSA -keystore c:/store/mykey
说明:
   
这里-alias sjc是表示生成的这个证书的别名叫sjc-keyalgRSA 指的是采用的RSA算法,-keystorec:/store/mykey是指生成的证书存储的位置。回车后会提示你输入keystorepassword,这可以自己定(这里输入sunjuncai,下面配tomcat时要用的),然后是一些个人信息及组织信息,可以轻松搞定。
注意:密码输入后,会让你输入其他信息,记得这里第一个姓名必须是服务器的域名这里我输入的是完整计算机名称:gaofeng.nmc.hamcc

 


这里要注意如果不这样写就会报如下异常:
java.io.IOException: HTTPS hostname wrong:  should be<localhost>

 

 

实战:

C:\Documents and Settings\wangyoushi8>keytool -genkey -alias sjc-keyalg RSA -keystore c:/store/mykey

输入keystore密码: sunjuncai

您的名字与姓氏是什么?

 [Unknown] gaofeng.nmc.hamcc

您的组织单位名称是什么?

 [Unknown] 上海神洲数港

您的组织名称是什么?

 [Unknown] 网络优化

您所在的城市或区域名称是什么?

 [Unknown] 郑州

您所在的州或省份名称是什么?

 [Unknown] 河南

该单位的两字母国家代码是什么

 [Unknown] ZH

CN= gaofeng.nmc.hamcc, OU=上海神洲数港, O=网络优化, L=郑州, ST=河南, C=ZH 正确吗?

 [] y

输入<sjc>的主密码

       (如果和 keystore密码相同,按回车):

 

 

2、创建证书后,就导出证书:

命令:

keytool -export -file c:/store/server.crt -alias sjc -keystore c:/store/mykey

说明:

c:/store/mykey里取出证书入到c:/store/,如果没有指定,就是存放在目录下C:\Documentsand Settings\用户目录名\

实战:

C:\Documents and Settings\wangyoushi8>keytool -export -filec:/store/server.crt -alias sjc -keystore C:/store/mykey

输入keystore密码: sunjuncai

保存在文件中的认证 <c:/store/server.crt>

 

 

3、为客户端的JVM导入密钥:

命令:

       keytool -import -keystoreD:/jdk1.5.0_12/jre/lib/security/cacerts -file c:/store/server.crt -alias sjc

说明:

注意:输入密码时密码为"changeit",这是默认密码.

特别说明:这个D:/jdk1.5.0_12/jre/lib/security/cacerts是指JDKJRE路径下的lib目录.

至此,第一步完成。

实战:

C:\Documents and Settings\wangyoushi8>

keytool -import -keystore D:/jdk1.5.0_12/jre/lib/security/cacerts-file c:/store/server.crt -alias sjc

输入keystore密码: changeit

Owner: CN=localhost, OU=上海神洲数港, O=网络优化, L=郑州, ST=河南, C=Zh

发照者: CN=localhost, OU=上海神洲数港, O=网络优化, L=郑州, ST=河南, C=Zh

序号: 4abd6dd0

有效期间: Sat Sep 26 09:26:40 CST 2009至: Fri Dec 25 09:26:40 CST 2009

认证指纹:

        MD5 F7:19:E9:F8:53:08:B0:15:E7:A4:46:6D:1E:8A:F4:2B

        SHA1 09:ED:CF:67:D0:F5:C0:A4:96:1D:B1:A3:68:D3:2C:9F:FF:1B:7F:DE

信任这个认证? [] y

认证已添加至keystore

修改服务端Tomcat配置文件,(Tomcat安装路径下的conf/server.xml使用编辑工具显示行号在95行处取消注释)即可启用SSL如下:

<Connector port="8443"maxHttpHeaderSize="8192"  

         maxThreads="150"minSpareThreads="25" maxSpareThreads="75"  

         enableLookups="false"disableUploadTimeout="true"  

         acceptCount="100" scheme="https"secure="true"  

         clientAuth="false" sslProtocol="TLS"

         keystoreFile="c:/store/mykey"

         keystorePass="sunjuncai"/>

只需修改绿色部分。

完成以上两步,测试一下:

重启Tomcat后在地址栏输入https://localhost:8443如果浏览器显示:

 

可以把localhost用本机IP地址,如https://10.87.59.162:8443/试试。如果配置正确就搞定了,浏览显示的时候提示安装证书。浏览器的状态栏会显示如图所示:

解决办法:

a.查看Host文件,c:\windows\system32\drivers\etc\hosts,打开hosts这个文件,看看127.0.0.1localhost是不是在一行。

b.是否用了代理服务器上网,选中“对于本地址不使用代理服务器。

 

部署CAS应用

a.CAS服务端的配置

CAS Server的下载http://www.jasig.org/cas/download

CAS Server安装
\cas-server-3.3.3-release\cas-server-3.3.3\modules\cas-server-webapp-3.3.3.warcopytomcat\webapps下重命名为cas;

重启Tomcat,,检查 CAS应用是否正常启动。在地址栏输入https://localhost:8443/cas如浏览器显示:

默认的casserver的验证是只要用户名和密码一样就可以成功登录。如图:

b.CAS客户端配置
CAS Client的下载  http://www.ja-sig.org/downloads/cas-clients/
\cas-client-java-2.1.1\dist\casclient.jarcopy到你所发布的webappWEB-INF/lib

在客户端web应用中修改WEB-INF/web.xml在里面添加过滤器

<!--用于单点退出 -->

      <listener>

<listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>

      </listener>

      <filter>

             <filter-name>CASSingle Sign Out Filter</filter-name>

             <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>

      </filter>

      <!--用于单点登录 -->

      <filter>

             <filter-name>CASFilter</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>

                    <!--这里的server是服务端的IP-->

             </init-param>

             <init-param>

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

                    <param-value>https://gaofeng.nmc.hamcc:8443/cas/proxyValidate</param-value>

                    <!--这里的ServerName是服务端的主机名也就是CN-->

             </init-param>

             <init-param>

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

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

<!--client:port就是需要cas需要拦截的地址和端口,一般就是这个tomcat所启动的ipport-->

             </init-param>

      </filter>

      <filter-mapping>

             <filter-name>CASSingle Sign Out Filter</filter-name>

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

      </filter-mapping>

      <filter-mapping>

             <filter-name>CASFilter</filter-name>

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

      </filter-mapping>

</web-app>

到此为止,基本配置已经告一段落。(完成),如遇到什么问题,请致信给:Todaysjc.

定制和扩展1:通过直接访问数据库定制密码验证

1.新建Mysql数据库cas,笔者的数据库用户名是root,密码为空。新建文本文件,命名为cas.sql

/*

MySQL Data Transfer

Source Host: localhost

Source Database: cas

Target Host: localhost

Target Database: cas

Date: 2009-10-9 18:08:58

*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------

-- Table structure for user

-- ----------------------------

DROP TABLE IF EXISTS `user`;

CREATE TABLE `user` (

 `username` varchar(255) NOTNULL,

 `password` varchar(255) NOTNULL

) ENGINE=InnoDB DEFAULT CHARSET=gbk;

 

-- ----------------------------

-- Records

-- ----------------------------

INSERT INTO `user` VALUES ('1', '1');

2. 加入包到webapps\cas\WEB-INF\lib:

mysql-connector-java-5.1.5-bin.jar

cas-server-support-jdbc-3.3.1.jar(来自于cas-server-3.3.1.zip)

spring-jdbc-2.5.5.jar

3. webapps\cas\WEB-INF\deployerConfigContext.xml文件中加入dateSourceBean

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" destroy-method="close">
          <property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property>
          <property name="url"><value>jdbc:mysql://localhost:3306/cas</value></property>
          <property name="username"><value>root</value></property>
          <property name="password"><value></value></property>
</bean>

4. deployerConfigContext.xml文件中

注释掉:

      <beanclass="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePassword
AuthenticationHandler" />

换成:

      <beanclass="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">

      <propertyname="dataSource" ref="casDataSource" />

      <property name="sql" value="select password from user where username=?" />

   <propertyname="passwordEncoder" ref=" passwordEncoder "/>

      </bean>

 

 

参考网址:

Keytool详细讲解http://www.infosecurity.org.cn/article/pki/case/23823.html

Java、咖啡与茶http://linliangyi2007.javaeye.com/blog/165307 (推荐)学习笔记一

                http://linliangyi2007.javaeye.com/blog/165310 学习笔记二

                http://linliangyi2007.javaeye.com/blog/165313 学习笔记三

扭曲的铅笔  http://www.blogjava.net/naruke/archive/2008/08/12/161551.html配置(

                  http://www.blogjava.net/naruke/archive/2007/11/19/161574.html配置(下

Pocky的工作室

http://hi.baidu.com/zh_m_zhou/blog/item/a6236da5765bd6f09052ee8f.html/cmtid/a292b6ecbe99b04579f05516(上篇)

http://hi.baidu.com/zh%5Fm%5Fzhou/blog/item/a56123071aeae77c02088196.html(下篇)

 

使用 J2EE Policy Agent保护应使用程序

http://www.cqzol.com/programming/J2EEJ2ME/200812/273824.html

WZK网址库

 

Spring Framework开发参考手册        http://www.redsaga.com/spring_ref/2.0/html/

51视窗                              http://www.51windows.net/hw/asp/

                                     http://www.jar114.com

 

 

 

 

 

 

 

 

 

 

 

 

维护记录:

安全证书到期,访问时浏览器显示:

只对第一步的<3>为客户端的JVM导入密钥:做一个别名修改sjc改为sjc1987

C:\Documents and Settings\wangyoushi8>keytool -import -keystoreD:/jdk1.5.0_12/jre/lib/security/cacerts -file c:/store/server.crt -aliassjc1987

输入keystore密码: changeit

Owner: CN=gaofeng.nmc.hamcc, OU=上海神洲数港, O=网络优化, L=郑州, ST=河南, C=ZH

发照者: CN=gaofeng.nmc.hamcc, OU=上海神洲数港, O=网络优化, L=郑州, ST=河南, C=ZH

序号: 4b3b122d

有效期间: Wed Dec 30 16:41:17 CST 2009至: Tue Mar 30 16:41:17 CST 2010

认证指纹:

         MD5 80:6C:C1:02:B3:6C:BC:F3:A3:B9:EA:69:22:13:56:5A

         SHA197:33:73:8A:07:0C:B9:49:4E:4B:58:74:4D:FE:20:25:E0:1B:12:D1

信任这个认证? []  y

认证已添加至keystore

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 母婴店来客人少怎么办 键盘驱动被卸载了怎么办 广州 狗狗随地大小便怎么办 上海 狗狗随地大小便怎么办 服装店人流量少生意差怎么办 2018年服装店生意特别差怎么办 打印机拍的照片打出黑怎么办 租的汽车撞了怎么办 神州租车车坏了怎么办 深圳市公安局办保安员证怎么办? 老婆被车撞了后失忆了怎么办 生气引起的短暂失忆怎么办 win10系统忘记开机密码怎么办 戴尔win10密码忘了怎么办 戴尔电脑win10密码忘了怎么办 出门忘记带身份证了怎么办 一年染了7次头发怎么办 低头久了颈椎疼怎么办 一只眼睛磨得慌怎么办 没有睡好眼睛痛怎么办 好几天没休息好怎么办 血糖高睡不好觉怎么办 眼睛感觉磨的慌怎么办 痔疮手术后大便疼肛裂痛怎么办 肛裂排便困难痛怎么办 智齿导致的牙疼怎么办 肛裂一直不愈合怎么办 孕妇肛裂拉屎疼怎么办 产后50天小肚子突出怎么办 肚子像怀孕一样大怎么办 蹲厕所拉不出来怎么办 生气导致回奶了怎么办 老公每晚要吃奶才睡觉怎么办 分分钟想把老公杀掉怎么办 老公出轨闹的厉害离家出走怎么办? 儿子故意杀人一审判死刑怎么办 被家暴时妻子杀了丈夫该怎么办 丈夫挣钱不给妻子怎么办 白色皮鞋染了色怎么办 刺扎到手里拿不出来怎么办 军官证解锁片丢了怎么办