方便大家发帖和交流,这个帐号不用登录,但是目前有跟注册用户一样的权限。可以写日记,评论。这样,可以增加更大的自由度,鼓励朋友多交流。
标签:学习日记
改变CVS库的目录结构
根据网友ppig的建议,改变了CVS库old目录下面现在的工程目录结构,改变后的结构更加合理和方便大家的使用。
但是,如果在网页上直接查看目录结构还是显得太乱,因为由于cvs固有的特点,在客户端不能移走目录。但是,用cvs客户程序(如在eclipse2.1中)检下来的程序的目录中就不会包含那些空的无用的文件了。命令行的cvs要带一个"-P"参数就不会检出无用的空文件夹了。
学习日记用户取回密码(重置密码)分析设计
用户重置密码的流程设计如下:
1、用户忘记密码,请求重置密码;
2、检测用户是否在72小时内请求过重置密码,若是,给出提示消息,中止;否则继续;
3、系统发一封包括用户ID和随机产生的6位Token到用户注册时留下的信箱,同时记下发送邮件的时间;
4、系统每隔1小时检测取回密码的用户的邮件发送时间,如果没有超过72小时,则继续检测;如果超过72小时,则删除用户重置密码的记录,用户需要重新请求发送密码;
5、用户收到重置密码的邮件,点击重置密码的链接,登录到重置密码的页面,用户输入新密码两遍;
6、如果用户在重置密码页面输入的用户ID和Token都正确并且两次新密码一致,则系统接受新密码,并经MD5加密后,存入数据库,新密码生效,引导用户转往用户登录页面,同时,删除用户重置密码的记录;
7、如果用户在重置密码页面输入的用户ID和Token有误或两次密码不一致或者密码字符非法,返回重置密码的页面,提示用户错误和重新输入新密码,直到用户输入正确或取消重置密码的过程;
在分析了学习日记重置密码流程后,画出了用户重置密码用例的活动图后(尝试用ArgoUML0.18.1建模,模型地址:http://learndiary.tigris.org/source/browse/*checkout*/learndiary/old/documentation/login/design/resetPsd1.zargo,活动图地址(gif格式):http://learndiary.tigris.org/source/browse/learndiary/old/documentation/login/design/resetPsd1ActivityDiagram.gif?rev=1.1&view=markup),下面接着对其中涉及的对象实体作一检查:
1、用户:重置密码的用户;
2、邮件:用户重置密码的链接(包括:用户ID和取回密码的标志码)的邮件;
3、邮件发送者:发送邮件的对象;
4、用户重置密码的数据:保存用户ID、取回密码的标志码、发送重置密码邮件的时间的信息;
5、用户重置密码的数据保管者:维护用户ID、取回密码的标志码、发送重置密码邮件的时间的信息的保管者;
6、重置密码数据有效期限检查者:每隔一定时间间隔(如1小时)检查一次重置密码的数据是否有效,无效了就通知数据保管者抛弃数据;
关于学习日记分级的一些想法
比较活跃的日记应该和其他的日记有所区别
比如排列位置考前
改变学习日记登录方式余下的步骤
之前,已经把登录模式作了初步的改变。下面,计划一下后面的工作。
1、把重设密码纳入登录模式的改变中:
1)、参考学习其他的程序的取回密码功能,决定运作方式;已完成,准备用jive3的方式;
2)、设计用户取回密码的流程,尝试用ArgoUML0.20.alpha2进行建模,一方面可以完成设计,二方面可以验证argouml建模的可行性,取得大家的共识,还可以把这个模型提交给朋友们,请他们提意见和建议;
3)、实现重设密码;
2、增加用户保存密码的功能,下一次登录可以不用输入密码;见http://www.learndiary.com/disDiaryContentAction.do?searchDiaryID=558&goalID=558&naviStr=a10ac0ad0改善系统的登录方式
和“用cookie保存用户密码登录流程http://www.learndiary.com/disDiaryContentAction.do?goalID=73”
3、实现1需要补充下面的知识:
1)MD5加密,用于用户密码的加密(包括数据库中的和用户cookie中的);
2)java中时间触发的使用Timer,用于重设密码失误期限的检测;
4、另外,是否考虑把邮件发送单独做成一个功能,在程序要发送各种邮件时都可以使用,例如,我在考虑是否单独增加对注册用户邮件的群发功能,或者把公告作为用户的默认订阅邮件。jive3的做法好像就是这样的。我前面作过这样的思考:
应该加入给注册用户发系统公告的功能
http://www.learndiary.com/disDiaryContentAction.do?searchDiaryID=1250&goalID=1250&naviStr=a10ac0ad0
学习jive的取回密码流程
在这个问题走偏了。下了一个jivejdon2.5,却搞不定里面的中文化问题,本来里面没有取回密码的功能,可我还是尝试解决这个中文化问题。里面用的是is088591编码,在管理页面设置本地化和创建中文论坛,发中文帖子不行。问题暂时记在这里。先把既定的目标完成。我的环境是:Window2000+tomcat5+mysql4
在jive3中有取回密码的功能,初步用导入导出sql文件在ultraedit比较的方法找到它存取回密码userID和Token的字段存在在表jiveuserprop中:
CREATE TABLE `jiveuserprop` (
`userID` bigint(20) NOT NULL default '0',
`name` varchar(100) NOT NULL default '',
`propValue` text NOT NULL,
PRIMARY KEY (`userID`,`name`)
) TYPE=MyISAM;
数据:INSERT INTO `jiveuserprop` VALUES (1,'jiveAdminUserRange','15') , (1,'jiveThreadRange','15') , (1,'jiveMessageRange','15') , (1,'jiveTimeZoneID','Asia/Shanghai') , (1,'jiveAutoWatchNewTopics','false') , (1,'jiveAutoWatchReplies','false') , (1,'jiveAutoAddEmailWatch','false') , (2,'jiveSignatureVisible','true') , (2,'jive.passwordreset.token','1fgNz9LH') , (2,'jive.passwordreset.timestamp','1131889036888') , (2,'jive.passwordreset.last_sent','1131889036888') , (5,'jiveLocation','sds') , (5,'jiveOccupation','dsds') ;
可以看到,它里面的token是没有加密的。
当用户用jive3发的重设密码的链接:http://localhost:8080/jive3/resetPassword!default.jspa?userid=5&token=2qSwKIgy 重设密码后,有关的字段值就被删除了,如下:
INSERT INTO `jiveuserprop` VALUES (1,'jiveAdminUserRange','15') , (1,'jiveThreadRange','15') , (1,'jiveMessageRange','15') , (1,'jiveTimeZoneID','Asia/Shanghai') , (1,'jiveAutoWatchNewTopics','false') , (1,'jiveAutoWatchReplies','false') , (1,'jiveAutoAddEmailWatch','false') , (2,'jiveSignatureVisible','true') , (5,'jiveLocation','sds') , (5,'jiveOccupation','dsds') ;
jive3是隔了72小时取回密码失效,下面验证一下,发送密码后的值:
INSERT INTO `jiveuserprop` VALUES (1,'jiveAdminUserRange','15') , (1,'jiveThreadRange','15') , (1,'jiveMessageRange','15') , (1,'jiveTimeZoneID','Asia/Shanghai') , (1,'jiveAutoWatchNewTopics','false') , (1,'jiveAutoWatchReplies','false') , (1,'jiveAutoAddEmailWatch','false') , (2,'jiveSignatureVisible','true') , (2,'jive.passwordreset.last_sent','1133261729536') , (2,'jive.passwordreset.timestamp','1133261729536') , (2,'jive.passwordreset.token','ywE1T2Q0') , (5,'jiveLocation','sds') , (5,'jiveOccupation','dsds') ;
把系统时间调后72小时以后,重设密码失败:
Forums - Reset Your Password
Welcome, Guest
Login
Guest Settings
Help
Please enter the userID and the token exactly as shown in the password reset email you have previously received. Please note that the token is case sensitive.
An error occurred validating the userID and token that was just entered. Please confirm the userID and the token was entered exactly as shown in the email and note that the token is case sensitive. If both are exactly as shown in your email and 72 hours have passed since the email was sent, you will have to start over.
Reset your password
UserID:
Token:
Invalid token
New Password:
Confirm Password:
查看数据库中相应的字段:
INSERT INTO `jiveuserprop` VALUES (1,'jiveAdminUserRange','15') , (1,'jiveThreadRange','15') , (1,'jiveMessageRange','15') , (1,'jiveTimeZoneID','Asia/Shanghai') , (1,'jiveAutoWatchNewTopics','false') , (1,'jiveAutoWatchReplies','false') , (1,'jiveAutoAddEmailWatch','false') , (2,'jiveSignatureVisible','true') , (5,'jiveLocation','sds') , (5,'jiveOccupation','dsds') ;
可以看出,字段值已经被删除了。
至此,jive3的取回密码实现的大概思路已经掌握了。
申请了“中国站长”(www.cnzz.com)的流量统计
可以看看网站访问的有关数据。
学习日记定位
1、学习者面对信息的海洋,无所适从;
2、整合个人的网络学习资源;
3、提供到自己喜爱的学习资源的同步接口;
4、个性化的指导,适合自己的才是最好的;
5、集中理念,分散管理,灵活;
6、人性化的学习家园。
解决了学习日记的3个不足之处,写了导航系统文章
见:
1、所有目标>>目标:公告牌的日记列表>>日记:系统使用及测试反馈中的“三个问题”;http://www.learndiary.com/disDiaryContentAction.do?goalID=1159&naviStr=a10a21
2、所有目标>>我进行中的目标>>目标:建设“学习日记”我的日记列表>>选了3篇帖子发到七个java站 (0篇)http://www.learndiary.com/disDiaryContentAction.do?searchDiaryID=&goalID=1281&naviStr=a10a60a05
选了3篇帖子发到七个java站
为了介绍我们这个小小的开源项目,和增进交流,我把自己写的三篇帖子发到了以“java”为关键字搜索google的前七个中文java站。今天看有三个网站发表了我的两篇帖子。但是没有什么反馈。尤其是学习日记的导航系统的可行性还有待讨论。
这三篇帖子分别是:
1、学习日记网站动态导航技术探索 (0篇)http://www.learndiary.com/disDiaryContentAction.do?searchDiaryID=&goalID=1255&naviStr=a10a2167
2、改變學習日記的字符集總結,查詢utf數據庫? (0篇)http://www.learndiary.com/disDiaryContentAction.do?searchDiaryID=&goalID=1242&naviStr=a10a21105
3、一个国家软件开源事业的发展跟经济水平的关系 (0篇)
http://www.learndiary.com/disDiaryContentAction.do?searchDiaryID=&goalID=1262&naviStr=a10a244
其中第3篇帖子没有一家发表,看来可能是水平太差,或是阐述得不详细,或是观点错误,以后再好好的把这个问题想一想。