统一token处理

我们发现 每一个控制方法中都需要解析token , 获取当前用户id , 代码重复度比较高

也就是每次请求都会获取解析token 很麻烦

基于ThreadLocal + 拦截器的形式统一处理

 

拦截器

是一种动态拦截方法调用的机制;

类似于Servlet 开发中的过滤器Filter,用于对处理器进行前置处理和后置处理。

threadlocal

线程内部的存储类,赋予了线程存储数据的能力。

线程内调用的方法都可以从ThreadLocal中获取同一个对象。

多个线程中ThreadLocal数据相互隔离

Threadlocal使用方法很简单

ThreadLocal<T> threadLocal = new ThreadLocal<T>();
threadLocal.set() //将数据绑定到当前线程
threadLocal.get() //从当前线程中获取数据

Thread工具类



import com.tanhua.domain.User;

/**
 * Created with IntelliJ IDEA.
 *
 * @Author: 
 * @Date: 
 * @Message: Talk is cheap. Show me 
在Spring Boot中实现统一Token认证可以通过使用拦截器来实现。下面是一个简单的示例: 1. 创建一个TokenInterceptor类,实现HandlerInterceptor接口: ```java import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class TokenInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { // 在这里进行Token验证的逻辑 // 如果Token验证失败,可以返回false,拦截请求 // 如果Token验证通过,返回true,继续处理请求 return true; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { // 在请求处理完成后的处理,可以进行一些清理工作 } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { // 在整个请求完成后的处理,可以进行一些资源释放操作 } } ``` 2. 注册TokenInterceptor: ```java import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration public class WebConfig implements WebMvcConfigurer { @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new TokenInterceptor()).addPathPatterns("/**"); } } ``` 3. 在上述示例中的`preHandle`方法中,可以编写具体的Token验证逻辑,例如验证Token是否有效、是否过期等。根据验证结果,可以返回相应的结果或者进行拦截。 请注意,这只是一个简单的示例,实际的Token认证逻辑可能更加复杂。你可以根据自己的需求进行修改和扩展。另外,还可以使用现有的安全框架如Spring Security来实现更强大的认证和授权功能。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值