spring-security整合jwt。spring-security实现前后端分离的传递json的登录模块。spring-security实现前后端分离的通过Token码来判断用户是否登录。

本文详细介绍了如何使用Spring Security和JWT实现前后端分离的登录验证及资源鉴权。通过自定义过滤器和登录处理器,结合JWT生成和验证Token,确保用户访问服务器资源的安全性。
摘要由CSDN通过智能技术生成

本文java配置类使用注解配置spring。利用spring-security实现了前后端分离的登录。并且结合jwt,实现了对于用户访问服务器资源的鉴权。

Spring-security本身是一个Filter链,但我们需要重新改写其中的一些Filter来实现前后端分离的登录以及请求头带有token的鉴权方式。

1.用户登录的流程。

Created with Raphaël 2.3.0 用户进行登录。 前端发给我们后端json字符串。 比如,{username: "test",password: "test"} CustomAuthenticationFilter。 获取请求中的json字符串, 并将json解析为实体类对象, 然后封装为spring-security的 封装用户信息的Authentication对象。 MySuccessHandler。 处理登陆成功后的逻辑。使用jwt工具, 通过用户信息来产生一个随机的token, 发送给前端。并且将存有用户信息的 Authentication对象保存在spring-security内 的SecurityContextHolder内。

2. 用户已经登陆后,访问服务器资源时候的流程。

Created with Raphaël 2.3.0 用户访问我们的url,请求头内带有我们给的token。 TokenAuthenticationFilter。 先获取请求头内的token码。 使用jwt工具解码token码,获取用户名。 再校验token解码出来的用户名和我们后端保存的 用户名是否一致。 允许访问

3. spring-security、jwt、json转换器的maven。

		<!-- https://mvnrepository.com/artifact/org.springframework.security/spring-security-config -->
		<dependency>
		    <groupId>org.springframework.security</groupId>
		    <artifactId>spring-security-config</artifactId>
		    <version>4.2.9.RELEASE</version>
		</dependency>
		
		<!-- https://mvnrepository.com/artifact/org.springframework.security/spring-security-web -->
		<dependency>
		    <groupId>org.springframework.security</groupId>
		    <artifactId>spring-security-web</artifactId>
		    <version>4.2.9.RELEASE</version>
		</dependency>
		
		<!-- https://mvnrepository.com/artifact/org.springframework.security/spring-security-core -->
		<dependency>
		    <groupId>org.springframework.security</groupId>
		    <artifactId>spring-security-core</artifactId>
		    <version>4.2.9.RELEASE</version>
		</dependency>
				<!-- jwt -->
        <dependency>
            <groupId>io.jsonwebtoken</groupId
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值