Java开发网 |
注册 |
登录 |
帮助 |
搜索 |
排行榜 |
发帖统计
|
您没有登录 |
» Java开发网 » Java Security
打印话题 寄给朋友 订阅主题 |
作者 | Re:求助!关于JBoss下的JOSSO单点登录问题! [Re:foozle] |
foozle
发贴: 5 积分: 0 |
于 2008-06-24 09:43
我已经在JBOSS下成功部署了CAS,并简单实现了SSO. 下了client的源码,进行了分析,发现自己是可以定制client的.呵. 如下是我写的配置过程....请多执教..不足的地方请指正.... 部署环境: 操作系统:WindowsXPsp2 JDK:1.5 服务器:JBOSS4.2.4 CASServer:3.2.1 http://www.ja-sig.org/products/cas/ CASClient:2.0.1 配置步骤: 一、修改本操作系统虚拟域名 Windows操作系统:C:\WINDOWS\system32\drivers\etc下的hosts文件,加入一行cas.server ip Linux 操作系统 /etc/hosts 二、生成服务器端安全证书 keytool -genkey -alias my-alias-name -keyalg RSA -keystore keystore-file keytool -export -file myserver.cert -alias my-alias-name -keystore keystore-file 密码:自定义 例vampire 提示姓名:写为更改后的虚拟域名,例:cas.server 国家代码:CN Copy 生成的两个证书文件到 %JBOSS_HOME%/server/default/conf下 Copy cas-server-3.2.1-release.zip包modules下的cas-server-webapp-3.2.1.war到Jboss下的运行服务器下,并更名为cas.war 三、修改JBOSS服务器配置,打开SSL通道 修改jboss-4.2.2.GA\server\default\deploy\jboss-web.deployer\server.xml 找到 <Connector port="8080" address="${jboss.bind.address}" maxThreads="250" strategy="ms" maxHttpHeaderSize="8192" emptySessionPath="true" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true"/> 修改为: <Connector port="8080" address="cas.server" maxThreads="250" maxHttpHeaderSize="8192" emptySessionPath="true" protocol="HTTP/1.1" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" /> 找到 <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="${jboss.server.home.dir}/conf/keystore-file" keystorePass="vampire"/> 四、导出服务端的证书,用来给所有需要用到的客户端导入 keytool -import -keystore $JAVA_HOME/jre/lib/security/cacerts -file myserver.cert -alias my-alias-name 在客户端的JVM里导入信任的SERVER的证书 默认密码:changeit 五、将导出的证书上传的client服务器上(JBOSS)。 启动JBoss,检验cas配置是否成功,访问http://ip:8443/cas/login,如果能看到cas的登录页面则表示配 六、配置cas-client,在需要做单点登录的模块上做修改,demo.war Copy cas-client-2.0.11\cas-client-2.0.11\java\lib\ casclient.jar到demo.war\web-inf\lib下 Copy cas-server-3.2.1-release\cas-server-3.2.1\modules\cas-server-support-jdbc-3.2.1.jar到同上目录下 Copy mysql-connector-java-5.0.6-bin.jar 到同上目录下 修改 demo.war\web-inf\web.xml 加入如下内容: <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://cas.server:8443/cas/login</param-value> </init-param> <init-param> <param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name> <param-value>https:// cas.server:8443/cas/proxyValidate</param-value> </init-param> <init-param> <param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name> <param-value> cas.server:8080</param-value> </init-param> </filter> <filter-mapping> <filter-name>CASFilter</filter-name> <url-pattern>/ *</url-pattern> </filter-mapping> 七、配制CAS进行数据库验证 这里使用MYSQL为例: 建立表 CREATE TABLE `app_user` ( `username` varchar(30) NOT NULL default '', `password` varchar(45) NOT NULL default '', PRIMARY KEY (`username`)   ENGINE=InnoDB DEFAULT CHARSET=utf8; 并添加测试用户 insert into app_user(username,password)values(“123”,”123”); 修改cas.war\web-info\deployerConfigContext.xml 注释掉: <bean class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" /> 加上: <bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler"> <property name="sql" value="select password from app_user where username=?" /> <property name="dataSource" ref="dataSource" /> </bean> 并在最后加上一个bean <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/dbName</value></property> <property name="username"><value>root</value></property> <property name="password"><value>windows</value></property> </bean> OK,重新发布cas.war. 访问http://cas.server:8080/demo即可转到CAS做验证 简单配置完成。 JAVA学习日子分享 |
话题树型展开 |
人气 | 标题 | 作者 | 字数 | 发贴时间 |
23160 | 求助!关于JBoss下的JOSSO单点登录问题! | foozle | 302 | 2008-06-23 17:48 |
21215 | Re:求助!关于JBoss下的JOSSO单点登录问题! | foozle | 4750 | 2008-06-24 09:43 |
18997 | Re:求助!关于JBoss下的JOSSO单点登录问题! | foozle | 67 | 2008-06-24 12:58 |
18866 | Re:求助!关于JBoss下的JOSSO单点登录问题! | foozle | 40 | 2008-06-26 22:08 |
21874 | Re:求助!关于JBoss下的JOSSO单点登录问题! | foozle | 16 | 2008-07-02 14:02 |
已读帖子 新的帖子 被删除的帖子 |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |