jforum配置配置单点登录

JForum配置单点登录(SSO)
2010-07-22 10:15
`````

JForum可以通过简单的配置,方便地与现有的Web应用集成,形成单点登录。 目前JForum支持的sso方案:

  • 使用cookies
  • request.getRemoteUser()的验证

以上可以通过配置SystemGlobals.properties文件实现.

当然,你也可以根据你的实际情况自己写一个SSO类来达到单点登录的目的。

使用了SSO之后,JForum的注销,登录,修改密码等功能将会自动隐藏.

单点登录是如何工作的

JForum提供的SSO接口提供了authenticateUser()和isSessionValid()两个方法 。

用户访问时,JForum调用authenticateUser()方法,该方法返回用户名或null

如果返回用户名,JForum会在用户表里检测该用户是否存在,如果不存在,会自动增加该用户,并进行登录. 如果返回null,用户将以匿名身份登录到论坛.匿名用户要是访问了无权查看的论坛版面,JForum会重定向到登录页面.

SystemGlobals.properties中SSO相关项

  • SystemGlobals.properties条目配置的SSO authentication.type 认证类型,default或者SSO,默认为default
  • sso.implementation 实现SSO的类名,可以是CookieUserSSO或RemoteUserSSO或其他,默认为net.jforum.sso.CookieUserSSO
  • sso.password.attribute 单点登录自动注册的用户密码的session 属性名,用于更新JForum用户密码,默认值为password
  • sso.email.attribute 单点登录自动注册的用户email的session 属性名,用户更新JForum用户email,默认值为email
  • sso.redirect.parameter 重定向的参数,其中包含的URL编码过的jforum的路径,默认jforum_redirect
  • sso.redirect.message 重定向,默认值please login to use the forum
  • sso.default.email session属性中未找到email时的默认email地址,默认值sso@user.com
  • sso.default.password 同上 sso.redirect 重定向到你的登录页面的地址,默认值http:mysite.com/login.jsp
  • cookie.name.data 包含了jfroum用户名的cookie名,默认值JforumSSO
  • sso.cookie.path cookie的路径,如果不是在根路径需要指定,默认为 /

cookie方式的实现

1.使用已有的cookie

前提:你的应用中已经为用户名设置了cookie 保证SytemGlobals.properties 关于SSO的属性为最初状态,修改如下属性:

  1. authentication. type=sso
  2. sso. implementation=net. jforum. sso. CookieUserSSO
  3. sso. redirect=http: //mysite.blah/login.jsp # change
  4. sso. cookie. name=myAutoLogin

# 改为用户名对应的cookie名用户以匿名状态访问论坛中的资源时,会重定向到登录页面,request.getParameter(”error”)可以得到sso.redirect.error中设定的提示信息.

在你的应用的登录action中检查redirect参数的值,以便将登陆后的用户定向到登录前的页面.

  1. String redirect = request. getParameter ( "jforum_redirect" ) ;
  2. if (redirect != null ) login_message = request. getParameter ( "error" ) ;
  3. if (redirect != null &amp ;&amp ; redirect. trim (). length () &gt ; 0 )
  4. response. sendRedirect (redirect ) ;

2.使用默认的SSO cookie
如果你的应用中没有设定用户名的cookie时用这种方式 保证SytemGlobals.properties 关于SSO的属性为最初状态,修改如下属性:

  1. authentication. type=sso
  2. sso. implementation=net. jforum. sso. CookieUserSSO
  3. sso. redirect=http:/mysite. blah/login. jsp

# 改为你的应用的登录地址在你的应用的登录action中检查redirect参数的值,以便将登陆后的用户定向到登录前的页面.

  1. String redirect = request. getParameter ( "jforum_redirect" ) ;
  2. if (redirect != null ) login_message = request. getParameter ( "error" ) ;

在你的应用的登录操作中增加设置cookie的代码

  1. Cookie cookie = new Cookie ( "JforumSSO", user. getUsername ()) ;
  2. cookie. setMaxAge ( -1 ) // -1为永不过期,或者指定过期时间
  3. response. addCookie ( cookie ) ;在退出登录操作中删除cookie.
  1. Cookie cookie = new Cookie ( "JforumSSO", "" ) ;
  2. cookie. setMaxAge ( 0 ) // 删除cookie.
  3. response. addCookie ( cookie ) ;

request.getRemoteUser()方式的实现

第一步:指定authentication.type为sso

  1. authentication. type = sso

第二步:指定处理SSO的类,默认的是RemoteUserSSO,这个类返回request.getRemoteUser()的值,如果你自己写了一个类处理SSO,这里就写你的类路径(该类必须实现net.jforum.sso.SSO接口)

  1. sso. implementation = net. jforum. sso. RemoteUserSSO
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值