CAS单点登录HTTP协议版本配置指南


CAS单点登录配置(HTTP协议版本)



一、CAS版本:
服务端是cas-server-3.4.7。这里不需要源代码,解压zip包中的cas-server-webapp-3.4.7.war出来即可。
客户端是cas-client-3.2.0。这里主要用到cas-client-core-3.2.0.jar包,当然在后面如果需要用到,可自行添加。Apache的日志包这里常用的包是需要的。

二、环境搭建
Tomcat6.x + JDK6.x
关于搭建基本环境,网上已经一大把:
官方WIKI:https://wiki.jasig.org/display/CASUM/Home
IBM技术社区:http://www.ibm.com/developerworks/cn/opensource/os-cn-cas/
ITeye技术社区:http://www.iteye.com/topic/544899
还有很多就不列举了。
总体来说,使用Http协议的CAS比Https版本的步骤少了ssl的配置,然后在服务端需要修改部分配置文件即可。基本上的配置是大同小异的,下面就详细记录下来,日后参考。

三、部署配置
环境搭建完毕后,按下面的步骤,按部就班走完下面的步骤即可
1.CAS服务端配置。服务端主机名假定为sso.ican.org。
  (1).端口配置。我们不使用8443,直接使用80端口,这样看上去舒服点。
  进入部署CAS服务端的Tomcat的conf目录下,配置service.xml即可,主要代码如下:

[code="java"]...

...
  
...
  
...


注意到这里之际设置默认的主机是sso.ican.org了,另外我将下载下来的cas-server-webapp-3.4.7.war解压到Eclipse中的一个工程中去了(G:/projects/sso.ican.org/web目录下),同时把docBase指向该工程的目录下,这样可以随时在IDE中修改配置文件,比用普通的文本编辑器编辑配置文件方便很多。
基本Tomcat的配置修改到此完成了。

2.配置CAS服务应用程序的配置文件
主要有WEB-INF有cas.properties、deployerConfigContext.xml以及WEB-INF子目录spring-configuration下的ticketGrantingTicketCookieGenerator.xml、warnCookieGenerator.xml。修改这些文件后,就可以使用http协议以及80端口来访问CAS登录认证接口了。下面按顺序列出主要的修改和说明:
cas.properties文件,把localhost替换为正式的主机名sso.ican.org,以及去掉了8080端口和cas上下文目录:

[code="java"]cas.securityContext.serviceProperties.service=http://sso.ican.org/services/j_acegi_cas_security_check
# Names of roles allowed to access the CAS service manager
cas.securityContext.serviceProperties.adminRoles=ROLE_ADMIN
cas.securityContext.casProcessingFilterEntryPoint.loginUrl=http://sso.ican.org/login
cas.securityContext.ticketValidator.casServerUrlPrefix=http://sso.ican.org

cas.themeResolver.defaultThemeName=cas-theme-default
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


deployerConfigContext.xml文件,在前面添加了数据源与密码编码器Bean,这个在后面验证用户登录信息时候会用到;同时替换原来user=password的简单验证bean;以及设置验证不要求使用安全的https方式(p:requireSecure="false"):

[code="java"]...
oracle.jdbc.driver.OracleDriverjdbc:oracle:thin:@172.16.172.180:1521:developbase_gzdevelop

...


...


ticketGrantingTicketCookieGenerator.xml文件中将cookie安全要求为false,因为我们用的是http协议而不是https协议

[code="java"]


同样warnCookieGenerator.xml文件中也设置cookie安全要求为false,这样,我们就完成了使用HTTP协议版本的CAS服务端了。


[code="java"]



Web.xml不需要设置任何东西,使用现成的就可以了。

3.配置CAS客户端,示例中的客户端主机名师www.easycode.com,使用8080端口访问。
CAS客户端的配置主要就是一个web.xml文件:

[code="java"]  CAS Single Sign Out Filterorg.jasig.cas.client.session.SingleSignOutFilterCAS Authentication Filterorg.jasig.cas.client.authentication.AuthenticationFiltercasServerLoginUrlhttp://sso.ican.org/loginserverNamehttp://www.easycode.com:8080CAS Validation Filterorg.jasig.cas.client.validation.Cas10TicketValidationFiltercasServerUrlPrefixhttp://sso.ican.orgserverNamehttp://www.easycode.com:8080CAS HttpServletRequest Wrapper Filterorg.jasig.cas.client.util.HttpServletRequestWrapperFilterCAS Assertion Thread Local Filterorg.jasig.cas.client.util.AssertionThreadLocalFilterCAS Single Sign Out Filter/*CAS Authentication Filter/servlets/*CAS Validation Filter/servlets/*CAS HttpServletRequest Wrapper Filter/servlets/*CAS Assertion Thread Local Filter/servlets/*org.jasig.cas.client.session.SingleSignOutHttpSessionListenerLogoutServletsso.iss.test.LogoutServletcasServerLogoutUrlhttp://sso.ican.org/logout


详细配置可以参考这里:
https://wiki.jasig.org/display/CASUM/End-to-end+Windows+Example
我从Tomcat的示例程序中copy了servlet的例子到客户端程序中,也就是servlets目录的资源是需要登录才能访问的。


编写一些示例页面index.html,方便测试。为了验证当点登出,同时配置另外一个CAS客户端download.easycode.com。详细见附件。sso.ican.org的包太大,按照文档下载CAS的程序解压下来然后按上面的步骤修改即可

猜你喜欢

转载自chengshangqian-old.iteye.com/blog/1214051