系统微服务签发token
一、JwtUtil 工具类
package com.changgou.system.utils;/*** @author :lijunxuan* @date :Created in 2019/7/11 17:14* @description :* @version: 1.0*/import io.jsonwebtoken.JwtBuilder;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import java.util.Base64;
import java.util.Date;/*** JWT工具类*/
public class JwtUtil {//有效期为public static final Long JWT_TTL = 3600000L;// 60 * 60 *1000 一个小时//设置秘钥明文public static final String JWT_KEY = "william";/*** 创建token* @param id* @param subject* @param ttlMillis* @return*/public static String createJWT(String id, String subject, Long ttlMillis) {//定义jwt签名的算法SignatureAlgorithm signatureAlgorithm = SignatureAlgorithm.HS256;//当前时间long nowMillis = System.currentTimeMillis();//将当前时间转换日期类型Date now = new Date(nowMillis);//将当前时间+超时时间if(ttlMillis==null){ttlMillis=JwtUtil.JWT_TTL;}long expMillis = nowMillis + ttlMillis;//将时间定义为date类型Date expDate = new Date(expMillis);//获取签名时候使用的密钥SecretKey secretKey = generalKey();JwtBuilder builder = Jwts.builder().setId(id) //唯一的ID.setSubject(subject) // 主题 可以是JSON数据.setIssuer("admin") // 签发者.setIssuedAt(now) // 签发时间.signWith(signatureAlgorithm, secretKey) //使用HS256对称加密算法签名, 第二个参数为秘钥.setExpiration(expDate);// 设置过期时间return builder.compact();}/*** 生成加密后的秘钥 secretKey* @return*/public static SecretKey generalKey() {byte[] encodedKey = Base64.getDecoder().decode(JwtUtil.JWT_KEY);SecretKey key = new SecretKeySpec(encodedKey, 0, encodedKey.length, "AES");return key;}
}
二、修改AdminController的login方法, 用户登录成功 则 签发TOKEN
/*** 管理员登录* @param admin* @return*/@PostMapping(value = "/login")public Result login(@RequestBody Admin admin){boolean isLogin =adminService.isLogin(admin);HashMap<String, String> ResultMap = new HashMap<>();if (isLogin){//生成JWt令牌String token = JwtUtil.createJWT(UUID.randomUUID().toString(), admin.getLoginName(), null);ResultMap.put("loginName",admin.getLoginName());ResultMap.put("token",token);return new Result(true,StatusCode.OK,"登录成功",ResultMap);}else {return new Result(false,StatusCode.ERROR,"登录失败");}}
三、测试结果
系统微服务签发token相关推荐
- 自动匹配未认领订单编号_海量订单系统微服务开发:使用MongoDB支持海量数据...
海量订单系统微服务开发 订单系统是电商平台中一个非常重要的组成部分,而且它还是一个具有巨大流量和高并发访问的系统,与订单相关的服务涉及库存.支付.物流等.在设计订单系统时,我们选择使用支持海量数据的N ...
- Java生鲜电商平台-秒杀系统微服务架构设计与源码解析实战
Java生鲜电商平台-秒杀系统微服务架构设计与源码解析实战 Java生鲜电商平台- 什么是秒杀 通俗一点讲就是网络商家为促销等目的组织的网上限时抢购活动 比如说京东秒杀,就是一种定时定量秒杀,在规定 ...
- 客服系统微服务架构的演化
客服系统微服务架构的演化 微服务要求 服务协作 服务治理 服务治理 1 怀疑第三方 坚持一条信念:"所有第三方服务都不可靠",不管第三方什么天花乱坠的承诺.基于这样的信念,我们需要 ...
- 【仅售9.9元】石杉老师最新出品:C2C电商系统微服务架构120天实战训练营
石杉老师最新出品:<C2C 电商系统微服务架构 120 天实战训练营>,长按扫描下方二维码了解: 微服务架构是当今架构领域最热的话题之一,也是互联网大厂必问的技术.掌握微服务架构技术栈相关 ...
- 电商平台 高并发 微服务 方案_Java生鲜电商平台-秒杀系统微服务架构设计与源码解析实战...
Java生鲜电商平台- 什么是秒杀 通俗一点讲就是网络商家为促销等目的组织的网上限时抢购活动 比如说京东秒杀,就是一种定时定量秒杀,在规定的时间内,无论商品是否秒杀完毕,该场次的秒杀活动都会结束.这种 ...
- 微信10亿日活场景下,后台系统微服务架构实践
01 微信发展主要的技术里程碑 微信在2011年1月21日发布了1.0版本,以即时消息为主:2011年5月上线了语音对讲.查看附近的人:2012年4年发布了里程碑式的朋友圈功能:2013年游戏中心.表 ...
- java微服务电商系统,JavaEE 电商系统微服务开发骨架(Spring Cloud版)
Spring Boot - Spring Cloud 一个基于Spring Boot.Spring Cloud的项目,用来快速搭建电商项目微服务骨架. 说明:所有的功能都没有做参数强校验,也不考虑各种 ...
- 微信架构总监:微信10亿日活场景下,后台系统微服务架构实践 15页ppt全解
01 微信发展主要的技术里程碑 微信在2011年1月21日发布了1.0版本,以即时消息为主:2011年5月上线了语音对讲.查看附近的人:2012年4年发布了里程碑式的朋友圈功能:2013年游戏中心.表 ...
- 老系统微服务改造经验谈
微服务是当下最流行的应用架构了,它跟容器云.DevOps 合称新时代三剑客,帮我们化解业务发展过快导致的产品迭代压力,让我们有自由选择最适合自己团队的技术栈,让系统能够承载互联网海量用户的访问.近些年 ...
最新文章
- 转:动态链接库的全局变量问题
- matlab在图像调用Gabor滤波
- C# 对Outlook联系人的增、删、查
- Win8 Metro(C#)数字图像处理--2.35图像肤色检测算法
- python 示例_Python日历类| yeardayscalendar()方法与示例
- Objective-C学习笔记(一)–类
- 动态规划——矩阵连乘(算法设计课题)
- 深入理解SpringBoot(2)
- 微课|中学生可以这样学Python(1.2节):IDLE环境使用简介
- 动态ip、静态ip、pppoe拨号的区别
- 不干胶设计用什么软件制作_用什么软件制作抖音短视频会比较好?
- mysql 中like怎么用_mysql中like怎么用?
- 计算机操作系统答案(完整版)
- Java2022面试题集锦
- AppScan-Authentication Bypass Using HTTP Verb Tampering
- linux系统的python版本_Linux系统下多版本Python管理
- 依行科技日常实习面经
- mac下配置subl启动sublime text 编辑器
- 电脑鼠标箭头一直转圈的解决办法
- c语言中的各种变量是如何存储的(-)
热门文章
- 安装openstack_午餐前如何安装OpenStack Cloud
- sso集成shiro_Keycloak SSO集成到jBPM和Drools Workbench中
- aws sqs_JMS和AWS SQS的更多高级内容
- Apache Camel 3.2 – Camel的无反射配置
- J2Pay –完整示例
- 初学者指南:如何为Red Hat Process Automation Manager配置电子邮件服务任务
- mockito 静态方法_Mockito –带有注释和静态方法的额外接口
- 使用Logstash,JDBC将数据聚合并索引到Elasticsearch中
- gwt格式_GWT –利弊
- 在NetBeans,Eclipse,IntelliJ,OpenShift和Maven上使用WildFly 9