SSO 系统设计_token 生成

news2024/9/21 11:17:28

SSO 系统设计_token 生成

  • 目录
    • 概述
      • 需求:
    • 设计思路
    • 实现思路分析
      • 1.增加依赖
      • 2.代码编写
      • 3.测试
  • 参考资料和推荐阅读

Survive by day and develop by night.
talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,challenge Survive.
happy for hardess to solve denpendies.

目录

在这里插入图片描述

概述

需求:

我们知道token 就是个字符串之类的,所以我们采用如下生成:
1.增加依赖
2. 代码编写
3. 测试

设计思路

实现思路分析

1.增加依赖


        <dependency>
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt</artifactId>
            <version>0.9.1</version>
        </dependency>
        <dependency>
            <groupId>com.auth0</groupId>
            <artifactId>java-jwt</artifactId>
            <version>3.4.0</version>
        </dependency>



        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
            <version>2.3.0</version>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-impl</artifactId>
            <version>2.3.0</version>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-core</artifactId>
            <version>2.3.0</version>
        </dependency>
        <dependency>
            <groupId>javax.activation</groupId>
            <artifactId>activation</artifactId>
            <version>1.1.1</version>
        </dependency>

2.代码编写

package entity;

public class UserEntity {

    private  String name;
    private String  id;
    private String phone;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }
}

public String getToken(UserEntity userEntity ) {
        //设置算法为HS256
        SignatureAlgorithm signatureAlgorithm = SignatureAlgorithm.HS256;
        Date now = new Date(System.currentTimeMillis());
        JwtBuilder builder = Jwts.builder()
                //设置header
                .setHeaderParam("typ", "JWT")
                .setHeaderParam("alg", "HS256")
                //设置iat
                .setIssuedAt(now)
                //设置payload的键值对
                .claim("name", userEntity.getName())
                .claim("id", userEntity.getId())
                .claim("phone", userEntity.getPhone())
                .setIssuer("AuroraLove")
                //签名,需要算法和key
                .signWith(signatureAlgorithm, SECRET_KEY);
        String jwt = builder.compact();
        return jwt;
    }

3.测试

    @Test
    public  void genTOken(){

        SsoServer ssoServer=new SsoServer();
        UserEntity userEntity=new UserEntity();
        userEntity.setId("1");
        userEntity.setName("2");
        userEntity.setPhone("3");
        System.out.println( ssoServer.getToken(userEntity));
    }

在这里插入图片描述

参考资料和推荐阅读

参考资料
官方文档
开源社区
博客文章
书籍推荐

  1. 暂无

欢迎阅读,各位老铁,如果对你有帮助,点个赞加个关注呗!同时,期望各位大佬的批评指正~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1135325.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IT行业职场走向,哪些方向更有就业前景?——IT行业的发展现状及趋势探析

文章目录 每日一句正能量前言IT技术发展背景及历程IT行业的就业方向有哪些&#xff1f;分享在IT行业的就业经历后记 每日一句正能量 如果你认为你自己无法控制自己的情绪&#xff0c;这就是一种极为严重的不良暗示。 前言 在信息量浩如烟海、星罗棋布的大数据时代&#xff0c;…

深度学习第四阶段:NLP第二章 Transformer学习笔记

引言1&#xff1a;什么是注意力机制 参考我的一篇文章&#xff1a;https://blog.csdn.net/weixin_42110638/article/details/134011134?csdn_share_tail%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22134011134%22%2C%22source%22%3A%22weixin…

优优嗨聚集团:抖音外卖,美食与文化的完美结合

在今天的数字化时代&#xff0c;外卖行业正在迅速发展&#xff0c;而抖音外卖的出现&#xff0c;更是引领了外卖行业的新潮流。抖音外卖不仅满足了人们对美食的追求&#xff0c;还让人们在享受美食的同时&#xff0c;感受到了浓厚的文化氛围。 抖音外卖是抖音平台推出的一项全新…

RISC Zero zkVM性能指标

1. 引言 对应代码&#xff1a; https://github.com/risc0/risc0&#xff08;C和Rust&#xff09; 运行如下指令&#xff0c;进行性能评估&#xff1a; cargo run -r --example loop //CPU cargo run -r -F metal --example loop //Metal GPU cargo run -r -F cuda --exampl…

Seata入门系列【14】AT模式源码分析之二阶段全局提交和全局回滚

1 全局提交 1.1 前言 在之前我们分析了&#xff0c;开启全局事务&#xff0c;和业务执行时是如何校验全局锁和提交本地事务的&#xff0c;接下来分析下是如何进行全局提交的。 1.2 二阶段全局提交 核心代码还是在TransactionalTemplate类中&#xff0c;当TC 没有收到异常时…

2023高频前端面试题-http

1. HTTP有哪些⽅法&#xff1f; HTTP 1.0 标准中&#xff0c;定义了3种请求⽅法&#xff1a;GET、POST、HEAD HTTP 1.1 标准中&#xff0c;新增了请求⽅法&#xff1a;PUT、PATCH、DELETE、OPTIONS、TRACE、CONNECT 2. 各个HTTP方法的具体作用是什么&#xff1f; 方法功能G…

论坛议程|COSCon'23青少年开源与开源教育(E)

众多开源爱好者翘首期盼的开源盛会&#xff1a;第八届中国开源年会&#xff08;COSCon23&#xff09;将于 10月28-29日在四川成都市高新区菁蓉汇举办。本次大会的主题是&#xff1a;“开源&#xff1a;川流不息、山海相映”&#xff01;各位新老朋友们&#xff0c;欢迎到成都&a…

