cas入门

1、简介
官方网站:http://www.ja-sig.org/products/cas/
2、安装
服务端安装:linux s3,apache-tomcat-6.0.10,jdk1.5.0_08
下载:
CAS Server 3.0.7 Final (stable)

部署cas-server-3.0.7/target/cas.war到tomcat
启用tomcat的ssl:
生成keystore:
[oracle@localhost cas]$ rm ~/.keystore
[oracle@localhost cas]$ $JAVA_HOME/bin/keytool/keytool -genkey -alias tomcat -keyalg RSA
输入keystore密码: helloworld
您的名字与姓氏是什么?
[Unknown]: helloword.test.com --注意:在后面配置客户端时认证url的host部分一定要和此处所填写的一样。另外,此处填写根据客户机访问服务器的方式,有三种选择。1、 服务器,客户机都在互联网上,客户机只能通过域名访问服务器。那么就只能填写服务器的域名。2、服务器,客户机在同一局域网内,客户机可以通过主机名访问服务器时。那么就可以填写服务的主机名。3、如果客户端,服务端在同一台机器上就可以填写localhost。
您的组织单位名称是什么?
[Unknown]: helloword
您的组织名称是什么?
[Unknown]: helloword
您所在的城市或区域名称是什么?
[Unknown]: bj
您所在的州或省份名称是什么?
[Unknown]: bj
该单位的两字母国家代码是什么
[Unknown]: CN
CN=helloword.test.com, OU=helloword, O=helloword, L=bj, ST=bj, C=CN 正确吗?
[否]: y
输入的主密码
(如果和 keystore 密码相同,按回车):
[oracle@localhost cas]$
修改tomcat配置,开放https服务:
在apache-tomcat-6.0.10/conf/server.xml中找到
<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" />

去掉前后的注释符修改成

<Connector port="8443" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
clientAuth="false"
keystorePass="helloworld "
sslProtocol="TLS" />

启动tomcat,浏览https://helloword.test.com:8443/cas/。出现登陆界面,用户名和密码输入相同的任意字符串,登陆成功!即宣告服务器配置完成。
导出keystore,供客户端使用:
[oracle@localhost cas]$ keytool -export -alias tomcat -file server.crt
输入keystore密码: helloworld
保存在文件中的认证

Yale Java Client
2.1.1
Download

把服务器导出的认证文件server.crt拷贝到客户端机器%JAVA_HOME%/jre/lib/security/server.crt
在客户端机器倒入服务器证书:
D:/cas>cd %JAVA_HOME%/jre/lib/security/
D:/Program Files/Java/jdk1.5.0_06/jre/lib/security>del cacerts
D:/Program Files/Java/jdk1.5.0_06/jre/lib/security>keytool -import -trustcacerts -alias tomcat -file d:/cas/server.crt -keystore cacerts
输入keystore密码: helloworld
Owner: CN=helloword.test.com, OU=helloword, O=helloword, L=bj, ST=bj, C=CN
发照者: CN=helloword.test.com, OU=helloword, O=helloword, L=bj, ST=bj, C=CN
序号: 465bb49d
有效期间: Tue May 29 13:05:33 CST 2007 至: Mon Aug 27 13:05:33 CST 2007
认证指纹:
MD5: 64:EB:B1:12:05:0E:8C:73:E1:B8:71:30:05:DD:54:65
SHA1: B6:3A:7C:25:2D:14:C7:E4:2E:04:FB:24:8F:EF:BD:2F:E0:52:BA:D3
信任这个认证? [否]: y
认证已添加至keystore中
创建客户端应用:
把下载的cas-client-java-2.1.1/dist/casclient.jar加入web应用的lib,修改web.xml

<pre>
<web-app>
...
<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://helloword.test.com:8443/cas/login</param-value>
</init-param>
<init-param>
  <param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>
  <param-value>https://helloword.test.com:8443/cas/serviceValidate</param-value>
</init-param>
<init-param>
  <param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>
  <param-value>客户端应用的域名和端口 (e.g., client.test.com:8080)</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CAS Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
...
</web-app>
</pre>

注意:配置中的红色的host一定要和生成keystore时填写的"您的名字与姓氏是什么?"一样。
按照上述步骤配置另外一台客户机http://another-client.test.com:8080
启动tomcat,访问http://client.test.com:8080将被重定向到https://helloword.test.com:8443/cas/login,登陆成功后将返回到http://client.test.com:8080。然后再访问http://another-client.test.com:8080将不需要登陆。
rails版客户端安装:
CASLogin plugin为rails应用提供cas认证功能。
D:/cas>rails railscas
D:/cas>cd railscas
D:/cas/railscas>ruby script/plugin install http://developer.csuchico.edu/svn/cas_login/trunk
配置插件:修改vendor/plugins/trunk/lib/cas_login.rb

# The URL of the CAS server to authenticate against.
CAS_SERVER_URL = 'cas.csuchico.edu'
# The port the CAS server is running on.
PORT = 443
改成
# The URL of the CAS server to authenticate against.
CAS_SERVER_URL = '
helloword.test.com'
# The port the CAS server is running on.
PORT = 8443

redirect_to "https://#{CAS_SERVER_URL}/cas/login?service=#{@service}"
改成
redirect_to "https://#{CAS_SERVER_URL}:8443/cas/login?service=#{@service}"
配置应用程序修改app/controllers/application_controller.rb如下:

 
class ApplicationController < ActionController::Base
  include CasLogin
  protected
  def is_logged_in
    return true unless session[:user].nil?
    if is_authenticated?
      if is_authorized?
        return true
      end
    end
    return false
  end
  
  private
  def is_authorized?
    session[:user] = User.find_by_uid(get_authenticated_user_id)
    unless session[:user].nil?
      return true
    end
    flash[:notice] = "User not found"
    return false
  end
  
end
 

修改需要认证的controller如下

 
class ServersController < ApplicationController
  before_filter :is_logged_in
end
 

3、test

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值