TokenUtil

TokenUtil2.java 这个工具类可以直接将一个对象加密为token字符串,反之可以将一个有效token解密并返回直接类型的对象 立即下载


import cn.hutool.core.util.BooleanUtil;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;

import java.time.LocalDateTime;
import java.util.concurrent.TimeUnit;


@Slf4j
public class AzueTokenUtil {

    private static final String AZURE_TOKEN_KEY = "azure:token:";

    private static final String AZURE_TOKEN_LOCK = "azure:lock:";


    private static AzureStorageConfig config = SpringUtilsAuTo.getBean(AzureStorageConfig.class);

    private static final int duration = 3;


    public static String getAzureToken(String containerName){
        //查到token在有效期内直接返回,逻辑判断提前30分钟过期
        Object azureTokenStr = RedisUtils.get(AZURE_TOKEN_KEY+containerName);
        if(azureTokenStr != null && StringUtils.isNotBlank(azureTokenStr.toString())){
            AzureToken azureToken = JSONObject.parseObject(azureTokenStr.toString(), AzureToken.class);
            if(azureToken.getExpireTime().isAfter(LocalDateTime.now().plusHours(1L))){
                return azureToken.getToken();
            }
        }
        //如果查询token为空或者token过期更新redis中的token
        if(tryLock(AZURE_TOKEN_LOCK+containerName)){
            try {
                //获取azuretoken并写入redis
                String sasToken = BlobHelper.getSasToken(containerName,config);
                AzureToken azureToken = new AzureToken();
                azureToken.setToken(sasToken);
                azureToken.setExpireTime(LocalDateTime.now().plusDays(duration));
                String redisJson = JSONObject.toJSONString(azureToken);
                RedisUtils.set(AZURE_TOKEN_KEY+containerName,redisJson,duration,TimeUnit.DAYS);
            } catch (Exception e) {
                log.error("azure获取文件token" + e.getMessage());
            } finally {
                unLock(AZURE_TOKEN_LOCK+containerName);
            }
        }
        return getAzureToken(containerName);
    }

    static boolean tryLock(String key){
        Boolean flag = RedisUtils.setIfAbsent(key, "1", 10, TimeUnit.SECONDS);
        return BooleanUtil.isTrue(flag);
    }

    static boolean unLock(String key){
        return RedisUtils.del(key);
    }
}

避坑指南:Spring3集成OpenAPI时泛型响应失效的3种解决方案 本文深入探讨了Spring3集成OpenAPI时泛型响应失效的问题,提供了三种实用解决方案:移除@Schema注解、使用@ArraySchema包装泛型以及自定义Schema处理器。针对不同项目规模,详细分析了各方案的适用场景、优缺点及性能影响,帮助开发者高效生成准确的接口文档,提升前后端协作效率。 阅读详情

相关推荐

Qt自带绘图与GDI+绘图方式比较_gdi+实时绘制qt(2)

2、GDI+是Windows操作系统中的图形设备接口,它提供了一套用于绘制图形的API,包括了图形渲染、图形变换、图形剪切、图形填充等功能,使开发者可以快速地开发出各种类型的图形应用程序。1、Qt是一个跨平台的C++应用程序框架,它提供了一套用于GUI编程的类库,包括了绘图、网络、XML、数据库、多线程等模块,使开发者可以快速地开发出高质量的跨平台应用程序。Qt提供了一套用于绘图的类库,包括了QPainter、QPen、QBrush等类,使开发者可以快速地进行图形绘制。

qq_17136213的博客 918

TokenUtils工具类