OceanGPT:面向海洋科学的大型语言模型初探

海洋覆盖了约 71% 的地球表面&#xff0c;对全球的气候调节、天气模式、生物多样性以及人类的经济发展都扮演着至关重要的角色。海洋科学专注于研究海洋的自然特性、其变化规律以及与海洋资源开发和利用相关的理论、方法与应用。 本文介绍一个为海洋领域打造的大型语言模型——…

分享一款低损耗 高效率高性能 低 VCE(sat) 晶体管 NSS60600MZ4T1G

关于低 VCE(sat) 晶体管&#xff1f; 是指其饱和电压 VCE(sat) 很低的晶体管。VCE(sat) 是指晶体管在饱和区时&#xff0c;集电极与发射极之间的电压降。低 VCE(sat) 晶体管的优点是在同样的电流下&#xff0c;其 VCE(sat) 更低&#xff0c;因此能够降低电路总成本&#xff0c…

Python的web自动化学习(二)Selenium安装和环境配置

前置条件&#xff1a; 1、安装Python并配置环境变量 2、安装编辑器PyCharm Seleenium安装 正文如下&#xff1a; python常见安装命令&#xff1a; 首先电脑 winR 打开 输入cmd&#xff0c;回车&#xff0c;使用pip安装selenium&#xff1a; 也可以使用命令&#xff1a;…

工作中出现什么「迹象」,表明你应该换工作了?

作者&#xff1a;苍何&#xff0c;CSDN 2023 年 实力新星&#xff0c;前大厂高级 Java 工程师&#xff0c;阿里云专家博主&#xff0c;土木转码&#xff0c;现任部门技术 leader&#xff0c;专注于互联网技术分享&#xff0c;职场经验分享。 &#x1f525;热门文章推荐&#xf…

ITOT强强联合,得帆信息X树根互联打造工业制造融合解决方案

上海得帆信息技术有限公司&#xff08;以下简称“得帆”&#xff09;和树根互联股份有限公司&#xff08;以下简称“树根互联”&#xff09;携手推出了创新性的IT/OT融合产品解决方案&#xff0c;为制造型企业提供了一站式轻量级工业互联网平台。 --- 填补大型制造企业在IT建…

一秒推软文发稿平台:优质客户服务的承诺

在互联网时代&#xff0c;软文发稿已经成为企业推广和营销的重要手段之一。通过发布优质的软文内容&#xff0c;企业可以提升品牌知名度、引流潜在客户、增加销售业绩。然而&#xff0c;对于企业而言&#xff0c;选择一家可靠、专业的软文发稿平台至关重要。在众多的选择中&…

SpringMVC Day02 : 请求方式

前言 欢迎阅读 Spring MVC 系列教程的第二篇文章&#xff01;在上一篇文章中&#xff0c;我们介绍了 Spring MVC 的基本概念和使用方法。今天&#xff0c;我们将深入探讨 Spring MVC 中不同的请求方式&#xff0c;以及如何在你的应用程序中正确地处理它们。 在 Web 开发中&am…

转转闲鱼交易猫三合一后台源码

1、一键添加商品&#xff0c;商品管理&#xff0c;一键分享功能&#xff0c;包括卡框功能 这个样式图就是后台生成完的一个链接截图 后台一键生成&#xff0c;独立后台管理 教程&#xff1a;修改conf数据库账号密码 不会的可以看源码里有搭建教程 下载程序&#xff1a;htt…

基于教与学算法的无人机航迹规划-附代码

基于教与学算法的无人机航迹规划 文章目录 基于教与学算法的无人机航迹规划1.教与学搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要&#xff1a;本文主要介绍利用教与学算法来优化无人机航迹规划。 1.教与学…

操作系统:计算机系统概述

一战成硕 1.1 手工操作阶段1.2 批处理阶段1.3 分时操作系统1.4 实时操作系统1.5 中断和异常的概念1.6 系统调用 1.1 手工操作阶段 1.2 批处理阶段 单道批处理系统 自动性 顺序性 单道性多道批处理系统 多道 宏观上并行 微观上串行 优点&#xff1a;资源利用率高&#xff0c;多…

2023年【四川省安全员B证】考试报名及四川省安全员B证找解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2023年四川省安全员B证考试报名为正在备考四川省安全员B证操作证的学员准备的理论考试专题&#xff0c;每个月更新的四川省安全员B证找解析祝您顺利通过四川省安全员B证考试。 1、【多选题】下列关于钢筋临边防护栏杆…

[Unity3D]图片格式自定义MaxSize

如何适用 只需在“项目”窗口中创建一个名为“编辑器”的文件夹&#xff0c;然后在其中添加此脚本即可。然后&#xff0c;打开Window-Custom Max Size Setter&#xff0c;选择一个或多个纹理并调整其最大尺寸值。 由于 NPOT 纹理大小不能很好地与压缩算法配合使用&#xff0c;…

分布式系统的链路追踪,让你轻松解决订单无法查看的问题!

你好&#xff0c;我是积极活泼的小米&#xff01;今天我要跟大家聊聊分布式系统的链路追踪&#xff0c;这个话题对于我们在技术领域工作的小伙伴们来说&#xff0c;可是非常重要的哦&#xff01; 背景 昨天&#xff0c;产品大佬丰哥找到了我&#xff0c;他抱怨说分销员的订单…