- 浏览: 182928 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (226)
- 链接数据库 (1)
- Linux下面安装tomcat步骤 (1)
- 数据库简单添加索引 (1)
- Ubuntu 16.04安装jdk步骤 (1)
- Ubuntu 16.04安装mysql链接工具workbench (1)
- Java基础 (1)
- Java 获取两个时间的时间查 如 1 天 2 小时 30 分钟 (1)
- jdbc链接增删该查 (1)
- springboot 跨域解决 (1)
- springboot如何读取配置文件(application.yml)中的属性值 (1)
- springboot配置redis (1)
- 数据库访问优化法则 (1)
- springboot 配置定时任务 (1)
- 使用Spring Boot上传文件 (1)
- Java并发编程:Callable、Future和FutureTask (1)
- springboot配置所有信息demo (1)
- 常用软件地址 (1)
- Java DateUtil时间大全 (1)
- Java DateUtil当天,本周,本月时间获取方法 (1)
- @Data的用法 (1)
- 身份证工具类 (1)
- springboot添加日志 (1)
- List集合中的对象按照某个字段去重实现 (1)
- JavaBean和Map转换封装类 (1)
- StringUtils工具类用法 (1)
- BigDecimal用户详情 (1)
- java常用集合总结 (1)
- openfile 插件开发步骤 (0)
- Linux rpc客户端步骤 (1)
- Java开发必会的Linux命令 (1)
- springboot配置拦截器,控制登录跳转 (1)
- springboot 异步调用的方法 (0)
- springboot如何读取配置文件test.properties (1)
- springboot 异步调用的方法 (1)
- HttpClient操作,HttpPost (1)
- HttpGet (1)
- HttpDelete (1)
- HttpPut (1)
- mybatis生成代码后,想用自己的关联查询demo (1)
- Arrays工具类十大常用方法 (1)
- 如何生成唯一订单号 (1)
- 订单号唯一性 (1)
- msyql lest的用法 (1)
- //循环递归删除 (0)
- 循环递归删除 (1)
- java 属性首字母大写返回json解决办法 (1)
- 根据两点间经纬度坐标(double值),计算两点间距离,单位为米 (1)
- 运用开发好的jar部署到linux服务中 (1)
- mybatis批量新增 (1)
- mybatis 增删该查demo,新手必看 (1)
- java中字符串查找一个字符串的个数几种方法 (1)
- @Select in 的用法 (1)
- Ubuntu 16.04使用ieda简单配置 (1)
- 统计一个字符串中相应字符出现的次数 (1)
- SimpleDateFormat同步的解决办法 (1)
- gradle打包springboot jar例子 (1)
- java 提取字符串中的数字 (1)
- springboot 对像异常处理,还可以作为全部异常处理 (1)
- 面试题 (0)
- Linux下面安装virtualBox (1)
- java带有效期的map (1)
- 2018年JAVA基础面试题和高级面试题总结 (1)
- mysql修改密码的方法 (1)
- 排名前 16 的 Java 工具类 (1)
- 最完整的Linux常用命令大全 (1)
- Mysql 开发标准规范 (1)
- idea 快捷键 (1)
- mysql 建立索引 (1)
- Java中判断字符串是否为数字的五种方法 (1)
- springboot集成redis (1)
- springboot异步调用demo (1)
- springboot2集成redis (1)
- springboot2集成Elasticsearch (1)
- java过滤敏感字体的方式 (1)
- 对象的值赋给另一个对象 (1)
- mybitse+pagehelper 的使用方法 (1)
- java时间的处理 (1)
- xshell5 下载地址 (1)
- springboot2集成Excel (1)
- 检查数组是否包含某个值的方法 (1)
- 关于Java代码优化的N条建议! (1)
- Java Map按Key值进行排序 (1)
- List进行排序 (1)
- Stream 完整实例 (1)
- StringUtils isNoneBlank和isAnyBlank——demo (1)
- vim最全常用命令 (1)
- JWT生成Token (1)
- 学习参看地址 (1)
- java初始化数据 (1)
- 简单json (1)
- 数据库脚本 (1)
- restTemplate http请求 (1)
- 学习网站 (1)
- JsonUtil (1)
- Rsa (1)
- BeanUtils的赋值方法比较 (1)
- HttpClientUtil (2)
- ValidUtils (0)
- 读取excel,批量插入库demo (1)
- springboot对redis封装使用 (1)
- java后端简答验证码 (1)
- java高级面试题及其答案 (1)
- 序列换成json时 (1)
- 将所有的long变成string (1)
- ControllerAdvice (0)
- RedisService 工具类 (1)
- Java常用正则表达式验证工具类RegexUtils (1)
- CollectionUtil (1)
- thrift使用 (1)
- springboot播客学习 (1)
- mybitse 批量更新 (1)
- https://www.cnblogs.com/cxiaocai/p/11715874.html (1)
- elasticsearch安装及其head步骤 (0)
- elasticsearch7.6.2安装及其head、kibana、ik分词器步骤 (0)
- elasticsearch7.6.2集成springboot (0)
- gradle仓库选址 (1)
- elasticsearch7.6.2集成springboot2.2.6---2 (1)
- elasticsearch7.6.2安装及其head、kibana、ik分词器步骤-----1 (1)
- elasticsearch7.6.2集成springboot2.2.6基本语法---3 (1)
- Jsoup (1)
- elasticsearch7.6.2集成springboot2.2.6----demo (1)
- mybatis官网地址 (1)
- springboot发送邮件到qq (1)
- navicat Premium 链接sql Server的方法 (1)
- 简单开发springboot搭建 (1)
- sqlServer 查询两个小时的sql语句 (1)
- BigDecimalUtil (1)
- 雪花算法生成id (1)
- JsonUtils (1)
- Spring Boot监控与管理的实现 (1)
- springboot 使用undertow启动,替换tomcat (1)
- RedisConfig配置使用 (1)
- RedisUtil (1)
- easypoi读取excel (1)
- easyexcel读取excel (0)
- easyexcel读取excel与下载 (1)
- 生成指定长度的随机数 (1)
- Spring Boot AOP实战 (1)
- fastjsonfastjson新手必看 (1)
- 获取IP地址 (1)
- CommonUtils (1)
- 5万字长文:Stream和Lambda表达式最佳实践-附PDF下载 (1)
- DateUtils 最新工具类 (1)
- screw的使用 (1)
- 15000 字的 SQL 语句大全 (1)
- hutool (1)
- PdfToWord (1)
- MySQL修改最大连接数 (1)
- MAP排序 (1)
- 归纳从文件中读取数据的六种方法-JAVA IO基础总结 (1)
- 天气 (1)
- Intellij IDEA中Mybatis Mapper自动注入警告的6种解决方案 (1)
- 全网最全编程学习网站汇总来了,还不赶快收藏 (1)
- win10 (0)
- 电脑知识 (0)
- util工具类 (1)
- ieda提示mapper报错 (1)
- zysnba (1)
- 自增方式 (1)
- mybits链表查询 (1)
- SpringBoot如何优雅的处理校验参数 (1)
- 参考记录 (1)
- 企业微信封装方法 (1)
- 二维码 (1)
- mysql简单创建索引 (1)
- msyql函数 (1)
- mybitse-plus多表查询demo (1)
- git 提交本地代码步骤 (1)
- gradle5.X以上lombok引入 (1)
- SpringBoot定时任务及Cron表达式详解 (1)
- Hutool工具集之DateUtil(日期时间工具)详解使用 (1)
- 对象属性为空字符串变成null (1)
- DateUtils 工具类 (0)
- face++照片不对工具类 (1)
- 判断某个值是否在list集合中的某个对象中存在 (1)
- mybatisplus时间更新操作 (1)
- Java8 List通用方法处理总结 (1)
- 阿斯蒂芬 (0)
- springboot多数据源配置 (0)
- MyBatis和MyBatis-Plus 官网地址 (1)
- jwt (0)
- java---ValidUtils (1)
- Java之下载网络图片到本地文件夹 (1)
- 初始化内容数据 (1)
- springboot启动指定端口和启动环境 (1)
- 根据生日计算年龄 (1)
- idea快捷键大全 (1)
- springboot数据验证例子 (1)
- springboot文章 (1)
- 获取当前时间,推迟一年 (0)
- 获取当前时间,推迟一周 推迟一年示例 (1)
- ResultBean返回对象 (1)
- SpringBoot注解最全详解 (1)
- JeecgBoot (1)
- 电脑优化 (0)
- 简单数据队列 (1)
- CacheUtil换成工具类 (0)
- CacheUtil缓存工具类 (0)
- xml和对象互转 (0)
- 导出word (0)
- 企业微信通过code获取用户基本信息 (1)
- Java开发中的一些小技巧 (1)
- 判断当前时间是否在一个时间区间例如8点:21点 (1)
- springboot 启动指定环境 (1)
- 打印springboot启动的环境 (1)
- 根据时间日期获取当天是周几 (1)
- LocalDateTimeToString (1)
- java导出word (1)
- java 对xml和对象互转 (1)
- java CacheUtil缓存工具类 (1)
- 史上最牛逼电脑优化,让电脑飞起来 (1)
- isEmpty 和 isBlank 的用法区别 (1)
- 根据图片url地址获取其流InputStream (1)
- springboot解决LocalDateTime (1)
- springboot配置文件list映射 (1)
- SpringBoot中必须掌握的45个注解 (1)
- sql 优化的 15 个小技巧 (1)
- Cron表达式 (1)
- 数据库创建时间和修改时间默认值 (1)
- 小程序解析手机号 (1)
- 小程序获取手机号 (0)
- java 获取resource下面的文件路径,springboot打成jar也可以使用 (1)
- 数据库字段不显示对象和swwager前段不显示 (1)
- java生成pdf (1)
- springboot 异步调用 (1)
- java获取时间段内的每一天 (1)
- hutool----DateUtil简单的时间 (1)
- java 8两个List集合取交集、并集、差集、去重并集 (1)
- 服务调用demo (1)
- hutool导入excel (1)
- hutool导出 (1)
- 切面日志 (1)
- 校验参数为空 (1)
- 两个集合对象某一个属性相匹配 (1)
- JAVA stream流详细教程 (1)
- 查看java进程的命令 (1)
- Java 保留两位小数 百分数 (1)
- freemarker读写word模板生成word文档 (1)
- springboot项目中,读取 resources 目录下的文件的9种方式 (1)
- Knife4j (1)
- Java8 获取两个List交集 (1)
- list泛型和list对象交集 (1)
- 未来7天过生日的孩子sql (1)
- 数据校验,全局异常 (1)
- 获取最近10天过生日的sql (1)
- 随机数 (1)
- Java获取两个日期的天数打印 (1)
- 通过时间获取星期几 (1)
- Java时间类型相互转化 (2)
- 小程序登录 (0)
最新评论
使用JWT核心代码:
引入所需jar
maven -----------------------------
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.7.0</version>
</dependency>
gradle-----------------------------------------
//jwt
compile('com.auth0:java-jwt:3.2.0')
compile('io.jsonwebtoken:jjwt:0.7.0')
新建一个类登录的
package com.zys.Jwt;
public class LoginUser {
private Integer id;
private String userName;
private boolean isLogin;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public boolean isLogin() {
return isLogin;
}
public void setLogin(boolean isLogin) {
this.isLogin = isLogin;
}
}
新建立
package com.zys.Jwt;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.lang3.time.DateUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.auth0.jwt.JWT;
import com.auth0.jwt.JWTCreator;
import com.auth0.jwt.JWTVerifier;
import com.auth0.jwt.algorithms.Algorithm;
import com.auth0.jwt.interfaces.Claim;
import com.auth0.jwt.interfaces.DecodedJWT;
public class JwtTokenUtil {
public static final String ISSUER = "test_user";
public static final Logger logger = LoggerFactory.getLogger(JwtTokenUtil.class);
/**
* 生成登陆token
*
* @param LoginUser
* @return
*/
public static String createLoginToken(LoginUser LoginUser) {
try {
Algorithm algorithm = Algorithm.HMAC256(LoginInfoConstants.TOKEN_SECURITY);
JWTCreator.Builder builder = JWT.create()
.withIssuer(ISSUER)
//设置过期时间为3个月
.withExpiresAt(DateUtils.addMonths(new Date(), 3));
if(LoginUser != null){
builder.withClaim(LoginInfoConstants.USER_ID, LoginUser.getId());
builder.withClaim(LoginInfoConstants.USER_NAME, LoginUser.getUserName());
builder.withClaim(LoginInfoConstants.IS_LOGIN, true);
}
return builder.sign(algorithm);
} catch (Exception e) {
logger.error("生成token失败,失败原因:{}", e);
}
return null;
}
/**
* 验证jwt,并返回数据LoginUser
*/
public static LoginUser verifyLoginToken(String token) {
Algorithm algorithm;
Map<String, Claim> map = new HashMap<String, Claim>();
LoginUser loginUser = new LoginUser();
try {
algorithm = Algorithm.HMAC256(LoginInfoConstants.TOKEN_SECURITY);
JWTVerifier verifier = JWT.require(algorithm).withIssuer(ISSUER).build();
DecodedJWT jwt = verifier.verify(token);
map = jwt.getClaims(loginUser.getId());
if(map.get(LoginInfoConstants.USER_ID) != null) {
loginUser.setId(map.get(LoginInfoConstants.USER_ID).asInt());
}
if(map.get(LoginInfoConstants.USER_NAME) != null) {
loginUser.setUserName(map.get(LoginInfoConstants.USER_NAME).asString());
}
loginUser.setLogin(map.get(LoginInfoConstants.IS_LOGIN).asBoolean());
} catch (Exception e) {
loginUser = null;
logger.error("解密token失败:{}", e);
}
return loginUser;
}
public static void main(String[] args) {
LoginUser loginUser = new LoginUser();
loginUser.setId(123456);
loginUser.setUserName("张三");
String token = createLoginToken(loginUser);
System.out.println("================="+token);
String token1=token;
LoginUser loginUserResult = JwtTokenUtil.verifyLoginToken(token1);
System.out.println(loginUserResult.getId());
System.out.println(loginUserResult.getUserName());
System.out.println(loginUserResult.isLogin());
}
}
系统常量
package com.zys.Jwt;
public class LoginInfoConstants {
/**用户id*/
public static final String USER_ID = "id";
/**
* 用户名
*/
public static final String USER_NAME = "userName";
/**
* 是否登陆
*/
public static final String IS_LOGIN = "isLogin";
/**
* token 名称
*/
public static final String TOKEN_NAME = "authorization";
/**
* jwt 加密串
*/
public final static String TOKEN_SECURITY = "token.security";
}
https://blog.csdn.net/qq_23112559/article/details/80222364 linux停止tomcat
http://cmsblogs.com/?p=2919
引入所需jar
maven -----------------------------
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.7.0</version>
</dependency>
gradle-----------------------------------------
//jwt
compile('com.auth0:java-jwt:3.2.0')
compile('io.jsonwebtoken:jjwt:0.7.0')
新建一个类登录的
package com.zys.Jwt;
public class LoginUser {
private Integer id;
private String userName;
private boolean isLogin;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public boolean isLogin() {
return isLogin;
}
public void setLogin(boolean isLogin) {
this.isLogin = isLogin;
}
}
新建立
package com.zys.Jwt;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.lang3.time.DateUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.auth0.jwt.JWT;
import com.auth0.jwt.JWTCreator;
import com.auth0.jwt.JWTVerifier;
import com.auth0.jwt.algorithms.Algorithm;
import com.auth0.jwt.interfaces.Claim;
import com.auth0.jwt.interfaces.DecodedJWT;
public class JwtTokenUtil {
public static final String ISSUER = "test_user";
public static final Logger logger = LoggerFactory.getLogger(JwtTokenUtil.class);
/**
* 生成登陆token
*
* @param LoginUser
* @return
*/
public static String createLoginToken(LoginUser LoginUser) {
try {
Algorithm algorithm = Algorithm.HMAC256(LoginInfoConstants.TOKEN_SECURITY);
JWTCreator.Builder builder = JWT.create()
.withIssuer(ISSUER)
//设置过期时间为3个月
.withExpiresAt(DateUtils.addMonths(new Date(), 3));
if(LoginUser != null){
builder.withClaim(LoginInfoConstants.USER_ID, LoginUser.getId());
builder.withClaim(LoginInfoConstants.USER_NAME, LoginUser.getUserName());
builder.withClaim(LoginInfoConstants.IS_LOGIN, true);
}
return builder.sign(algorithm);
} catch (Exception e) {
logger.error("生成token失败,失败原因:{}", e);
}
return null;
}
/**
* 验证jwt,并返回数据LoginUser
*/
public static LoginUser verifyLoginToken(String token) {
Algorithm algorithm;
Map<String, Claim> map = new HashMap<String, Claim>();
LoginUser loginUser = new LoginUser();
try {
algorithm = Algorithm.HMAC256(LoginInfoConstants.TOKEN_SECURITY);
JWTVerifier verifier = JWT.require(algorithm).withIssuer(ISSUER).build();
DecodedJWT jwt = verifier.verify(token);
map = jwt.getClaims(loginUser.getId());
if(map.get(LoginInfoConstants.USER_ID) != null) {
loginUser.setId(map.get(LoginInfoConstants.USER_ID).asInt());
}
if(map.get(LoginInfoConstants.USER_NAME) != null) {
loginUser.setUserName(map.get(LoginInfoConstants.USER_NAME).asString());
}
loginUser.setLogin(map.get(LoginInfoConstants.IS_LOGIN).asBoolean());
} catch (Exception e) {
loginUser = null;
logger.error("解密token失败:{}", e);
}
return loginUser;
}
public static void main(String[] args) {
LoginUser loginUser = new LoginUser();
loginUser.setId(123456);
loginUser.setUserName("张三");
String token = createLoginToken(loginUser);
System.out.println("================="+token);
String token1=token;
LoginUser loginUserResult = JwtTokenUtil.verifyLoginToken(token1);
System.out.println(loginUserResult.getId());
System.out.println(loginUserResult.getUserName());
System.out.println(loginUserResult.isLogin());
}
}
系统常量
package com.zys.Jwt;
public class LoginInfoConstants {
/**用户id*/
public static final String USER_ID = "id";
/**
* 用户名
*/
public static final String USER_NAME = "userName";
/**
* 是否登陆
*/
public static final String IS_LOGIN = "isLogin";
/**
* token 名称
*/
public static final String TOKEN_NAME = "authorization";
/**
* jwt 加密串
*/
public final static String TOKEN_SECURITY = "token.security";
}
https://blog.csdn.net/qq_23112559/article/details/80222364 linux停止tomcat
http://cmsblogs.com/?p=2919
相关推荐
4. **JWT生成**:生成JWT时,你需要提供一个签发者(issuer, `iss`)、接收者(audience, `aud`)、有效时间(expiration time, `exp`)以及其他自定义声明。例如,使用`JwtSecurityToken`类,设置这些参数并生成...
本实战验证将探讨如何在Java环境中使用JWT生成和验证Token。 1. **JWT 结构** JWT由三部分组成:头部(Header)、载荷(Payload)和签名(Signature)。头部和载荷是JSON对象,经过Base64编码,而签名则用于验证...
JWT 生成 Token 及验证 JWT(JSON Web Token)是一种用于双方之间传递安全信息的简洁、URL 安全的表述性声明规范。JWT 作为一个开放的标准(RFC 7519),定义了一种简洁的、自包含的方法用于通信双方之间以 Json ...
5. JWT生成: 在代码中,使用特定的库(如Java的jjwt、Node.js的jsonwebtoken或.NET的JWT.NET等)来生成JWT。首先,构造头部和载荷的JSON对象,然后进行Base64编码。接着,使用指定的算法和密钥生成签名。最后,将...
例如,在Web应用中,用户登录成功后,服务器端会生成一个包含用户信息和过期时间的JWT Token,并将其返回给客户端。客户端随后可以在请求中携带这个Token,以证明用户的身份。 此外,通过在Payload中使用私有声明,...
Java中使用JWT生成Token进行接口鉴权实现方法 Java中使用JWT生成Token进行接口鉴权实现方法是当前最流行的鉴权方式之一。通过本文,读者可以了解到使用JWT生成Token进行接口鉴权的详细实现方法。 什么是JWT? JWT...
SpringBoot集成JWT生成token及校验方法过程解析 本文主要介绍了SpringBoot集成JWT生成token及校验方法的过程解析,通过示例代码详细介绍了JWT token的生成和校验过程,为读者提供了详细的Reference和学习价值。 一...
Java Web Token(JWT)是一种轻量级的身份验证和授权机制,广泛应用于移动应用与服务器之间的交互。JWT允许在用户身份验证后将权限信息安全地编码为一个字符串,并在客户端和服务端之间传递,无需存储session信息在...
生成Token时,通常需要设置一个密钥(secret key)和一些载荷(payload),载荷可以包含用户的ID、角色等信息。通过将这些数据加密,服务器能够创建一个安全的、可验证的身份凭证。 2. **验证Token**:验证JWT ...
本篇文章将详细探讨C#中生成Token的基本概念、常用库以及如何实现Token验证。 一、JWT(JSON Web Tokens)介绍 JWT是一种轻量级的身份认证协议,它允许服务端签发一个JSON格式的Token,包含了用户的相关信息。这个...
7. 示例代码:创建一个自定义JWT处理器,继承自`JwtSecurityTokenHandler`,并重写`CanReadToken`和`ValidateToken`方法,以支持刷新令牌的验证和生成。在Startup.cs中配置认证中间件,并设置相关的JWT选项,如...
使用django-rest-framework-jwt在django中创建和认证token,用于在移动端来认证和用户,本文通过自己编写模型来实现根据用户来生成token,在请求头中添加Authentication来进行认证,保持登录状态。可以直接使用,...
JSON Web Token(JWT)是一种轻量级的身份验证和授权机制,广泛用于现代Web应用程序和API。这个教程将帮助您理解JWT的工作原理,并提供实践指导,确保您的Web应用的安全性。 一、JWT简介 JWT由三个部分组成:头部...
2. **JWT生成**:服务器使用私钥对Header和Payload进行编码(Base64URL无填充编码),然后将这两个编码后的字符串用"."连接。接着,使用私钥对整个字符串进行签名,生成Signature。这样就形成了完整的JWT。 3. **...
- 使用`JwtSecurityTokenHandler`类,结合`ClaimsPrincipal`对象和密钥,可以生成JWT Token。Claims代表用户的属性,如用户ID、角色等。 - 生成的Token应安全地发送给客户端,通常在登录成功后返回。 4. **验证...
在登录方法中,我们使用JwtUtil.sign()方法来生成Token,并将其存储到Redis中。在拦截器中,我们使用JwtUtil.verify()方法来验证Token的有效期,如果 Token 已经过期,则重新登录。 优点和缺点 在线刷新Token的方式...