`
huibin
  • 浏览: 754003 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

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 && redirect.trim().length() > 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
分享到:
评论

相关推荐

    jforum说明文档 源码解析 单点登录 jforum缓存

    Jforum是一款基于Java技术的开源论坛软件,它提供了丰富的社区功能,包括主题讨论、用户管理、权限控制、单点登录等。这款论坛系统以其稳定性和可扩展性而受到开发者的青睐。在深入理解Jforum的过程中,源码解析是至...

    JForum_SSO_-_JForum单点登陆原理与配置

    通过以上步骤,JForum就可以识别已登录主应用的用户,从而实现单点登录。这种方式简化了用户在多系统间的切换,提高了交互的便捷性。需要注意的是,为了保证安全性,应确保在传递和存储用户信息时采取适当的加密措施...

    jforum2论坛源码

    开发者需要了解如何创建测试计划,定义线程组(模拟用户),设置采样器(模拟请求),配置监听器(收集性能数据),以及如何分析结果以识别性能瓶颈。 5. **二次开发流程**:包括阅读源码,理解业务逻辑,使用版本...

    jforum二次开发 详解 BBS开源安装

    2. 开发插件:利用JForum的插件系统,你可以开发如积分规则、投票模块等个性化功能,只需编写特定的Java类并配置XML文件。 3. 用户权限扩展:通过修改或扩展`UserGroup`、`Permission`等类,实现更复杂的用户权限...

    jforum的源代码和物理结构

    **JForum 源代码与物理结构详解** JForum 是一个功能丰富的开源论坛系统,以其高效、可扩展和用户友好的界面而闻名。这个压缩包包含 JForum 的源代码和类包,对于开发者来说,这是一个宝贵的资源,可以深入理解其...

    基于java的论坛系统 JForum.zip

    7. **API接口**:JForum提供了丰富的API接口,允许与其他应用系统进行集成,例如SAML单点登录(SSO)支持。 8. **搜索功能**:内置强大的全文搜索引擎,支持对论坛内容的快速查找和定位。 9. **插件系统**:JForum...

    jforum与web项目的整合(通过Cookie实现SSO)

    标题 "jforum与web项目的整合(通过Cookie实现SSO)" 涉及的是将开源的JForum论坛系统与其他Web应用程序进行集成,并利用Cookie技术实现单点登录(Single Sign-On,简称SSO)。SSO允许用户在一个应用系统中登录后,...

    超级JAVA工具超级JAVA工具

    - 导入数据库脚本:运行`NetoneDB.sql`,该脚本包含了多个数据库表,如account、account01、dyform、excel、inis、intouch、jforum_teste、mailjames、mypms、netone等。 - 检查数据库运行状态,确保导入过程无误...

    java开源包1

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包11

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包2

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包3

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包6

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包5

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包10

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包4

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包8

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包7

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包9

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

Global site tag (gtag.js) - Google Analytics