Tigase注册流程总结
一、流程图解
二、相关数据表
tig_user–用户表
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–节点信息表
Nid 主键,自增,节点id
Parent_nid 父节点id
Uid 用户id,是tig_user表中uid的外键
Node 节点类型,可以自定义节点名称
Tig_pairs–用户节点信息表
Pid 主键,自增
Nid 节点id,是tig_nodes表中nid的外键
Uid 用户id,是tig_user表中uid的外键
Pkey 键
Pval 值,以xml格式存储
tig_pairs以(key,value)的形式存储节点的具体数据,例如上表中,
第4,5行,对应tig_nodes中的root节点,存储该用户的好友列表
第6行,对应tig_nodes中的last-start节点,记录该用户上次登录时间
三、源代码分析
A.注册账号检测
接口:
实现类:
注册方法:
注册参数说明:
BareJID对象:
BareJID对象内封装了4个参数:domain:服务器域名localpart:账号名to_string:账号名@服务器域名hashcode:根据hash算法生成的int类型的一串数字
String password:
用户注册密码(明文)
下一步:
调用存储过程:
1.调用TigAddUserPlanPw存储过程
经过TigAddUserPlanPw存储过程处理(when:哪些字段经过MD5加密,then:返还不同的结果),返回一个add_user字符串,该字符串包含user_id和user_pw
2.调用TigGetDBProperty存储过程
TigAddUserPlanPw存储过程中,调用了TigGetDBProperty存储过程,作用是查询出用户,对应节点下存储的信息(xml格式),再回来执行TigAddUserPlanPw存储过程。
验证失败:(账号已存在……),捕捉异常
B.验证通过,进入下一步,调用AuthRepository接口:
AuthRepository接口实现类AuthRepositoryMDImpl:
进入到addUser方法:
该方法是去查询该服务器中,是否有该用户的信息(单服务器忽略)
C.进入下一步:授权注册
Tigase注册流程总结相关推荐
- Android安全问题 抢先接收广播 - 内因篇之广播接收器注册流程
导读:本文说明系统是如何注册动态广播以及静态广播,这里主要注意其注册的顺序 这篇文章主要是针对我前两篇文章 android安全问题 抢先开机启动 - 结果篇 android安全问题 抢先拦截短信 ...
- NR 5G AMF重定向的注册流程
AMF重定向的注册流程 当一个AMF收到Registration Request,这个AMF可能需要将此Registration Request改道发送到另外一个AMF,主要应用场景:当初始AMF不适 ...
- NR 5G UE发起的去注册流程
UE发起的去注册流程 UE给AMF发送NAS 消息Deregistration Request(5G-GUTI, Deregistration type(例如Switch off), Access t ...
- 从注册流程 分析如何安全退出多个Activity 多种方式(附DEMO)
退出Activity注册Android遍历 目录(?)[+] 前言 知识结构 具体方案 方案1 方法采用FLAG_ACTIVITY_CLEAR_TOP退出整个程序多activity 方案2 方法通 ...
- 怎么用python自动注册_python selenium自动化(二)自动化注册流程
需求:使用python selenium来自动测试一个网站注册的流程. 假设这个网站的注册流程分为三步,需要提供比较多的信息: 在这个流程里面,需要用户填入信息.在下拉菜单中选择.选择单选的radio ...
- 【Android NDK 开发】JNI 动态注册 ( 动态注册流程 | JNI_OnLoad 方法 | JNINativeMethod 结构体 | GetEnv | RegisterNatives )
文章目录 I . 动态注册流程 ( 总结 ) II . JNI_OnLoad 方法 III . 被注册的本地 C/C++ 方法参数 IV . JNINativeMethod 结构体 ( 核心重点 ) ...
- 从注册流程 分析如何安全退出多个Activity 多种方式(附DEMO)
http://blog.csdn.net/vipzjyno1/article/details/25423543 前言 由于一个同学问到我如何按照一个流程走好之后回到首页,我以前看到过4个解决方案,后来 ...
- 网站“注册流程”如何“照顾用户”?
一个用户到了某个网站的门口,从跨进门槛到找到自己的座位,这个过程中网站要做的,一是让用户尽快坐稳,该干什么干什么:二是让用户快速熟悉房间,保持新鲜感,至少在坐下之前,主人应该送上杯水或两本杂志,让用户 ...
- SuperMap注册流程记录
SuperMap注册流程记录 软件下载链接:http://support.supermap.com.cn/DownloadCenter/ProductPlatform.aspx 点击以下红框文件启动本 ...
最新文章
- 计算机基础操作与应用实训教程,计算机应用基础实训教程の第 3 章 Word 2003 基本操作.pdf...
- python打飞机源代码-如何用 Python 打飞机 ?
- python怎么引用已经输入的信息_如何将用户输入存储在python中,然后调用它?
- SAP自定义查询工具SQVI
- Java中ArrayList,Vector,LinkedList,HashMap,HashTable,HashSet对比及总结
- hexo 搜索_Hexo+Github博客最简教程-Dockerfile自动搭建
- 2021全网最全Activiti7教程01(Activiti7详细介绍-欢迎收藏)
- 中文句法分析_句法分析StanfordParser+依存句法分析pyhanlp
- 第一百二十一天 : varnish
- P1162 填图颜色 洛谷(BFS的简单应用)
- lucene相关资料
- web网页设计实例作业 ——古典中国风工艺美术(9页) html+css+javascript网页设计实例
- 删除K8S集群的/var/lib/kubelet目录报Device or resource busy错误解决方法
- selenium webdriver (python)的基本用法一
- 使用NTS理解细粒度图像分类
- C语言实现10只小猪称体重
- POJ 2694. A Simple Poker Game
- SAP中从应用角度扒一扒产品成本核算号
- 【论文】时空预测模型Spatio-Temporal Graph Convolutional Networks
- 免费OA系统让企业管理变得更加简单
热门文章
- 微信小程序:公告字幕滚动播放(文字跑马灯效果)
- python123第k序元素查找_二级个人笔记
- 飞鸟快传-集文件传输与文件管理与一体
- Docker安装错误failure: repodata/repomd.xml from docker-ce-stable
- 四元数得出的哈密顿算子,引发的梯度散度(通量密度)旋度(环量密度),这才是麦克斯韦微分电磁方程中的参数(而不是直观的变化率是导数。)是理解麦克斯韦方程的钥匙
- 新版 Microsoft Edge 完整版下载的正确姿势
- Java数据结构和算法(第二版)
- 【RPG Maker MV】RPG游戏《机器人养成记》制作笔记 - 制作背景和引擎选择
- 安徽考区计算机水平考试例题,全国高等学校(安徽考区)计算机水平考试(一级)模拟试题...
- mac下图形界面开发:ios and mac osx