一、流程图解

二、相关数据表
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注册流程总结相关推荐

  1. Android安全问题 抢先接收广播 - 内因篇之广播接收器注册流程

    导读:本文说明系统是如何注册动态广播以及静态广播,这里主要注意其注册的顺序 这篇文章主要是针对我前两篇文章 android安全问题  抢先开机启动 - 结果篇 android安全问题  抢先拦截短信 ...

  2. NR 5G AMF重定向的注册流程

    AMF重定向的注册流程 当一个AMF收到Registration Request,这个AMF可能需要将此Registration Request改道发送到另外一个AMF,主要应用场景:当初始AMF不适 ...

  3. NR 5G UE发起的去注册流程

    UE发起的去注册流程 UE给AMF发送NAS 消息Deregistration Request(5G-GUTI, Deregistration type(例如Switch off), Access t ...

  4. 从注册流程 分析如何安全退出多个Activity 多种方式(附DEMO)

      退出Activity注册Android遍历 目录(?)[+] 前言 知识结构 具体方案 方案1 方法采用FLAG_ACTIVITY_CLEAR_TOP退出整个程序多activity 方案2 方法通 ...

  5. 怎么用python自动注册_python selenium自动化(二)自动化注册流程

    需求:使用python selenium来自动测试一个网站注册的流程. 假设这个网站的注册流程分为三步,需要提供比较多的信息: 在这个流程里面,需要用户填入信息.在下拉菜单中选择.选择单选的radio ...

  6. 【Android NDK 开发】JNI 动态注册 ( 动态注册流程 | JNI_OnLoad 方法 | JNINativeMethod 结构体 | GetEnv | RegisterNatives )

    文章目录 I . 动态注册流程 ( 总结 ) II . JNI_OnLoad 方法 III . 被注册的本地 C/C++ 方法参数 IV . JNINativeMethod 结构体 ( 核心重点 ) ...

  7. 从注册流程 分析如何安全退出多个Activity 多种方式(附DEMO)

    http://blog.csdn.net/vipzjyno1/article/details/25423543 前言 由于一个同学问到我如何按照一个流程走好之后回到首页,我以前看到过4个解决方案,后来 ...

  8. 网站“注册流程”如何“照顾用户”?

    一个用户到了某个网站的门口,从跨进门槛到找到自己的座位,这个过程中网站要做的,一是让用户尽快坐稳,该干什么干什么:二是让用户快速熟悉房间,保持新鲜感,至少在坐下之前,主人应该送上杯水或两本杂志,让用户 ...

  9. SuperMap注册流程记录

    SuperMap注册流程记录 软件下载链接:http://support.supermap.com.cn/DownloadCenter/ProductPlatform.aspx 点击以下红框文件启动本 ...

最新文章

  1. 计算机基础操作与应用实训教程,计算机应用基础实训教程の第 3 章 Word 2003 基本操作.pdf...
  2. python打飞机源代码-如何用 Python 打飞机 ?
  3. python怎么引用已经输入的信息_如何将用户输入存储在python中,然后调用它?
  4. SAP自定义查询工具SQVI
  5. Java中ArrayList,Vector,LinkedList,HashMap,HashTable,HashSet对比及总结
  6. hexo 搜索_Hexo+Github博客最简教程-Dockerfile自动搭建
  7. 2021全网最全Activiti7教程01(Activiti7详细介绍-欢迎收藏)
  8. 中文句法分析_句法分析StanfordParser+依存句法分析pyhanlp
  9. 第一百二十一天 : varnish
  10. P1162 填图颜色 洛谷(BFS的简单应用)
  11. lucene相关资料
  12. web网页设计实例作业 ——古典中国风工艺美术(9页) html+css+javascript网页设计实例
  13. 删除K8S集群的/var/lib/kubelet目录报Device or resource busy错误解决方法
  14. selenium webdriver (python)的基本用法一
  15. 使用NTS理解细粒度图像分类
  16. C语言实现10只小猪称体重
  17. POJ 2694. A Simple Poker Game
  18. SAP中从应用角度扒一扒产品成本核算号
  19. 【论文】时空预测模型Spatio-Temporal Graph Convolutional Networks
  20. 免费OA系统让企业管理变得更加简单

热门文章

  1. 微信小程序:公告字幕滚动播放(文字跑马灯效果)
  2. python123第k序元素查找_二级个人笔记
  3. 飞鸟快传-集文件传输与文件管理与一体
  4. Docker安装错误failure: repodata/repomd.xml from docker-ce-stable
  5. 四元数得出的哈密顿算子,引发的梯度散度(通量密度)旋度(环量密度),这才是麦克斯韦微分电磁方程中的参数(而不是直观的变化率是导数。)是理解麦克斯韦方程的钥匙
  6. 新版 Microsoft Edge 完整版下载的正确姿势
  7. Java数据结构和算法(第二版)
  8. 【RPG Maker MV】RPG游戏《机器人养成记》制作笔记 - 制作背景和引擎选择
  9. 安徽考区计算机水平考试例题,全国高等学校(安徽考区)计算机水平考试(一级)模拟试题...
  10. mac下图形界面开发:ios and mac osx