- 浏览: 47426 次
- 性别:
- 来自: 无锡
最新评论
-
RainWu:
...
chx 学习jForum笔记十四 数据表四 jforum_groups及jforum_user_groups -
c_huabo:
这都被你发现了!!!
chx 学习jForum笔记十七 实现中文搜索 -
beermonkey:
感谢啊。。。。
chx 学习jForum笔记十七 实现中文搜索
分为三部分:
1.导入原用户数据库.
2.修改SSO模块,实现登录认证.
3.实现新增用户.
从原表导入,使用以下SQL语句.可直接导入,也可加入\web-inf\config\database\sqlserver2000\sqlserver_2000_data_dump.sql
SET IDENTITY_INSERT jforum_users ON; insert into jforum_users(user_id,username) select id+1000,emp_name from rswkbase; update jforum_users set user_password = 'nopass',user_regdate = '2010-12-1' where user_password = '' SET IDENTITY_INSERT jforum_users OFF;
初始库的导入是为了将原有的论坛内容转移至新论坛。
以下实现SSO功能。
修改SystemGlobals.properties
authentication.type = sso sso.implementation = net.jforum.sso.RemoteUserSSO
由于原TOMCAT设置的request.getRemoteUser()中得到的是四位用户代码而不是用户名名,所以此处需要进行修改。
SSO模块修改.在net.jforum/sso/RemoteUserSSO.java中
将
else if (remoteUser != null && !remoteUser.equals(userSession.getUsername())) {
改为
else if (remoteUser != null && !remoteUser.equals(String.valueOf(userSession.getUserId()))) {
在ControllerUtils.java中的checkSSO中新增
将
if (!utils.userExists(username)) { final SessionContext session = JForumExecutionContext.getRequest().getSessionContext(); String email = (String) session.getAttribute(SystemGlobals.getValue(ConfigKeys.SSO_EMAIL_ATTRIBUTE)); String password = (String) session.getAttribute(SystemGlobals.getValue(ConfigKeys.SSO_PASSWORD_ATTRIBUTE)); if (email == null) { email = SystemGlobals.getValue(ConfigKeys.SSO_DEFAULT_EMAIL); } if (password == null) { password = SystemGlobals.getValue(ConfigKeys.SSO_DEFAULT_PASSWORD); } utils.register(password, email); }
改为
boolean _flag = false; Integer userId=-1; try { userId = Integer.parseInt(username); _flag = utils.userExists(userId); } catch (Exception e){ _flag = utils.userExists(username); } if (!_flag) { utils.register(userId); }
在SSOUtils.java中新增
public boolean userExists(final Integer userId) //查询用户是否已注册 { this.dao = DataAccessDriver.getInstance().newUserDAO(); this.user = this.dao.selectByUserId(userId); this.exists = this.user != null; if (this.exists){ this.username = this.user.getUsername(); } return this.exists; }
在GenericUserDAO.java中新增
public User selectByUserId(int userId) { PreparedStatement p = null; ResultSet rs = null; try { p = JForumExecutionContext.getConnection().prepareStatement(SystemGlobals.getSql("UserModel.selectByUserId")); p.setInt(1, userId); rs = p.executeQuery(); User user = null; if (rs.next()) { user = new User(); this.fillUserFromResultSet(user, rs); } return user; } catch (SQLException e) { throw new DatabaseException(e); } finally { DbUtils.close(rs, p); } }
在UserDAO.java中新增
User selectByUserId(int userId) ;
以下实现用户新增功能
在SSOUtils.java中新增
public void register(final Integer userId) //新用户注册 { // Is a new user for us. Register him this.user = new User(); this.user.setId(userId); this.user.setUsername(getname(userId)); this.user.setPassword(userId.toString()); this.user.setEmail(getemail(userId)); this.user.setActive(1); this.dao.addNewWithId(this.user); // Update the information ForumRepository.setLastRegisteredUser(this.user); //设置最终注册用户 ForumRepository.incrementTotalUsers(); //注册总人数加一 }
private String getname(final Integer userId){//从原数据表中获取用户名 ResultSet resultSet = null; PreparedStatement pstmt = null; this.username = "null"; try { pstmt = JForumExecutionContext.getConnection().prepareStatement( SystemGlobals.getSql("UserState.getUsername")); pstmt.setInt(1, userId); resultSet = pstmt.executeQuery(); if (resultSet.next()) { this.username = (resultSet.getString("emp_name")); } } catch (SQLException e) { throw new ForumException(e); } finally { DbUtils.close(resultSet, pstmt); } return this.username; }
private String getemail(final Integer userId){//从原数据表中获取电子邮箱 ResultSet resultSet = null; PreparedStatement pstmt = null; this.email = "null"; try { pstmt = JForumExecutionContext.getConnection().prepareStatement( SystemGlobals.getSql("UserState.getEmail")); pstmt.setInt(1, userId); resultSet = pstmt.executeQuery(); if (resultSet.next()) { this.email = (resultSet.getString("mail")); } } catch (SQLException e) { throw new ForumException(e); } finally { DbUtils.close(resultSet, pstmt); } return this.email; }
在generic_queries.sql 中增加
UserModel.selectByUserId = SELECT * FROM jforum_users WHERE user_id = ? UserState.getUsername = SELECT emp_name FROM rswkbase WHERE id = ? UserState.getEmail = SELECT mail FROM chx_base_userstate WHERE user_id = ?
这两句是从原有的数据表中取相应的内容。
ant dist
发表评论
-
chx 学习jForum笔记十九 jForum定时作业
2011-02-25 15:43 1013参照jforum原有的两个定时作业SummarySchedul ... -
chx 学习jForum笔记十八 jForum与ms sqlserver
2011-02-23 16:39 7832jForum的原生数据库是mysql,但对sqlserver也 ... -
chx 学习jForum笔记十七 实现中文搜索
2011-02-23 16:04 1921最初测试的时候中文搜索一直都不成功。所以以为要对源程序进行大幅 ... -
chx 学习jForum笔记十六 实现附件移植,添加附件时按钮无效的问题解决
2011-02-23 15:59 3158==背景== 原论坛附件存放于d:\res\cibfo ... -
chx 学习jForum笔记十五 实现用户及用户组同步
2011-02-23 15:25 1743==背景== 原先有一个随时维护的用户表rswk、权限表ci ... -
chx 学习jForum笔记十四 数据表四 jforum_groups及jforum_user_groups
2011-02-14 14:07 1483jforum_groups group_id ... -
chx 学习jForum笔记十三 数据表三 jforum_roles及jforum_role_values
2011-02-12 16:19 1310jforum_roles 权限表。是一张组与基本权限的对应表。 ... -
chx 学习jForum笔记十二 数据表二 jforum_categories及jforum_forums
2011-02-12 15:05 1428jforum_categories是子论坛的分类以下称为栏目。 ... -
chx 学习jForum笔记十 数据表一 jforum_users
2011-02-09 10:35 1277user_id bigint ... -
chx 学习jForum笔记九-ForumAction四,发现用户注册模块
2010-12-09 14:27 19952010.12.9接上午。继续看net.jforum.view ... -
chx 学习jForum笔记八-ForumAction三,发现用户认证模块。
2010-12-09 11:15 17182010.12.9。接昨天 在net.jforum.view ... -
chx 学习jForum笔记七-ForumAction二
2010-12-08 17:24 11672010.12.8 接昨天。 下面这句是存在于net.jfo ... -
chx 学习jForum笔记六-MostUsersEverOnline的结束及ForumAction-list的开始
2010-12-07 15:54 22942010.12.7 继续查找关键字MostUsersEverO ... -
chx 学习jForum笔记五-参数表的操作
2010-12-07 15:05 9972010.12.7 继续查找关键字MostUsersEverO ... -
chx 学习jForum笔记四
2010-12-06 15:21 10102010.12.6 接上午。在net.jforum.repos ... -
chx 学习jForum笔记三
2010-12-06 14:05 10402010.12.6 接上周日,继续。PermissionCon ... -
chx 学习jForum笔记二
2010-12-05 10:26 1245我的源程序是安道森练 ... -
chx 学习jForum笔记一
2010-12-05 09:37 1679目标:jForum二次开发,读懂源程序。 修改权限管理模块, ...
相关推荐
《jForum与MS SQLServer整合学习笔记》 jForum是一款基于Java的开源论坛系统,它以其高度可定制性、灵活性和强大的功能深受开发者喜爱。在本文中,我们将深入探讨如何将jForum与Microsoft SQL Server(简称MS SQL...
在分析和学习这个源码时,我们可以关注以下几个关键知识点: 1. **HTML 结构**:查看 HTML 文件,了解页面的布局结构,包括头部、导航、主要内容区域、侧边栏、页脚等部分是如何组织的,以及如何通过 HTML5 标签...
标题与描述中的关键词“CHX TNF JNK”揭示了在细胞凋亡机制中的相互作用,尤其是关于人类肝癌细胞对肿瘤坏死因子α(TNFα)诱导的凋亡反应。这一研究聚焦于理解CHX(环己亚胺)、TNFα以及JNK(c-Jun N端激酶)三者...
根据给定的文件信息,我们可以提炼出以下关于CHX2095的详细IT知识: ### CHX2095概述 **CHX2095**是一款由United Monolithic Semiconductors S.A.S.制造的频率倍增器集成电路(IC),其工作频率范围在7.5至30GHz...
总之,通过对【CMS程序]chx99个人主页源码_chx99(ASP.NET源码)的深入研究,我们可以学习到ASP.NET Web Forms的开发技术,数据绑定,用户认证,配置管理,以及前端交互等多个方面,这将对提升我们的ASP.NET开发技能...
CHX-I防火墙官方教程-附带翻译终稿.pdf
此外,对于初学者来说,阅读和理解CHX的源代码也是一个很好的学习C语言和理解十六进制编辑器工作原理的机会。 总的来说,CHX 是一款实用的终端工具,它的轻量级设计和高度可定制性使其成为开发人员和系统管理员的...
HA-SoftEther-CHX虚拟专网HA-SoftEther-CHX虚拟专网HA-SoftEther-CHX虚拟专网HA-SoftEther-CHX虚拟专网
这篇文章将详细讲解与"CHX612.zip"压缩包相关的知识点,主要涉及HX612触摸IC、STC15W408AS微控制器以及相关编程与接口技术。 首先,我们关注的是HX612,这是一款触摸传感器集成电路。不同于常见的I2C接口,HX612...
【标题】"chx99个人主页源码"是一个针对个人使用的网站源代码,它提供了构建个人在线展示空间的基础框架。个人主页源码通常包含了HTML、CSS、JavaScript等前端技术,有时也会涉及到PHP、Node.js等后端语言,用于实现...
通过分析源码,开发者可以学习到如何实现用户登录、内容发布、权限控制等功能,以及如何优化性能和提高代码的可维护性。 总的来说,"ASP.NET源码——[CMS程序]chx99个人主页源码.zip"是一个宝贵的学习资源,不仅...
"Chx.txt"可能包含了关于最优化和梯度优化的具体算法描述、实例或者代码实现,而"www.pudn.com.txt"可能是一个链接或者引用来源,指向更多的相关资源。 总的来说,这个压缩包的学习资源可能涵盖了最优化理论基础、...
本软件是一个模似网卡和集线器的工具,可以模似集线器功能,实现VPN的功能。使得系统把此软件识别成一块网卡,有了这个东西,只要可以访问外网,都可以连接到虚拟HUB上与其他电脑组成局域网,在此虚拟的局域...
5. **会员和权限管理**:为了支持用户登录、注册和其他交互功能,源码可能包含了用户认证和授权的机制,如ASP.NET的身份验证和角色管理。 6. **内容管理模块**:CMS的核心功能之一是内容管理,可能包括文章发布、...
[CMS程序]chx99个人主页源码_chx99.zip源码ASP.NET网站源码打包下载[CMS程序]chx99个人主页源码_chx99.zip源码ASP.NET网站源码打包下载[CMS程序]chx99个人主页源码_chx99.zip源码ASP.NET网站源码打包下载[CMS程序]...
CHX-3大手臂大法兰.SLDDRW
免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,...
CHX的语法设计可能包括以下几个关键点: 1. **嵌入式HTML**:CHX允许开发者在HTML文档中嵌入C++代码,这些代码块可以用来生成动态内容、控制流程或者访问服务器端的数据。 2. **指令和标签**:类似于JSP的标签,CHX...
6. **旁路(Bypassing)**:为了避免回写延迟导致单周期整数操作变慢,处理器使用旁路技术,允许运算结果在完成计算后直接传递给后续指令,跳过写回和重新读取的步骤。 7. **控制相关(Control Dependences)**:...