JForum与CAS的单点登录(SSO)

试了一下JForum与CAS的单点登录,非常简单。

 

1.环境:

tomcat 5.0.28

CAS Server 3.3

CAS Client 3.1.1

jforum 2.1.8 

 

2.集成思路:

采用了JForum中提供的对于remoteUser的SSO方案。利用CAS中的“CAS HttpServletRequest Wrapper Filter”实现对Jforum中的request进行wrapper,就可以对利用request.getRemoteUser();从cas中取得登录的用户了。

 

3.配置

有关CAS的具体的配置方法就不赘述了,要保证是通过https方式。

a)将cas-client-core-3.1.3.jar文件拷贝到jforum 的lib目录

b)在web.xml中,修改

代码
 1     <context-param>
 2         <param-name>serverName</param-name>
 3         <param-value>https://WATER2:8443</param-value>
 4     </context-param>
 5 
 6     <filter>
 7       <filter-name>CAS Authentication Filter</filter-name>
 8       <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
 9       <init-param>
10         <param-name>casServerLoginUrl</param-name>
11         <param-value>https://WATER2:8443/cas-server-webapp-3.3.3/login</param-value>
12       </init-param>
13     </filter>
14 
15     <filter>
16       <filter-name>CAS Validation Filter</filter-name>
17       <filter-class>org.jasig.cas.client.validation.Cas10TicketValidationFilter</filter-class>
18       <init-param>
19         <param-name>casServerUrlPrefix</param-name>
20         <param-value>https://WATER2:8443/cas-server-webapp-3.3.3</param-value>
21       </init-param>
22     </filter>
23 
24     <filter>
25       <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>
26       <filter-class>org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class>
27     </filter>
28 
29     <filter-mapping>
30         <filter-name>CAS Authentication Filter</filter-name>
31         <url-pattern>/*</url-pattern>
32     </filter-mapping>
33     
34     <filter-mapping>
35         <filter-name>CAS Validation Filter</filter-name>
36         <url-pattern>/*</url-pattern>
37     </filter-mapping>
38     
39     <filter-mapping>
40         <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>
41         <url-pattern>/*</url-pattern>
42     </filter-mapping>
43     
44 

 

c)修改SystemGlobals.properties

如:

authentication.type = sso

sso.implementation = net.jforum.sso.RemoteUserSSO 

 

posted on 2010-03-23 09:37  香帅  阅读(891)  评论(0)    收藏  举报

导航