锁定老帖子 主题:CAS项目实践
精华帖 (2) :: 良好帖 (3) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-01-19
最后修改:2009-01-26
-genkey 在用户主目录中创建一个默认文件".keystore",还会产生一个mykey的别名,mykey中包含用户的公钥、私钥和证书
-alias 产生别名 -keystore 指定密钥库的名称(产生的各类信息将不在.keystore文件中 -keyalg 指定密钥的算法 -validity 指定创建的证书有效期多少天 -keysize 指定密钥长度 -storepass 指定密钥库的密码 -keypass 指定别名条目的密码 -dname 指定证书拥有者信息例如: "CN=firstName,OU=org,O=bj,L=bj,ST=gd,C=cn" -list 显示密钥库中的证书信息 keytool -list -v -keystore 别名 -storepass .... -v 显示密钥库中的证书详细信息 -export 将别名指定的证书导出到文件 keytool -export -alias 别名 -file 文件名.crt -file 参数指定导出到文件的文件名 -delete 删除密钥库中某条目 keytool -delete -alias 别名 -keystore sage -keypasswd 修改密钥库中指定条目口令 keytool -keypasswd -alias 别名 -keypass .... -new .... -storepass ... -keystore 别名 -import 将已签名数字证书导入密钥库 keytool -import -alias 别名 -keystore 证书名-file 文件名(可以加.crt 后缀)
注意: 多个jre),需要将生成的证书文件导入至web服务器使用的那个jre的信任证书列表中,可以使用keytool -list 命令检查证书是否导入成功。 <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="/usr/java/default/bin/server.keystore" keystorePass="changeit" truststoreFile="/usr/java/default/jre/lib/security/cacerts" />
<Host name="sso.example.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> </Host> 将cas-server-3.3.1-release\cas-server-3.3.1\modules\cas-server-webapp-3.3.1.war解压并 放至 webapps/cas3目录后,可通过https://sso.example.com:8443/cas3/login
访问cas server登录页面。 create table users ( id int not null auto_increment, username varchar(50) not null, password varchar(50) not null, primary key (id) );
<bean class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" /> 替换为: <bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler"> <property name="sql" value="select password from users where username=?" /> <property name="dataSource" ref="dataSource" /> </bean>
javax.servlet.ServletException: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target edu.yale.its.tp.cas.client.filter.CASFilter.getAuthenticatedUser(CASFilter.java:254) edu.yale.its.tp.cas.client.filter.CASFilter.doFilter(CASFilter.java:184)
提示找不到有效的证书路径。 <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://sso.example.com:8443/cas3/login</param-value> </init-param> <init-param> <param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name> <param-value>https://sso.example.com:8443/cas3/serviceValidate</param-value> </init-param> <init-param> <param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name> <param-value>sso.example.com</param-value> </init-param> </filter> <filter-mapping> <filter-name>CAS Filter</filter-name> <url-pattern>/portal/portal.jsp</url-pattern> </filter-mapping> String username = (String)session.getAttribute(CASFilter.CAS_FILTER_USER);
根据获得的用户名称再去本地数据库查找用户信息,完成验证及角色权限初始化的工作。 帐户的管理,至于用户在每个系统中的权限分配,还是继续交给子系统完成吧。可以开发一个cas server端的 集成界面(portal),方便用户在各个子系统中间的快速切换。 cas server端的账户信息同步。 成portal访问,又可以从原有的访问地址访问。 4,配置server端及client的服务器时候一定要找对tomcat究竟在使用那一个jre,windows上查看 %JAVA_HOME%变量,linux上echo $JAVA_HOME. 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-05-06
刚用yelo这套CAS改写了一套简单的cas,呵呵
|
|
返回顶楼 | |
发表时间:2009-09-15
CAS 读一次数据,然后本地再读一次,为什么不用CAS直接返回User信息呢?
|
|
返回顶楼 | |
发表时间:2009-09-15
infante_yin 写道 CAS 读一次数据,然后本地再读一次,为什么不用CAS直接返回User信息呢?
这个功能是默认情况下, CAS 不提供的,只返回一个用户名。因为其他的数据的结构及什么信息CAS 都不知道,他就不知道怎么去取信息和要取哪些信息。如果把其他都加上的话,可能耦合性就比较高了。我相信可以通过修改源码可以实现。但我不知道有没有固定的方法或者开放接口可以方便实现这个功能。 |
|
返回顶楼 | |
发表时间:2009-09-16
grandboy 写道 infante_yin 写道 CAS 读一次数据,然后本地再读一次,为什么不用CAS直接返回User信息呢?
这个功能是默认情况下, CAS 不提供的,只返回一个用户名。因为其他的数据的结构及什么信息CAS 都不知道,他就不知道怎么去取信息和要取哪些信息。如果把其他都加上的话,可能耦合性就比较高了。我相信可以通过修改源码可以实现。但我不知道有没有固定的方法或者开放接口可以方便实现这个功能。 给UsernamePasswordCredentialsToPrincipalResolver提供一个org.jasig.services.persondir.IPersonAttributeDao 的实现类就可以,jsp也需要稍作调整。 |
|
返回顶楼 | |
发表时间:2009-11-17
lz,给一下security和cas集成的配置文件吧!初学者,不太会配
|
|
返回顶楼 | |
发表时间:2009-11-20
单点登陆的概念很泛,cas只能集成符合cas规范的应用,耦合性比较大,对于其他的应用没有提供的功能,所以,不太看好这个单点登陆概念,需要国人进一步做一些扩展
|
|
返回顶楼 | |
浏览 18063 次