封装hutool工具生成JWT token

这篇具有很好参考价值的文章主要介绍了封装hutool工具生成JWT token。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

    private static final String KEY = "abcdef";

    /**
     * 生成token
     *
     * @param payload 可以存放用户的一些信息,不要存放敏感字段
     * @return
     */
    public static String createToken(Map<String, Object> payload) {
    	//十分重要,不禁用发布到生产环境无法验证
        GlobalBouncyCastleProvider.setUseBouncyCastle(false);
        DateTime now = DateTime.now();
        DateTime expTime = now.offsetNew(DateField.HOUR, 24);
        // 签发时间
        payload.put(RegisteredPayload.ISSUED_AT, now);
        // 过期时间
        payload.put(RegisteredPayload.EXPIRES_AT, expTime);
        // 生效时间
        payload.put(RegisteredPayload.NOT_BEFORE, now);
        String token = JWTUtil.createToken(payload, KEY.getBytes());
        LOG.info("生成JWT token:{}", token);
        return token;
    }

    /**
     * 检验token是否有效
     *
     * @param token
     * @return
     */
    public static boolean validate(String token) {
        GlobalBouncyCastleProvider.setUseBouncyCastle(false);
        try {
            JWT jwt = JWTUtil.parseToken(token).setKey(KEY.getBytes());
            // validate包含了verify
            boolean validate = jwt.validate(0);
            LOG.info("JWT token校验结果:{}", validate);
            return validate;
        } catch (Exception e) {
            log.info("检验token异常{}", e.getMessage());
            return false;
        }
    }

    /**
     * 获取payload里的内容
     *
     * @param token
     * @return
     */
    public static JSONObject getJSONObject(String token) {
        GlobalBouncyCastleProvider.setUseBouncyCastle(false);
        if (!validate(token)) {
            return new JSONObject();
        }
        JWT jwt = JWTUtil.parseToken(token).setKey(KEY.getBytes());
        JSONObject payloads = jwt.getPayloads();
        payloads.remove(RegisteredPayload.ISSUED_AT);
        payloads.remove(RegisteredPayload.EXPIRES_AT);
        payloads.remove(RegisteredPayload.NOT_BEFORE);
        LOG.info("根据token获取原始内容:{}", payloads);
        return payloads;
    }

这一步非常重要,否则部署项目会发生JCE cannot authenticate the provider BC
BouncyCastle类是一个加密的第三方类,关闭它使用jdk自带的加密算法
GlobalBouncyCastleProvider.setUseBouncyCastle(false);文章来源地址https://www.toymoban.com/news/detail-618088.html

到了这里,关于封装hutool工具生成JWT token的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Java系列】Hutool-JWT

    温馨提示:本文 hutool 版本 大于 5.7.0 Json web token (JWT) ,是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准(RFC 7519)。该 token 被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT 的声明一般被用来在身份提供者和服务提供者间传递被认证

    2024年04月10日
    浏览(70)
  • 使用JWT生成token实现权限验证

            点击登录按钮,后端验证账号密码是否通过,如果通过则生成token,把token发送给前端,前端保存到cookie(前后端分离是不能使用保存session,因为每次发送ajax请求响应后都会断开服务器,就会导致session生命周期就销毁掉,然后再发送请求时再重新连接服务器,s

    2023年04月08日
    浏览(31)
  • 在springBoot中使用JWT实现1.生成token,2.接收前端token进行身份认证,3.通过token获取对象信息

    第一步:引入依赖 第二步:创建工具类 在until包下创建TokenUntil类,用于生成token 利用id,和password作为参数生成token JWt为这个包下的对象 第三步:token使用 在向前端返回的数据对象中添加token属性  是serve层中调用工具类方法将生成的token放到返回的数据中 注意:这里获取到

    2024年02月04日
    浏览(44)
  • 使用hutool工具生成树形结构

    假设要构建一个菜单,可以实现智慧库房,菜单的样子如下: 那这种结构如何保存在数据库中呢?一般是这样的: ​ 每条数据根据 parentId 相互关联并表示层级关系, parentId 在这里也叫外键 id parentId name 1 0 智慧库房 2 1 RFID 3 1 智慧大屏 4 1 智能密集架 5 1 环境管控 使用步骤:

    2024年02月14日
    浏览(30)
  • 3-2. SpringBoot项目集成【用户身份认证】实战 【实战核心篇】基于JWT生成和校验Token

    书接上文 技术选型篇,我们做了【用户身份认证】的技术选型说明,对基于 Session、Token、JWT 的方案进行了详细的对比分析,详细说明了它们都是什么和各自的优缺点!这些是实战的基础,还没看过的同学,建议先看上文。最终采用的是目前流行的 基于JWT的Token用户身份认证

    2023年04月08日
    浏览(35)
  • 快速教你如何使用postman工具进行接口测试?(配置全局token、JWT可用)

    现在很多人都在使用前后端分离进行项目开发,那在后端开发过程中使用postman测试工具可快速便捷完成接口测试。但是在测试过程中,很多人发现因为JWT的鉴权,导致半个小时就需要更新一下token,让我们的测试变得复杂。 若是将token作为全局变量,每次都能够自动获取tok

    2024年02月15日
    浏览(38)
  • 常用工具类之使用hutool生成验证码

    1.1 pom文件中导入hutool-captcha依赖 💬 新建springboot项目,并在其pom.xml中导入hutool-captcha依赖: 1.2 创建前端页面与跳转页面 前端页面index.html 跳转页面success.html 1.3 实现后端代码 1.3.1 创建后端控制类生成验证码 💬 创建控制类CommonController类,一方面通过流的方式将随机生成的验

    2024年02月04日
    浏览(32)
  • 分布式环境集成JWT(Java Web Token)

    Token的引入:客户端向服务端请求数据时一般都会加入验证信息,比如客户端在请求的信息中携带用户名、密码,服务端会校验用户名和密码是否正确,校验通过响应该客户端请求。但是每次都携带用户名和密码无疑有些繁琐,而且也不安全,在这种背景下,Token便应运而生。

    2024年02月11日
    浏览(34)
  • java生成sm2使用hutool生成公钥私钥

    首先引入maven依赖 然后运行以下代码 就可以得到私钥和公钥 公钥提供给通讯方验签 下面是签名的代码 验签代码 加密 解密 好了,以上就是sm2util的使用介绍了,hutool还有很多强大的工具类,方便程序员们的调用

    2024年02月10日
    浏览(27)
  • 【Java 工具类 Hutool】项目中如何引入 Hutool 并正确使用它

    👉 博主介绍 : 博主从事应用安全和大数据领域,有8年研发经验,5年面试官经验,Java技术专家,WEB架构师,阿里云专家博主,华为云云享专家,51CTO 专家博主 ⛪️ 个人社区 :个人社区 💞 个人主页 :个人主页 🙉 初级进阶地址 : ✅ Java 初级进阶路线 🙉 八股文专题 :

    2024年02月03日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包