Java登录专题-----创建用户(一)

我来填坑了

创建用户

入参 应该包括:

用户姓名,用户密码,用户手机号,用户所属机构

用户版本号,角色id

出参:

没有

数据结构

JavaBean    userInfoModel 用户model实体类

登录方式jwt Json Web Token(JWT )架构

代码逻辑

1.打印入参日志---------线上环境通过日志来进行查看错误

2.检验入参时候为空------抛出异常或者错误

3.创建userInfoModel 用户,将入参转为 该model

4.创建token 该系统采用jwt思想

5.检验token信息,通过token判断所属机构的性质,以及有无权限

6.将用户账号密码,进行去空格

7.检验 账户,密码,邮箱是否符合规范,通过正则表达式进行判断


  1. //校验账户是否符合注册规则
  2. String accountRegex = "^[a-zA-Z0-9_-]{6,16}$";

  1. //校验密码是否符合注册规则
  2. String passwordRegex = "^[a-zA-Z0-9]{6,16}$";

  1. //正则校验邮箱格式是否符合要求
  2. String emailRegex = "^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$";
  3. //校验手机号格式是否符合要求
  4. String mobileRegex = "^1[0-9]{10}$";

8.检验手机号

与账户是否已经在系统中注册

9.用md5对密码进行加密


  1. String password = userinfomodel.getPassword();
  2. String passprefix = "";//生成密码加密前缀
  3. Random random = new Random();
  4. for (int i = 0; i < 6; i++) {
  5. passprefix += random.nextInt(10);
  6. }
  7. if (EmptyUtils.isNotEmpty(password) && EmptyUtils.isNotEmpty(passprefix)) {
  8. String passwordMD5 = MD5Utils.getMD5String(passprefix + password);
  9. userinfomodel.setPassword(passwordMD5);
  10. userinfomodel.setHidePassword(password);
  11. }

  1. logger.info("展示未加密的密码:" + userinfomodel.getHidePassword());
  2. userinfomodel.setCreateTime(new Date(System.currentTimeMillis()));
  3. userinfomodel.setUpdateTime(new Date(System.currentTimeMillis()));
  4. userinfomodel.setStatus(Constants.COMMON_YES);//新建角色必定有效
  5. userinfomodel.setPasswordPrefix(passprefix);
  6. userinfomodel.setFirstLogin(Constants.COMMON_YES);//新建角色首次登陆标记

10.

//为创建的用户分配角色信息 用于为用户分配资源

11.return ;

Java登录专题-----创建用户(一)的更多相关文章

  1. Dynamics 365创建用户提示:您正在尝试使用已由其他用户使用的域登录来创建用户。如何解决。

    摘要: 本人微信公众号:微软动态CRM专家罗勇 ,回复287或者20181128可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me ...

  2. ORACLE的impdp和expdp命令【登录、创建用户、授权、导入导出】

    使用EXPDP和IMPDP时应该注意的事项: EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用. EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用, ...

  3. 1.配置桥接,并抓包验证 2.实现免密登录 3.修改登录端口: 22-》2222 4.不允许root用户远程登录 5.创建用户sshuser1,并设置密码,且只允许sshuser1远程ssh登录

    1.配置桥接:  抓包时如果有ens160的ICMP,说明我们的桥接搭建成功通过桥接访问到了ens160(这里忘加图片了) (1)创建一个桥接设备和会话 (2)添加设备和会话到桥接设备上 (3)启动从 ...

  4. linux CentOS中创建用户 无密码登录

    首先点击左上角的 “应用程序” -> “系统工具” -> “终端”,首先在终端中输入 su ,按回车,输入 root 密码以 root 用户登录,接着执行命令创建新用户 hadoop: 接 ...

  5. java.net.URL 模拟用户登录网页并维持session

    java.net.URL 模拟用户登录网页并维持session 半成品,并非完全有用 import java.io.BufferedReader; import java.io.InputStream ...

  6. ajax讲解:“创建用户”和“用户登录”练习

    ajax可以在不重新加载整个网页的情况下,对网页的某部分进行更新. 传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个网页页面.   接下来,将以例子的形式进行讲解   例一:创建用户   ...

  7. SQLServer创建用户登录

    创建用户登录注意事项 密码是区分大小写的. 只有创建SQL Server登录时,才支持对密码预先进行哈希运算. 如果指定MUST_CHANGE,则CHECK_EXPIRATION和 CHECK_POL ...

  8. 从主机A得到id_rsa.pub文件,在主机B创建用户danny加入该文件,实现主机A免密登录主机B

    操作步骤: 1.主机A 生成公钥id_rsa.pub文件并导出该文件 root@mytest:~# ssh-keygen Generating public/private rsa key pair. ...

  9. java.net.URL 模拟用户登录网页并维持session【转】

    java.net.URL 模拟用户登录网页并维持session 半成品,并非完全有用 import java.io.BufferedReader; import java.io.InputStream ...

随机推荐

  1. lamp平台构建

    目录 lamp平台构建 安装httpd 安装mysql 安装php 配置apache 启用代理模块 配置虚拟主机 启用代理模块 验证 lamp平台构建 环境说明: 系统平台 IP 需要安装的服务 ce ...

  2. Radmin自动登录器 v3.0

    Radmin自动登录器 v3.0 - By: ybmj@vip.163.com 20150615 用户手册 下载地址:https://download.csdn.net/download/shuren ...

  3. [BJDCTF2020]Mark loves cat-1|源代码泄露|变量覆盖

    主要考察了:源代码泄露.变量覆盖 共展示了三种获取flag的方式 1.打开题目查看未发现有效信息,查看源代码信息,发现返回的dog信息,结果如下: 2.使用dirmap进行目录扫描,发现了.git/c ...

  4. 基础1:JS的原型和原型链究竟

    JS的原型和原型链究竟是什么? 1. 从JS创建一个对象开始说起: 1.1 工厂模式创建对象 (缺点是无法知道创建出来的对象是一个什么类型的对象) function createPerson(name ...

  5. Excel 查找函数(三):HLOOKUP

    函数讲解 [语法]HLOOKUP(lookup_value, table_array, row_index_num, [range_lookup]) [参数] lookup_value:查找值(必须是 ...

  6. 通过cpu热插拔解决rcu stall的问题

    在linux 3.10环境一次故障处理中,发现有类似如下打印: NFO: rcu_sched_state detected stalls on CPUs/tasks: {15 } (detected ...

  7. 解决前端开发报错(SyntaxError: missing : after property id)的问题

    当使用对象初始化语法创建对象的时候,需要使用半角冒号 (:) 将属性键与属性值隔开. 1 var obj = { propertyKey: 'value' }; 冒号与等号 下面的代码会运行失败,原因 ...

  8. KDB_Database_Link 使用介绍

    kdb_database_link 是 KingbaseES 为了兼容oracle 语法而开发的跨数据库访问扩展,可用于访问KingbaseES, Postgresql , Oracle .以下分别介 ...

  9. Currtid 函数与性能问题

    对于Oracle ,一条tuple 的 rowid正常是不会变化的(引发row movement的操作除外,如:跨分区迁移update,表收缩),因此,应用设计上可以方便的使用rowid,加快访问速度 ...

  10. 003-simonyanVeryDeepConvolutional2015(VGG)

    Very Deep Convolutional Networks for Large-Scale Image Recognition #paper 1. paper-info 1.1 Metadata ...