使用禅道 api 添加用户完整流程与分析

2023-11-20

在使用禅道系统时,有时为了方便,需要与其他系统对接,如其他系统添加用户后可以直接同步到禅道系统,而不是在禅道系统重新添加一遍用户,禅道系统提供了二次开发的api,但是里面的内容并不详细,故笔者写这篇文章进行记录

 

这里先以 postman进行接口调用,演示流程,后面有可能会根据情况写一个 java版本的调用流程

添加用户的流程看下图

 

1、获取session

笔者这里禅道的地址是 http://192.168.0.113:8082/,读者可根据自己的情况做修改

请求下面地址获取 session

http://192.168.0.113:8082/zentao/api-getSessionID.json

 

 

这里获取的 sessionName和 sessionID要保存好,后面的所有接口都需要用

sessionName 就是 cookie的键,sessionID 是 cookie的值

 

2、通过接口登录禅道

登录接口地址

http://192.168.0.113:8082/zentao/user-login.json

postman请求带参数的地址:http://192.168.0.113:8082/zentao/user-login.json?zentaosid=f25a6fae708097cb212cf64f79c9afd5&account=admin&password=admin123456

 

 

3、获取添加用户页面数据

接口地址

http://192.168.0.113:8082/zentao/user-create-0.json

postman 请求地址:http://192.168.0.113:8082/zentao/user-create-0.json?zentaosid=f25a6fae708097cb212cf64f79c9afd5

 

这里返回的 json中 data里的数据,其实就是添加用户页面表单里可选择的各项数据,其中 rand用于密码加密,下面的添加用户接口需要用到,所以需要保存 rand的值,以备后面使用

这里的获取页面数据可以理解为 web端进入添加用户页面,准备添加用户,故每次添加用户前需先刷新添加用户页面,在接口中体现为重新请求这个接口以获得最新的 rand和其他数据的值

 

4、添加用户

接口地址

http://192.168.0.113:8082/zentao/user-create-0.json

postman请求地址:http://192.168.0.113:8082/zentao/user-create-0.json?zentaosid=f25a6fae708097cb212cf64f79c9afd5

 

用户详细参数

获取管理员和用户的加密密码

这个加密的实现流程会在后面详细说明

 

注意,使用 postman的 post请求的话,用户详细数据不是写在 param中的,zentaosid写在 param中。用户详细数据写在 body的 form-data中

接口返回 success表示用户添加成功

可以登录 web页面进行查看

 

5、分析

下面介绍管理员密码和用户密码的加密值是怎么来的,以及用户数据的参数是怎么来的

首先是密码加密,因为禅道的api中没有详细说明,因此需要我们自己分析

登录禅道 web页面,打开添加用户页面,然后按 F12,添加完用户数据后点击保存,找到对应的请求进行分析

 

从上图可以看到添加用户都需要哪些参数,及这些参数的意义

看上图可知,管理员密码和用户密码都做了加密处理,那么密码加密的规则是什么呢?请往下看

在添加用户页面  查看网页源代码,搜索 md5,可找到下面的内容

 

上图是管理员密码加密规则,先对密码进行 md5加密,然后对加密后的密码和 rand拼接的字符串再进行 md5加密,rand其实充当了加密盐的作用

 

上图是用户密码加密规则,对用户密码进行 md5加密后与 rand拼接,返回给后台

 

知道管理员密码和用户密码加密规则后,就知道添加用户接口该传什么参数了,下面是笔者按照禅道的加密规则实现的加密流程代码

package com.tdemo.codec;

import java.security.MessageDigest;

public class Demo {

    public static void main(String[] args) {
        //管理员密码
        String adminPassword = "admin123456";
        //创建用户页面上的rand值
        String rand = "1440794478";
        //新建用户的密码
        String userPassword = "user123456";
        //按照禅道规则加密后的管理员密码
        System.out.println(md5(md5(adminPassword) + rand));
        //按照禅道规则加密后的新建用户密码
        System.out.println(md5(userPassword) + rand);
    }

    /**
     * md5加密算法
     * @param plainText
     * @return
     */
    public static String md5(String plainText) {
        String result = "";
        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            md.update(plainText.getBytes());
            byte b[] = md.digest();
            int i;
            StringBuffer buf = new StringBuffer("");
            for (int offset = 0; offset < b.length; offset++) {
                i = b[offset];
                if (i < 0)
                    i += 256;
                if (i < 16)
                    buf.append("0");
                buf.append(Integer.toHexString(i));
            }
            result = buf.toString();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }
}

 

6、退出

请求地址

http://192.168.0.113:8082/zentao/user-logout.json

postman请求地址:http://192.168.0.113:8082/zentao/user-logout.json?zentaosid=f25a6fae708097cb212cf64f79c9afd5

 

 

 

后续如果有时间和需要的话,可能会写一个 java调用 api 实现添加用户的流程总结

 

至此完

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用禅道 api 添加用户完整流程与分析 的相关文章

  • Mac M1安装Homebrew 简单实用

    1 首先创建安装目录 sudo mkdir p opt homebrew 2 将目录属主修改为当前用户 方便直接实用brew install sudo chown R whoami opt homebrew 3 进入 opt文件夹 cd o
  • 安卓数据视图化工具SQLiteStudio

    SQLiteStudio工具使用介绍 1 下载 SQLliteStudio 解压后打开文件夹中的exe文件即可 阿里网盘有 2 对SQLliteStudio进行配置 简介 视图化安卓开发过程中数据库内容 笔者使用AndroidStudio开
  • 图像镜像翻转

    将图像左右镜像翻转 生成翻转后的图像 python3代码 import numpy as np import cv2 import matplotlib pyplot as plt 图片镜像翻转 def left2right img pat
  • 2021-1-7-一文掌握git/github使用,内容详细,适合新手入门~

    文章目录 前言 一 git是什么 二 github 1 了解github 2 注册github账户 三 git安装 1 windows安装git 2 linux安装git 四 git github使用 1 git工作流简介 2 git基本命
  • 我放弃了VMware

    文章目录 哈哈哈 不得不说 有点儿标题狗的意思 不去写新闻真的屈才了 正如标题所说 我弃用了VMware 但是我使用上了WSL2 相对来说 wsl2使我不怎么担心我16G的内存不够用 其实 wsl也是虚拟技术的一种 但是相比VMware v
  • VC文件扩展名一览表

    VC文件扩展名一览表 2003 12 7 23 05 34 阅读589次 APS 存放二进制资源的中间文件 VC把当前资源文件转换成二进制格式 并存放在APS文件中 以加快资源装载速度 BMP 位图资源文件 BSC 浏览信息文件 由浏览信息
  • Centos7安装Nessus教程

    本文为学习笔记 仅限学习交流 不得利用 从事危害国家或人民安全 荣誉和利益等活动 请参阅 中华人民共和国网络安全法 Nessus安装包 链接 https pan baidu com s 1FJMu8WMZPSjoqQpes GCng 提取码
  • java单元测试覆盖率(clover+testng)

    1 testng 介绍 TestNG是一个旨在简化各种测试需求的测试框架 从单元测试 将一个类与其他类分开测试 到集成测试 对由多个类 几个程序包甚至几个外部框架组成的整个系统进行测试 开源免费 基于以maven组件的形式 引入项目 需要修
  • postman使用过程中body中的form-data,x-www-form-urlencoded,raw,binary的简单记录

    引言 初次使用postman不是很清楚怎么使用 就直接上手 不想看postman的使用文档 故而采用直接上手实验的方式 下面记录一下 body在使用的时候的四种类型 类型说明 form data 既可以上传键值对 也可以上传文件 当上传的字
  • 【Apifox Helper】自动生成接口文档,IDEA+Apifox懒人必备

    文章目录 前言 缘由 接口文档对接爽 整理起来真费脑 本文阅读时长 约10分钟 前置条件 1 IDEA开发工具 2 Apifox 不必要 主要目标 一秒生成接口文档 水图 IDEA中项目接结构图 生成到Apifox接口文档图 试用人群 1
  • Markdown基本语法

    Markdown基本语法 一 Markdown了解 二 基本语法 1 各级标题的写法 2 段落 3 字体样式 4 分隔线 5 下划线 6 脚注 7 列表 8 代码块 9 引用 10 图片插入 11 链接 12 表格 三 高级技巧 1 HTM
  • Fortify 代码扫描安装使用教程

    前言 Fortify 能够提供静态和动态应用程序安全测试技术 以及运行时应用程序监控和保护功能 为实现高效安全监测 Fortify具有源代码安全分析 可精准定位漏洞产生的路径 以及具有1分钟1万行的扫描速度 Fortify SCA 支持丰富
  • 组合测试方法PK正交分析方法

    测试过程中 我们经常遇到需要覆盖多个变化参数的测试场景 如我们测试BS配置控制客户端组织资源远程配置一个设备时 进行一个设备通道视频参数设置的各种组合测试 如下图 多数情况下 类似于这种多组合测试时 老员工则是依靠经验去进行有针对性的测试
  • 使用Notepad++工具查看文件的十六进制

    最近在用notepad 打开 dat文件 想看看里面的一些数据但是打开之后发现是乱码 下面给出解决方法 1 首先打开 dat文件 发现是一些乱码 2 点击 插件 gt 搜索hex gt 找到HEX Editor勾选 gt 安装 3 重新打开
  • iOS系统网络抓包方法

    原文地址 http www cnblogs com ydhliphonedev archive 2011 10 27 2226935 html 在进行iOS开发过程中 经常会遇到各种各样的网络访问问题 以前苦于没有抓包工具 很多网络问题解决
  • 为 SQL Server 站点数据库服务器配置 SPN

    如何为 SQL Server 站点数据库服务器配置 SPN 主题上次更新时间 2008 年 1 月 使用 SQL Server 计算机的本地系统帐户运行 SQL Server 服务不是 SQL Server 最佳方案 为了最安全地运行 SQ
  • Linux Container(lxc)分析和配置使用

    前提 本文翻译 有道翻译 自linux container lxc 根据重点摘录学习 介绍 最好将容器化定义为 通过操作系统中的特性启用的进程隔离机制 容器是与系统其他部分隔离的一个或多个进程的集合 Containers VMs lxc通过
  • Xray使用教程

    简介 Xray是长亭科技开发的一款漏扫工具 支持多种扫描方式和漏洞类型 可自定义POC Proof of Concept 概念验证 即漏洞验证程序 俺是在 乌雲安全 看到了这个工具的使用 作为一个脚本小子初学者 这里做一下笔记 使用 web
  • notepad++突然崩溃,保存的文件没了怎么办

    notepad还是很牛逼的 备份文件 C Users 你当前用户的用户名 AppData Roaming Notepad backup可以恢复
  • 基于vue-cli快速发布vue npm 包

    一 编写组件 1 初始化项目并运行 vue create vue digital count npm run serve 2 组件封装 新建package文件夹 因为我们可能会封装多个组件 所以在src下面新建一个 package 文件夹用

随机推荐

  • 多线程(九):JUC组件

    在来时juc组件前 我们先把上一章遗漏的部分给补上 synchronized 实现策略 锁升级 无锁 gt 偏向锁 gt 轻量级锁 gt 重量级锁 还有一个 锁消除 锁消除即删除不必要的加锁操作 JVM在运行时 对一些 在代码上要求同步 但
  • sort快速排序

    sort快速排序 使用sort必须要有相应的头文件 include
  • 中标麒麟系统把玩记录

    1 指令发送邮件 echo content mail vs this is title a a sh XXX XX com 其中 content代表发送的内容 thisistitle代表邮件主题 a sh为附件 2 开机运行脚本 在etc
  • 田忌赛马java代码算法,AcWing 1489. 田忌赛马——Java版代码

    import java io import java util public class 田忌赛马 public static void main String args throws IOException BufferedReader
  • Thrift快速入门

    文章目录 Thrift的安装 windows下安装 Linux下安装 Thrift的使用 编写IDL文件 命名空间 namespace 基本数据类型 类型定义 typedef 结构体类型 struct 枚举类型 enum 异常类型 exce
  • MybatisX简介

    MybatisX简介 前言 一 什么是MybatisX 二 如何使用 1 安装插件 2 创建一个mybatis项目或者于项目中引入mybatis依赖 3 快速生成示例 3 1 快速生成mapper方法 3 2 MybatisX Genera
  • 使用lattice包的bwplot函数绘制箱图比较多个模型在不同指标上的性能差异(R语言)

    使用lattice包的bwplot函数绘制箱图比较多个模型在不同指标上的性能差异 R语言 箱图是一种常用的数据可视化方法 用于表示一组数据的分布特征 包括中位数 四分位数 异常值等 在比较多个模型在多个指标上的性能差异时 箱图可以提供直观的
  • NCCL相关笔记

    本文仅代表个人观点 不保证正确性 一 NCCL简介 1 什么是NCCL NCCL是NVIDIA集合通信库 NVIDIA Collective Communications Library 的简称 是用于加速多GPU之间通信的库 能够实现集合
  • #css# 【四】如何使用hover,实现父对子的样式改变?

    css 如何使用hover 实现父对子的样式改变 思路及做法 鼠标移动到父盒子的时候 里面所有的子盒子的样式都发生变化的 只需要直接在hover后面加上空格 并且加上子盒子的类名 里面再写其他样式 父盒子的类名 hover 子盒子的类名 这
  • iOS系统网络抓包方法

    原文地址 http www cnblogs com ydhliphonedev archive 2011 10 27 2226935 html 在进行iOS开发过程中 经常会遇到各种各样的网络访问问题 以前苦于没有抓包工具 很多网络问题解决
  • 【python-opencv】硬币检测

    使用 python3 8 x opencv 硬币检测 问题描述 设计思路1 使用简单特征识别 具体操作 部分代码 设计思路2 模板匹配 源码 模板制作 完整代码 问题描述 使用图像处理技术 从照片中识别硬币的个数 并判断总价值 设计思路1
  • ESP32开发阶段启用 Secure Boot 与 Flash encryption

    Secure Boot 与 Flash encryption详情 请参考 https blog csdn net espressif article details 79362094 1 开发环境 AT版本 2 4 0 0 发布 IDF 与
  • git忽略文件地址

    git忽略文件地址 Objective C gitignore gitignore
  • String和StringBuffer的常见用法

    链接 https www nowcoder com questionTerminal fe6b651b66ae47d7acce78ffdd9a96c7 answerType 1 f discussion来源 牛客网 String的用法 ja
  • dubbo配置提供者和消费者

    1 找到对应的文件 提供者 消费者 参考dubbo官网 http dubbo apache org zh cn docs user quick start html
  • 【NLP】第 6 章 :微调预训练模型

    到目前为止 我们已经了解了如何使用包含预训练模型的huggingface API 来创建简单的应用程序 如果您可以从头开始并仅使用您自己的数据来训练您自己的模型 那不是很棒吗 如果您没有大量空闲时间或计算资源可供使用 那么使用迁移学习 是最
  • 连接池

    总结 1 连接池 java对外提供了连接的接口 连接池的存在就省去了每次创建和释放连接 2 连接池的连接条件 1 将commons pool 1 5 6 jar的jar包引进java项目下的lib文件夹 3 用连接池对象代替dao 层的Co
  • TP6.0 自定义命令创建类文件

    一 修改框架核心扩展包 1 新增指令配置项 2 创建逻辑层类文件模板 3 创建 Logic php 文件 4 执行命令 创建逻辑层类文件 二 不用修改框架源码 推荐 1 创建一个自定义命令类文件 以逻辑层类文件为例 2 复制创建模型类的命令
  • 解决 npm或pnpm : 无法加载文件 C:\Users\bts\AppData\Roaming\npm\pnpm.ps1,因为在此系统上禁止运行脚本

    vscode 使用 npm 或 pnpm打开网页时出现此问题 解决方法 点击左下角开始 找到Windows PowerShell 点击右键找到更多 找到以管理员身份运行 输入命令 set ExecutionPolicy RemoteSign
  • 使用禅道 api 添加用户完整流程与分析

    在使用禅道系统时 有时为了方便 需要与其他系统对接 如其他系统添加用户后可以直接同步到禅道系统 而不是在禅道系统重新添加一遍用户 禅道系统提供了二次开发的api 但是里面的内容并不详细 故笔者写这篇文章进行记录 这里先以 postman进行