Tigase注册流程总结

一、流程图解
Tigase注册流程总结_第1张图片
二、相关数据表
tig_user–用户表
Tigase注册流程总结_第2张图片

Uid             主键,自增
User_id         用户名(格式:用户注册账号@服务器域名)
Sha1_user_id        经过MD5加密后密码
User_pw         明文密码
Acc_create_time 注册时间(默认表数据插入时间)
Last_login      用户最近登录时间(默认0000-00-00 00:00:00)
Last_logout     用户最近退出登录时间(默认0000-00-00 00:00:00)
Online_status       用户上线次数(默认0)
Failed_logins       该用户账号登录失败次数(默认0)
Account_status  账号状态(1.正常 2.禁用(首次注册无密码,该账号就被置为禁用态))                 (默认1

tig_nodes–节点信息表
Tigase注册流程总结_第3张图片

Nid             主键,自增,节点id
Parent_nid      父节点id
Uid             用户id,是tig_user表中uid的外键
Node            节点类型,可以自定义节点名称

Tig_pairs–用户节点信息表
Tigase注册流程总结_第4张图片

Pid             主键,自增
Nid             节点id,是tig_nodes表中nid的外键
Uid             用户id,是tig_user表中uid的外键
Pkey                键       
Pval                值,以xml格式存储
tig_pairs以(key,value)的形式存储节点的具体数据,例如上表中,
第45行,对应tig_nodes中的root节点,存储该用户的好友列表
第6行,对应tig_nodes中的last-start节点,记录该用户上次登录时间

三、源代码分析
A.注册账号检测
接口:
Tigase注册流程总结_第5张图片
实现类:
Tigase注册流程总结_第6张图片
注册方法:
这里写图片描述
注册参数说明:
BareJID对象:
Tigase注册流程总结_第7张图片

BareJID对象内封装了4个参数:
    domain:服务器域名
    localpart:账号名
    to_string:账号名@服务器域名
    hashcode:根据hash算法生成的int类型的一串数字
String  password:
用户注册密码(明文)

下一步:
调用存储过程:
Tigase注册流程总结_第8张图片
1.调用TigAddUserPlanPw存储过程
Tigase注册流程总结_第9张图片
经过TigAddUserPlanPw存储过程处理(when:哪些字段经过MD5加密,then:返还不同的结果),返回一个add_user字符串,该字符串包含user_id和user_pw

2.调用TigGetDBProperty存储过程
Tigase注册流程总结_第10张图片
TigAddUserPlanPw存储过程中,调用了TigGetDBProperty存储过程,作用是查询出用户,对应节点下存储的信息(xml格式),再回来执行TigAddUserPlanPw存储过程。

验证失败:(账号已存在……),捕捉异常
Tigase注册流程总结_第11张图片
B.验证通过,进入下一步,调用AuthRepository接口:
Tigase注册流程总结_第12张图片
AuthRepository接口实现类AuthRepositoryMDImpl:
Tigase注册流程总结_第13张图片
进入到addUser方法:
Tigase注册流程总结_第14张图片
该方法是去查询该服务器中,是否有该用户的信息(单服务器忽略)

C.进入下一步:授权注册
Tigase注册流程总结_第15张图片

你可能感兴趣的:(Java)