在ZStack中查看token的值,您需要使用ZStack API或CLI工具来调用相应的命令获取token。以下具体是在CLI工具中查看token的过程:
1 首先,打开终端并登录到zstack管理节点。
2 运行以下命令以获取zstack CLI工具的root权限:
```
sudo zstack-cli
```
3 输入管理员密码以确认授权。
4 运行以下命令以列出当前所有的API。
```
zstack-cli> help
```
5 找到“Identity”部分并运行以下命令以获取token:
```
zstack-cli> identity loginByAccount accountName=<your-account-name> password=<your-password>
```
6 您将获得一个类似于以下示例输出的JSON格式的响应,其中包含您的token:
```
{
"orgzstackheaderidentityAPILoginReply": {
"uid": "54e0b00fac90411ebcd34b3a7558e44f",
"timeout": 604800,
"sessionUuid": "f098a787fac911eba27e525400020121",
"type": "Account",
"userUuid": "38c22bfffca74d1db4b1fc210f4d16f4",
"accountUuid": "40bf3b5453e04997aeb76c49dd7c5992",
"permission": "allow",
"success": true,
"inventory": {
"uuid": "f098a787fac911eba27e525400020121",
"accountUuid": "40bf3b5453e04997aeb76c49dd7c5992",
"createDate": "2021-05-20T14:43:55763+08:00",
"lastOpDate": "2021-05-20T14:43:55763+08:00",
"expiredDate": "2021-05-27T14:43:55763+08:00"
},
"category": "identity"
}
}
```
7 您可以在响应的`sessionUuid`字段中查看您的token值。
JWT由三部分组成,由类型和加密算法的head(头部),包含公共信息和自定义信息的playboard(负载),以及signature(签名)组成。
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9 就是头部信息,这是由base64加密后的密文,base64是一种对称加密算法,解密后的json格式如下。头部信息由type(类型)和 alg(加密算法)组成。类型就是"JWT",加密算法一般使用 HMAC SHA256加密算法。
eyJhdWQiOiIzOTU4MTU4MDEiLCJleHAiOjE2MDYxMDc5NTEsImlhdCI6MTYwNjEwMDc1MX0 就是负载信息,加密后的json格式如下。负载信息一般由标准申明,公共声明,私有声明组成。
iss: jwt签发者
sub: jwt所面向的用户
aud: 接收jwt的一方
exp: jwt的过期时间,这个过期时间必须要大于签发时间
nbf: 定义在什么时间之前,该jwt都是不可用的
iat: jwt的签发时间
jti: jwt的唯一身份标识,主要用来作为一次性token,从而回避重放攻击。
公共的声明和私有的声明可以添加任何的信息,一般添加用户的相关信息或其他业务需要的必要信息。但不建议添加敏感信息,因为该部分在客户端可解密。
第三部分签名是由base64加密后的头部信息和负载信息以及secret组成的签名,签名算法是有头部信息定以的加密算法,一般是HMAC SHA256。然后头部,负载,签名三部分组成了token。
pomxml引入依赖
新增controller,提供token接口
CallbackService 生成token
返回的示例如下
定义自定义注解,在需要token校验的方法上加上即可
新增AuthenticationInterceptor对第三方请求进行拦截,实现HandlerInterceptor接口
注册AuthenticationInterceptor拦截器,对指定请求路径进行拦截
在此文中,我们大致了解了Token的定义,获取,校验等方法。此外,Token 的无状态,可扩展性,多平台跨域等特性,也让Token广泛应用在安全校验领域中。在接下来的几篇文章中,我将介绍如何使用Spring AOP进行加密,解密,验签等 *** 作。
参考:
>
正则表达式:(<=\"access_token\":)\"(+)\"
取第一捕获组的数据,就行了
完整的Java程序如下:
import javautilregexMatcher;import javautilregexPattern;
public class FFF {
public static void main(String[] args) {
String s="{\"access_token\":\"a33ae898c0a012d8033cb24df69c786b\",\"token_type\":\"client_credentials\",\"expires_in\":3600,\"example_parameter\":null}";
String regex="(<=\"access_token\":)\"(+)\"";
Pattern p=Patterncompile(regex);
Matcher m=pmatcher(s);
while(mfind()){
Systemoutprintln(mgroup(1));
}
}
}
运行结果:
a33ae898c0a012d8033cb24df69c786b
其实用json对象解析更简单,完整的Java程序如下:
import orgjsonJSONObject;public class FFF {
public static void main(String[] args) {
String s="{\"access_token\":\"a33ae898c0a012d8033cb24df69c786b\",\"token_type\":\"client_credentials\",\"expires_in\":3600,\"example_parameter\":null}";
JSONObject jsonObj = new JSONObject(s);
String str=(String) jsonObjget("access_token");
Systemoutprintln(str);
}
}
运行结果:
a33ae898c0a012d8033cb24df69c786b
前言
有些登录不是用cookie来验证的,是用token参数来判断是否登录。
token传参有两种一种是放在请求头里,本质上是跟cookie是一样的,只是换个单词而已;另外一种是在url请求参数里,这种更直观。
一、登录返回token
1如下图的这个登录,无cookies
2但是登录成功后有返回token
二、请求头带token
1登录成功后继续 *** 作其它页面,发现post请求的请求头,都会带token参数
2这种请求其实比cookie更简单,直接把登录后的token放到头部就行
三、token关联
1用脚本实现登录,获取token参数,获取后传参到请求头就可以了
2如果登录有验证码,前面的脚本登录步骤就省略了,自己手动登录后获取token
import requests
header = { # 登录抓包获取的头部
"User-Agent": "Mozilla/50 (Windows NT 100; WOW64; rv:440) Gecko/20100101 Firefox/440",
"Accept": " / ",
"Accept-Language": "zh-CN,zh;q=08,en-US;q=05,en;q=03",
"Accept-Encoding": "gzip, deflate",
"Content-Type": "application/x->
注:参考 Spring Security 整合 JSON Web Token(JWT) 提升 REST 安全性 ,写的特别全面,本文只是学习总结
基于token的鉴权机制
基于token的鉴权机制类似于>
使用JWT生成的token由三个部分构成: header payload signature,例如:
网址: >
以上就是关于zstack查看token值全部的内容,包括:zstack查看token值、Spring boot-手把手教你使用Token、如何用正则表达式提取url返回的jason数值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)