`
lvyanglin
  • 浏览: 83970 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

cas-server-3.3.2 使用举例

阅读更多
1.搭建java环境;
2.下载cas-server 和cas-client-java-2.1.1
   http://www.jasig.org/cas/download/cas-server-321
   http://www.ja-sig.org/downloads/cas-clients/
3.部署cas-server环境
   第一步:解压缩cas-server-3.2.1.zip 将cas-server-3.3.2\modules下的.war放在tomcat的webapps下解压缩之后将名称改为cas。
   第二步:在地址栏中输入http://localhost:8080/cas/login 检查cas的登陆页面是否出现。
   第三步:修改cas/webapp/WEB-INF/deployerConfigContext.xml 增加数据源bean的配置(该工程是用spring构建的,不懂spring的朋友需要看看spring)
   <bean id="dataSource"    class="org.springframework.jdbc.datasource.DriverManagerDataSource" destroy-method="close">
<property name="driverClassName" value="${db.driver}" />
<property name="url" value="${db.url}" />
<property name="username" value="${db.username}" />
<property name="password" value="${db.password}" />
   这一步是为了找到使用在数据库中检验的数据源
  第四步:增加具体用户表检验查询的bean的配置
<bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
<property name="sql" value="select password from CORE_USERS where logid=?" />
<property name="passwordEncoder" ref="passwordEncoder"/>
<property name="dataSource" ref="dataSource" />
</bean>
同时 org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler 是不在默认的解压缩的cas的lib中需要从cas-server-3.3.2\modules找到cas-server-support-jdbc-3.3.2.jar包放在cas的lib包中,同时加入该数据库的驱动jar包
加入passwordEncoder的bean的定义(明文密码用户表可以不需要,上面对passwordEncoder引用的配置<property name="passwordEncoder" ref="passwordEncoder"/> 也可以不要)
输入http://localhost:8080/cas/login 输入用户名和密码测试系统是否正常能检验密码。
第五步:给tomcat配置SSL证书。
   因为cas在登陆检验用户的时候是用的https协议(本人存在修改过http但是几次都不能完全成功,修改之后单系统可以检验但是多系统跳转出现问题)。配置ssl和java tomcat的版本有关系,本人测试jdk为jdk1.6.0_10 tomcat为tomcat-6.0.18。
引用
keytool -delete -alias tomcatsso -keystore "%JAVA_HOME%/jre/lib/security/cacerts" -storepass changeit 

keytool -delete -alias tomcatsso -storepass changeit 

rem keytool -list -keystore "%JAVA_HOME%/jre/lib/security/cacerts" -storepass changeit 

keytool -genkey -keyalg RSA -alias tomcatsso -dname "CN=localhost" -storepass changeit 

keytool -export -alias tomcatsso -file "%JAVA_HOME%/jre/lib/security/tomcatsso.crt" -storepass changeit 

keytool -import -alias tomcatsso -file "%JAVA_HOME%/jre/lib/security/tomcatsso.crt" -keystore "%

java_home%/jre/lib/security/cacerts" -storepass changeit

将上面的表格中的命令拷出来放在.bat文件中作为一个批处理文件。
拷贝C:\Documents and Settings\Administrator\.keystore到%tomcat_home%\conf\
将8443端口替换为:
引用
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxHttpHeaderSize="8192" 
        keystorePass="changeit" keystoreFile="conf/.keystore"
        maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
        enableLookups="false" disableUploadTimeout="true"
        acceptCount="100" scheme="https" secure="true"
       clientAuth="false" sslProtocol="TLS" />

输入
https://localhost:8443/cas/login登陆系统出现cas的登陆界面
第五步:安装客户端程序
将cas-client-java-2.1.1 的客户端程序加压后将casclient.jar放入客户端服务程序的lib中,此时我们登陆客户端应用登陆界面会跳转到cas认证的页面,输入用户名和密码系统进入登陆页面。我们要做到登陆之后直接进入系统制定的页面,必须修改我们客户端的应用的登陆程序,修改的部分主要是:1.在客户端的应用系统的web.xml中加入
引用
<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.wrapRequest</param-name> 
           <param-value>true</param-value>
       </init-param>
      <init-param> 
  <param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name> 
  <param-value>localhost:8080</param-value> 
       </init-param> 
   </filter> 
    <filter-mapping> 
<filter-name>CAS Filter</filter-name> 
<url-pattern>/*</url-pattern> 
     </filter-mapping>
2.登陆认证,用用户名取子系统权限放入过滤器中进行,2






分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics