使用 spi
新建重写方法实现CheckTokenInterceptor
**@JoinSPI**
package cn.jdevelops.build.interceptor;
import cn.jdevelops.jredis.service.RedisService;
import cn.jdevelops.jwt.util.ContextUtil;
import cn.jdevelops.jwt.util.JwtUtil;
import cn.jdevelops.jwtweb.server.CheckTokenInterceptor;
import cn.jdevelops.jwtweb.server.impl.DefaultInterceptor;
import cn.jdevelops.spi.JoinSPI;
import org.springframework.stereotype.Service;
/**
* redis 验证token
*
* @author tnnn
* @version V1.0
* @date 2022-07-24 11:51
*/
@JoinSPI
public class RedisInterceptor implements CheckTokenInterceptor {
@Override
public boolean checkToken(String token) {
return JwtUtil.verity(token);
}
@Override
public void refreshToken(String userCode) {
// 必须使用整个要不然获取不来 springbean
RedisService redisService = ContextUtil.getBean(RedisService.class);
redisService.refreshUserToken(userCode);
}
}
构建SPI
- 位置固定
- resources/META-INF/jdevelops
- 文件名固定
- cn.jdevelops.jwtweb.server.CheckTokenInterceptor
- 方法名固定
- defaultInterceptor
- 自定义实现类
- cn.jdevelops.build.interceptor.RedisInterceptor
- cn.jdevelops.build.interceptor.RedisInterceptor
resources/META-INF/jdevelops cn.jdevelops.jwtweb.server.CheckTokenInterceptor defaultInterceptor=cn.jdevelops.build.interceptor.RedisInterceptor
项目示例
https://github.com/en-o/Jdevelops-Example/tree/main/Jwt2/src