单点登录cas的使用

1)利用jdk 自带的工具生成证书
     命令:keytool -genkey -alias wsria -keyalg RSA -keystore d:/keys/wsriakey
 
    严重提醒 :提示输入域名的时候不能 输入IP地址

       导出证书 :keytool -export -file d:/keys/wsria.crt -alias wsria -keystore d:/keys/wsriakey
2)将生成的证书导入到jvm
    命令:keytool -import -keystore D:\tools\jdk\1.6\jdk1.6.0_20\jre\lib\security\cacerts -file D:/keys/wsria.crt -alias wsria
    输入密码 该密码是jvm 证书库的密码 默认为changeit
3)开启tomcat https 服务
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" 
               maxThreads="150" scheme="https" secure="true" 
               clientAuth="false" sslProtocol="TLS"   
      keystoreFile="D:/keys/wsriakey"  //证书的位置
               keystorePass="wsria.com"  //证书的密码
/> 
4)服务器配置
1.CAS服务端下载:
http://www.jasig.org/cas/download
2.下载完成后将cas-server-3.4.3.1.zip解压,解压cas-server-3.4.3/modules/cas-server-webapp-3.4.3.1.war,改名为cas,然后复制cas目录到你的tomcat/webapp目录下
3.现在可以访问CAS应用了,当然要使用HTTPS加密协议访问,
4.编写自己的认证类 继承AbstractUsernamePasswordAuthenticationHandler
5.修改 WebRoot/WEB-INF/deployerConfigContext.xml 这里需要注意两点
   a)把下面 原始的认证方法 注释掉
   <!--
  <bean
     class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler"
  />
 -->
 b)添加自己的认证类
 <bean
     class="jasig.cas.authentication.my.Authentication">
     <property name="driverClassName">
      <value>oracle.jdbc.driver.OracleDriver</value>
     </property>
     <!--
     <property name="url">
      <value>jdbc:oracle:thin:@172.16.115.244:1521:ORCL</value>
     </property>
      -->
      <property name="url">
      <value>jdbc:oracle:thin:@168.168.1.10:1521:ORCL</value>
     </property>
     <property name="dname">
      <value>xx</value>
     </property>
     <property name="dpassword">
      <value>xx</value>
     </property>
     <property name="sql">
         <value>SELECT * FROM SFM_USERS WHERE ACCOUNT=? AND PASSWORD = ?</value>
     </property>
    </bean>
   </list>
  </property>
 </bean>
 这里利用spring 属性注入值
5)配置自己的登录,退出界面
修改 WebRoot/WEB-INF/cas.properties 的登录页面
cas.securityContext.serviceProperties.service=https://localhost:8443/cas/services/j_acegi_cas_security_check
cas.securityContext.casProcessingFilterEntryPoint.loginUrl=https://localhost:8443/cas/login
cas.securityContext.ticketValidator.casServerUrlPrefix=https://localhost:8443/cas

cas.themeResolver.defaultThemeName=default
#配置认证成功后的页面跟失败后的页面 默认是default_views 位于/WebRoot/WEB-INF/view/jsp 下  其它不需要的情况下不需要修改
cas.viewResolver.basename=newUI_views
#cas.viewResolver.basename=default_views
#认证服务的根名称
host.name=cas

#database.hibernate.dialect=org.hibernate.dialect.OracleDialect
#database.hibernate.dialect=org.hibernate.dialect.MySQLDialect
database.hibernate.dialect=org.hibernate.dialect.HSQLDialect

命名跟default_views 文件夹下的jsp 名称一样  登录界面:casLoginView.jsp
登录成功:casGenericSuccess.jsp
登出界面:casLogoutView.jsp


6)配置客户端
添加cas-client的jar包 ,下载cas-client,地址:
http://www.ja-sig.org/downloads/cas-clients/
添加过滤器
 <filter>
  <filter-name>cas</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.serverName</param-name>
   <param-value>localhost:8081</param-value>
  </init-param>
 </filter>
<filter-mapping> 
    <filter-name>cas</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping>
edu.yale.its.tp.cas.client.filter.loginUrl  指定 CAS 提供登录页面的 URL
edu.yale.its.tp.cas.client.filter.validateUrl  指定 CAS 提供 service ticket 或 proxy ticket 验证服务的 URL 
edu.yale.its.tp.cas.client.filter.serverName 指定客户端的域名和端口,是指客户端应用所在机器而不是 CAS Server 所在机器,该参数或 serviceUrl 至少有一个必须指定
edu.yale.its.tp.cas.client.filter.serviceUrl  该参数指定过后将覆盖 serverName 参数,成为登录成功过后重定向的目的地址 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值