token生成和校验 package com.crm.CLdriving.util.token; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; /** * token生成和校验 * @author ouyangjun */ public class TokenUtils { ...

Kurumi 6026

Ubuntu22.04安装搜狗输入法踩坑实录:从依赖报错到完美解决的完整指南

本文详细解析了在Ubuntu 22.04系统上安装搜狗拼音输入法的完整流程,从解决依赖报错到配置fcitx框架,再到最终优化使用体验。针对常见的dpkg安装错误和fcitx冲突问题,提供了实用的解决方案和命令,帮助用户顺利完成安装并享受流畅的中文输入体验。

palm99的专栏 974

TokenUtil工具类(生成token和解析token)

public class TokenUtil { public static String createToken(String username, Boolean isRefreshToken) { try{ String key; Integer expireHour; if(isRefreshToken) { key = PropertyUtil.getProp.

yujiubo2008的专栏 2365

CODESYS Softmotion(一)功能介绍

一、CODESYS SoftMotion RTE SL产品 1.1 CODESYS Runtime SL 产品家族介绍 目前支持的主流厂商的硬件产品,让部署在上面的成为实时设备。 对于Windows系统,根据需求选择对应的Runtime: RTE极大的提高了实时性,适合进行运动控制,同时RTE还支持了多个主从站协议: 还可以选择可选的功能(Single License): RTE对硬件和系统有要求,如果你需要硬件功能,那么网卡会有最低要求。 1.2 RTE的下载和安装 在官网http://codes

Fishfishfishfishcat 2万+

EZ-USB-FX3 slavefifo调试

最近使用fx3-usb-3.0调试slave fifo的传输,期间遇到许多难以理解的问题。在这里分享给大家,希望可以少走一些弯路,我自己是这样走过来的。 1,首先去官网下载原始的参考设计,并安装所提供的SDK软件:FX3SDKSetup_1.3.4.exe 2,接着把参考设计文档AN65974阅读一遍,分别创建新的SDK工程和FPGA工程。如果使用的原厂的开发板,那么可以按照文档提示,可以很顺畅的跑完整过测试。否则需要匹配自己的硬件,做针对性的更改和移植,而我走的是后一条路,于是开始了漫长的调试之路。.

YDY5659150的专栏 3632

JWT实例TokenUtils

/** * <p>Title: TokenUtils.java</p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2017</p> * <p>Company: www.yky.com</p> * @author wan...

chuixue24的博客 2965

CST-Python(Pycharm如何与CST联合仿真,获取S参数)

我们想使用Python与CST联合仿真,其实是不需要自己下载Python的,因为CST在下载的时候就自带了Python3.6,我们只需要找到并将软件的环境设置到相应位置,即可联合仿真。(我的保存路径为D:\Program Files (x86)\CST Studio Suite 2020,在寻找时可以将前面切换成自己的保存路径,后面不需要修改)在CST帮助文档(打开CST软件,按F11即可直接访问帮助文档)里面,进行如下操作,便可以看到CST适配的Python版本为Python3.6!

weixin_52696285的博客 5652

工具类2 百分百TokenUtil

package com.tqdk.house.util.moreutils; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import com.auth0....

qq_42666729的博客 704

996引擎 - 读写变量性能测试

单轮100万次读写,取3轮平均耗时(毫秒),有效读取率均为100%,数值越小性能越优。

灵台方寸山斜月三星洞 246

【一看就会】Autoware.universe中静态绕障路线的生成逻辑

在路径行为规划中,前期根据地图和起点终点,生成了一组连续可行的路径段序列(lanelets),然后后续路径行为规划,又会进行起始点,终止点,避障绕障路径的路径规划,并且会调用route_handler中的函数,进行中心线生成,最后生成路径,后续再给速度行为规划进行速度规划。在autoware.universe的规划中,是基于规则的规划,而其中的规则又是为了解决不同场景的。而这些场景,大部分是为了解决路上障碍物(静态、动态、行人、车辆等等)。

weixin_48386130的博客 321

基于JWT的TokenUtil

【代码】依赖JWT的TokenUtil。

2401_84049789的博客 176

NVIDIA Isaac ROS - 入门教程(一)

欢迎访问 Isaac ROS,这是一套硬件加速、高性能、低延迟的 ROS 2 软件包,用于制造自主机器人,充分利用 Jetson 和其他英伟达平台的强大功能。英伟达 Jetson 平台运行在基于 Ubuntu Linux 的 JetPack 操作系统上。JetPack 5.x 是在 Ubuntu 20.04 Focal 的基础上构建的,这意味着由 ROS 2 Buildfarm 为 Ubuntu 22.04 Jammy 构建的 ROS 2 Humble 的 Debian 包不受支持。由于官方 ROS 2 B

机器人控制与仿真应用 5723

TokenUtil工具类

package com.ddtkj.common.util; import java.util.UUID; import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFact...

River741132472的博客 5192

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

tokenutil php,集成JWT-实现token用户身份验证机制

## 1. 引入php-jwt包composer require firebase/php-jwt## 2. 生成token```//生成tokenpublic function createJwt($userId = 'zq'){$key = md5('zq8876!@!'); //jwt的签发密钥,验证token的时候需要用到$time = time(); //签发时间$expire = $t...

weixin_35498756的博客 269

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

SpringSecurity+JWT认证流程解析,给2024的Java一些建议

@Bean} 复制代码`这个Bean是不必可少的,在认证操作时会使用我们定义的这个加密器,如果没有则会出现异常。`@Bean} 复制代码`这里将自带的声明成Bean,声明它的作用是用它帮我们进行认证操作,调用这个Bean的方法会由自动帮我们做认证。

m0_62261166的博客 878

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Token工具类

【代码】Token工具类。

我热爱学习,也乐于分享。无论是科技前沿的洞见,还是生活中的小技巧,我都会在这里与你分享。我相信,知识就是力量,而分享则能让这份力量得到更好的传递。 340

【实现方案】Springboot整合token的权限管理实现(一)—— 生成并发送 token

前置说明 最近在写一个 Springboot + vue 的后台管理版面,对相关知识点与实现进行记录。 本文记录前端向后端发送登录请求后,后端生成token,并存放在cookie中,返回到前端的过程。 代码示例 一、Maven依赖 <parent> <groupId>org.springframework.boot</groupId> ...

weixin_43742184的博客 2727

基于jwt插件的Token的使用

基于jwt插件的Token的使用 pom.xml文件中先导入jwt插件 <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> <version>0.6.0</version> </dependency> 建立TokenUtil工具包 package com.soecode.

qq_43681850的博客 412

SpringBoot 3.2.1 + SpringSecurity 3.2.1 + JWT 实现登录鉴权

文档已验证, 非垃圾文, 欢迎各位大佬斧正.

ICanForYou的博客 886

SpringSecurity的使用:为我们应用增加安全防护

作为一名Java开发者,提起权限相关的功能,大家应该都知道Shiro和SpringSecurity两个安全框架。这两个安全框架的使用者都比较多,两者各有千秋,做技术选型选型综合考虑选择合适自己团队的就行。SpringSecurity提供了强大的身份认证和授权功能,其作为Spring生态中的一个模块,可以做到与其他组件的无缝集成。在本篇文章中我会介绍下在项目中如何实现SpringSecurity+JWT实现项目的登录认证及授权的功能。项目环境如下:在开始代码展示前,我们先介绍下前后端的交互流程,如下了解了交互

mifffy_java的博客 945

java.lang.NullPointerException at org.springframework.data.redis.core.Abstr... springboot整合redis报错

java.lang.NullPointerException at org.springframework.data.redis.core.Abstr... springboot整合redis以后向redis写入值突然报空指针异常 我的tokenUtil类里的方法全部是用静态方法写的,网上有人说把 @Autowired private RedisTemplate<String, String> redisTemplate; 里面的@Autowired更改为@Resource,但是我的问.

zjjhwzl的博客 1640

Springboot实现jwt的token验证(超简单)

超简单的jwt验证token,直接复制粘贴即可使用!

weixin_42966151的博客 1047

springboot整合jwt(有理解不到位的地方欢迎指出谢谢!)

*** 全局异常* 这里的 Result 是自己创建的返回参数的格式*/@Getter/*** 状态码* 用lombok注解声明get方法,方便全局异常类获取自己返回的状态码*/super(msg);super(msg);/*** jwt 拦截过滤器* 拦截规则*/@Resource@Override// 从请求头获取token// 如果token 为空、null、""这三种情况// 前端可能 把token放请求参数里。

Asd1659841663的博客 445

jwt+token+登录

TokenUtilWebConfigTokenKey未登录。

A 1025

Springboot 自定义注解实现自动登录功能

LZ今天练手写一个自动登录的注解。效仿了一些博主,使用的是spring的AOP特性。 接下来是源码 注解类: 注解类切面 TokenUtil是一个token生成的工具。 大家可以自己定义一个只要返回的结果一致就行。 随后只要将@LogRequried注解在你需要的方法上使用就可以了 这一你就可以实现当我初次打开LZ的追剧网站时,如果携带了这个accesstoken的话,我...

qq_32302897的博客 3503
上一篇: 【无标题】mybatis 拦截器,保存mdl操作日志
下一篇: RedisUtils
ole_triangle_java
博客等级 码龄10年 82粉丝 83原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值