身份认证1_ 整合jjwt和生成jwt令牌

 了解jwt,jjwt

什么是jwt

JSON Web Token( JWT)是一个非常轻巧的规范。这个规范允许我们使用JWT在用 户和服务器之间传递安全可靠的信息。其中 JWT 中可以包含用户信息。

什么是jjwt

JJWT 是一个提供端到端的JWT创建和验证的Java库。永远免费和开源(Apache License,版本2.0)JJWT很容易使用和理解。可以使用jjwt实现jwt.


 jjwt快速入门

1.pom包中引入依赖

(查看自己电脑jdk版本,8版本不需要下面的依赖8中包含EE,SE   9版本需要下面依赖9中只有SE)

<dependencies>
	<!--jwt令牌-->
    <dependency>
        <groupId>io.jsonwebtoken</groupId>
        <artifactId>jjwt</artifactId>
        <version>0.6.0</version>
    </dependency>
	<!--jdk9需要的-->
	<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>
</dependencies>

创建普通测试类 TestJwt ,用于生成 token  

(点击main方法执行,生成一个令牌,每次执行的结果都不一样,因为创建的时间不同)

import io.jsonwebtoken.JwtBuilder;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;

import java.util.Date;

public class TestJwt {
    public static void main(String[] args) {
        String token=createJwt();
        System.out.println("生成的令牌"+token);
    }

//    生成jwt令牌(token)
    public static String createJwt(){
        JwtBuilder builder= Jwts.builder();
        builder.setId("1111")//用户id
                .setSubject("admin") //主题:用户名
               .setIssuedAt(new Date()) //签发事件
              .signWith(SignatureAlgorithm.HS256,"xxxxx");//签名密钥 xxxxx自己知道不要泄密
        return builder.compact();//开始生成jwt令牌
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
整合Spring Security和JWT(Json Web Token)是一种常见的身份验证和授权机制。通过整合Spring Security和JWT,我们可以实现基于令牌的身份验证和授权。 Spring Security是一个强大而灵活的安全框架,它提供了许多功能,包括身份验证、授权、加密和访问控制。而JWT是一种轻量级的身份验证和授权机制,它通过在客户端和服务器之间传递JSON格式的令牌来实现身份验证和授权。 整合Spring Security和JWT的过程通常包括以下几个步骤: 1. 添加Spring Security和JWT的依赖:你需要在项目的构建文件中添加Spring Security和JWT的相关依赖,例如在Maven项目中,你可以在pom.xml文件中添加相应的依赖。 2. 配置Spring Security:你需要配置Spring Security来定义安全规则和权限控制。可以创建一个继承自WebSecurityConfigurerAdapter的配置类,并重写configure方法来定义安全规则。 3. 实现用户认证和授权逻辑:你需要实现UserDetailsService接口来加载用户信息并验证用户的凭据。可以使用Spring Security提供的内存、数据库或自定义的用户认证方式。此外,你还可以实现AccessDecisionManager接口来定义访问决策管理器,用于控制用户的访问权限。 4. 创建JWT工具类:你需要创建一个工具类来生成和解析JWT令牌。这个工具类可以使用第三方库,例如jjwt。 5. 配置JWT过滤器:你需要创建一个JWT过滤器来验证请求中的JWT令牌,并将用户的认证信息设置到Spring Security的上下文中。可以继承OncePerRequestFilter类,并在doFilterInternal方法中实现JWT验证和用户认证逻辑。 6. 配置不需要拦截的路径:你可以使用Spring Security提供的antMatchers方法来配置不需要进行JWT验证和授权的路径。可以在上述提到的配置类中使用这个方法来配置不需要拦截的路径。 通过整合Spring Security和JWT,你可以实现基于令牌的身份验证和授权,使得你的应用程序更加安全可靠。同时,整合Spring Security和JWT也可以减少开发人员的工作量,提高开发效率。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [厉害,我带的实习生仅用四步就整合好SpringSecurity+JWT实现登录认证](https://blog.csdn.net/qing_gee/article/details/124016059)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值