最近系统,论坛选择了jforum,因为是集成到自己的系统,所以登录成了难点。不过jforum提供了自己SSO类来实现单点登录,但是问题来了,jforum有两种登录方式,一种是直接在论坛注册,登录,一种在自己的新闻系统注册登录然后转到论坛,可是jforum同时只能支持一种!!
也就说你想在论坛直接注册登录就不能使用SSO,如果想使用SSO,就没法直接在论坛直接登录了!! 但是我想既能在论坛登录,也能在自己的应用系统登录后跳转,所以就改了一部分源码,实现了上述的想法,和大家分享下:
对jforum源代码修改过的地方如下:
1.对搜索中文出现乱码的修改:
修改SystemGlobals.properties文件的default.container.encoding的属性值为utf-8
2.对连接数据库时用户名和密码读取的修改:
在net.jforum.C3P0PooledConnection.init方法里添加
this.ds.setPassword(SystemGlobals.getValue(ConfigKeys.DATABASE_CONNECTION_PASSWORD));
this.ds.setUser(SystemGlobals.getValue(ConfigKeys.DATABASE_CONNECTION_USERNAME));
3.添加SSO的支持
#增加类:net.forum.CookieUserSSO
#修改SystemGlobals.properties文件中关于SSO的属性,具体参考该文件
#修改/templates/default/header.htm: 修改因为使用SSO而造成的对注销,登入,注册等选项的屏蔽
去掉这三个选项外的<#if !sso>选择条件
#对SSO后注销功能的修改:
在net.jorum.view.forum.UserAction.logout()添加对cookie的删除:
Cookie cookieNameUser = ControllerUtils.getCookie(SystemGlobals .getValue(ConfigKeys.COOKIE_NAME_USER));
if(cookieNameUser != null) {
cookieNameUser.setMaxAge(0);
cookieNameUser.setPath("/");
this.response.addCookie(cookieNameUser);
}
#对SSO后注册被关闭的修改:
在net.jforum.view.forum.insert(boolean hasErrors)中,注释掉对是否SSO的判断
/*|| ConfigKeys.TYPE_SSO.equals(SystemGlobals.getValue(ConfigKeys.AUTHENTICATION_TYPE)*/
在net.jforum.view.forum.insertSave( )中,注释掉对是否SSO的判断
/*|| ConfigKeys.TYPE_SSO.equals(SystemGlobals.getValue(ConfigKeys.AUTHENTICATION_TYPE)*/
#对SSO后登入被关闭的修改:
在net.jforum.view.forum.login( )中,注释掉对是否SSO的判断
// if (ConfigKeys.TYPE_SSO.equals(SystemGlobals.getValue(ConfigKeys.AUTHENTICATION_TYPE))) {
// this.registrationDisabled();
// return;
// }
在net.jforum.ControllerUtils.refleshSession( )中,注释掉对是否SSO的判断
// If SSO, then check if the session is valid
// if (!sso.isSessionValid(userSession, request)) {
// SessionFacade.remove(userSession.getSessionId());
// refreshSession();
// }
// }
#对SSO后创建的密码进行MDS加密:
在net.jforum.sso.SSOUtils.register()中添加加密语句:
user.setPassword(MD5.crypt(password.trim()));
#对SSO后台管理员直接添加为论坛的超版:
在net.jforum.sso.SSOUtils.register()中添加用户和组关系语句:
int userId = this.dao.addNew(user);
//2为超版的ID号
this.dao.addToGroup(userId, new int[]{2});
分享到:
相关推荐
【JForum二次开发详解:BBS开源安装】 JForum是一款基于Java语言的开源论坛系统,以其高度可定制性、稳定性及强大的社区功能受到广大开发者喜爱。对于那些希望根据自身需求进行定制化的用户,JForum提供了丰富的二...
《Jforum二次开发详解——构建个性化论坛系统》 Jforum,作为一个开源的Java论坛系统,以其优秀的性能和灵活的可扩展性受到了众多开发者和社区管理员的青睐。在Jforum 2.1.8的基础上进行二次开发,可以进一步满足...
实现了在一个网站实现多一个论坛的功能,在原网站登陆之后再Cookie保存一个值就可以实现单点登陆...我只是再原有网站可以实现单点登录到论坛.如果拿到资源不会用的也可以评论的时候带上QQ我会尽快联系。说出自己的问题
"jforum2源码可二次开发"意味着对于有Java开发经验的人来说,可以修改源代码以满足特定需求,比如添加新功能、优化性能或者修复已知问题。二次开发是开源软件的一大优势,它鼓励社区成员贡献自己的代码,共同提升...
这个项目包含的是从版本控制系统Subversion(SVN)中导出的完整源代码,未经任何修改,因此用户可以深入研究其内部机制,进行二次开发或者学习Java Web应用的构建。 **JForum3核心特性** 1. **多语言支持**:...
Jforum的核心优势在于其代码结构清晰,遵循BSD授权,这意味着用户在使用和进行二次开发时不必担心版权问题,使其成为论坛系统二次开发的理想选择。 Jforum采用自有的MVC(Model-View-Controller)框架,虽然初学者...
在提供的压缩包中,`Jforum-ppt`可能包含关于Jforum的详细讲解或演示材料,如开发教程、架构解析、功能介绍等。通过阅读这些PPT,你可以更直观地了解Jforum的工作原理和应用场景,对学习和使用Jforum大有裨益。 ...
它以其强大的功能、优雅的界面以及清晰的代码结构,成为二次开发的理想选择。JForum基于BSD授权,这意味着在使用过程中不必担心版权问题。该论坛采用自有的MVC框架,初次接触可能需要适应,但一旦熟悉,就能方便地...
在Java Web开发领域,jForum是一款流行的开源论坛系统,它基于Java语言编写,提供了丰富的社区交流功能。jForum3.0是其一个重要的版本,针对该版本的运行,我们需要一系列的jar包来支持其正常工作。这些jar包是Java...
JForum3是一款基于Java开发的开源论坛系统,其核心设计目标是提供一个高效、稳定且功能丰富的在线讨论平台。这款论坛软件使用了Java语言编写,遵循开放源代码的原则,允许用户自由地使用、修改和分发。JForum3是...
在这个"jforum-2.1.8-编译代码.zip"压缩包中,包含了JForum 2.1.8版本的源代码,对于开发者来说,这是一个深入理解JForum工作原理、进行二次开发或定制化改造的宝贵资源。 首先,让我们了解JForum的基本架构。...
本文将深入探讨JForum3的源代码,帮助开发者了解其内部工作原理,提升对Web应用程序开发的理解。 1. **框架与技术栈** JForum3基于Java编程语言,利用Spring框架进行依赖注入和控制反转,提高了代码的可测试性和...
这个压缩包文件包含了关于Jforum的多个重要知识点,包括配置、初始化流程、处理请求的MVC架构、数据库访问实现、文件监控、缓存机制以及权限控制等内容。下面将对这些主题进行详细阐述。 首先,Jforum的配置是论坛...
JForum是一款基于Java开发的开源论坛系统,它以其高效、稳定和易于扩展的特点在开源社区中受到广泛欢迎。对于想要深入了解FreeMarker模板引擎的开发者来说,JForum的源码是一个绝佳的学习资源。本篇文章将深入探讨...
通过深入研究Jforum的源代码,开发者可以了解到Java Web应用的开发模式,包括MVC架构、ORM框架的使用(如Hibernate)、国际化处理、权限控制等方面的知识。同时,这也是学习和理解Web论坛系统设计与实现的一个宝贵...
- 对于简单需求可以直接利用现有的API接口进行二次开发; - 复杂功能建议参考插件开发文档,通过创建插件的方式来实现。 #### 六、总结 jForum作为一款成熟稳定的开源论坛软件,在国内外拥有大量忠实用户群体。...
Jforum3是一款基于JAVA语言开发的开源论坛软件,其源码开放,允许用户进行二次开发和定制,以满足不同需求。这款论坛系统以其稳定性和高效性在Java社区中广受欢迎。本文将深入探讨Jforum3的核心特性、开发环境以及...
《JForum 2.1.8:开源Java论坛系统详解》 JForum是基于Java的开源论坛系统,其2.1.8版本以其强大的功能、灵活性和社区支持而...通过深入了解和实践,我们可以掌握更多关于Java Web开发的知识,提高自己的技术水平。