roller 4.0.1 http://download.csdn.net/source/2503562
cas-server-3.3.2 http://download.csdn.net/source/2502112
还需要下载 cas-client-java-2.1.1 http://download.csdn.net/source/2502040
mail.jar, activation.jar http://download.csdn.net/source/2503651
所有过程是在 winxp下完成的,linux是不是有什么不同不清楚,不过大概的过程应该差不多吧
1.cas 的部署
cas部署直接把 modules 下的cas-server-webapp-3.3.2.war改名为 cas.war 放到tomcat的webapps目录下就行了,但在这之前需要配置ssl
1) 生成服务端密钥
cmd 进入到 %CATALINA_HOME% 目录下,
keytool -genkey -alias passport -keysize 512 -validity 3650 -keyalg RSA -dname "CN=www.passport.com, OU=passport CA, O=passport Inc, L=gz, S=gd, C=cn" -keypass pwd -storepass pwd -keystore passport.keystore
其他的无所谓,但是 -dname "CN=www.passport.com, ... 里 CN 需要为 cas服务器的域名
2)导出成 cer文件
keytool -export -trustcacerts -alias passport -file passport.cer -keystore passport.keystore -storepass pwd
3) 配置tomcat SSL 项
在 %CATALINA_HOME%/conf 找到 SSL HTTP
<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="passport.keystore" keystorePass="pwd" />
这样启动tomcat之后,访问https://www.passport.com:8443 可以看到效果(ie的话,状态栏里有把锁),这里你需要在 hosts文件中添上
127.0.0.1 www.passport.com
4) 你可以访问 http://www.passport.com:8080/cas 默认情况下登录名和密码相同就行,这仅是测试用的
2 roller 配置 (roller可以不放到 cas同一个服务器上)
把下载包里的 webapp文件夹直接放到 tomcat的webapps目录下就行了
1)先要通过mysql的ide创建一个 rollerdb数据库,具体名字随你
2)在 WEB-INF/CLASSES目录下加入一个文件 roller-custom.properties
内容是
installation.type=auto database.configurationType=jdbc database.jdbc.driverClass=com.mysql.jdbc.Driver database.jdbc.connectionURL=jdbc:mysql://localhost:3306/rollerdb database.jdbc.username=root database.jdbc.password=password mail.configurationType=properties mail.hostName=smtp.server.com mail.username=test mail.password=testpwd
通过浏览器访问 应用 http://127.0.0.1:8080/roller
会询问你是否要创建表,yes就行了
完成之后,把 auto 改成 manual,如果访问不成功,可能需要把 mysql-connector-java-3.1.11-bin.jar放到 WEB-INF/lib目录下,
另外可能还需要加上 mail.jar, activation.jar两个文件
OK
完成了,这里,你最好先注册几个账户,以便后面通过cas的来测试
3)配置roller的cas登录, 主要修改 WEB-INF/security.xml文件,具体的文件里有介绍,按照他的修改就行了
在继续之前,需要完成以下的任务
把上面的 passport.cer 文件拷到 roller 服务器上,如果roller与 cas部署在同一台机子上,只需要直接运行下面命令
将证书导入JVM信任库中
keytool -import -trustcacerts -alias passport -file passport.cer -keystore "%JRE_HOME%/lib/security/cacerts" -storepass changeit
注意,不要弄错了 "%JRE_HOME%" 的位置,如果装了jdk的话,它可能是 %JAVA_HOME%/jre,也可能是 X:/Program Files/jre ,具体需要看 tomcat的运行在哪个 jre上(通过命令行启动 tomcat,可以看到其打印的 jre_home)
4) 在网上下载cas-client-java-2.1.1,把里面的casclient.jar拷贝到/roller/WEB-INF/lib.
这样访问 roller时,如果要登录的话,会先访问 cas的
可以参见 roller
4.0和cas的集成
http://hi.baidu.com/avauntage/blog/item/30f7ac0061de368ee850cd61.html
roller 4.0和cas的集成
http://ajava.org/course/open/14162.html
问题
我部署时碰到的两个问题,
1 页面报 no such host name错,在配置 roller的 security时,访问cas的地址应该是 www.passport.com,即与生成密钥的 CN名是一致的
2 页面报异常 trustAnchors parameter must be non-empty 或者 Unable to validate ProxyTicketValidator
在roller中似乎不好看这个异常, 但一般会登录不上,这个时候,需要在security.xml中注释掉casProxyTicketValidator 里的 trustSTore属性