使用 spi

新建重写方法实现CheckTokenInterceptor

**@JoinSPI**

  1. package cn.jdevelops.build.interceptor;
  2. import cn.jdevelops.jredis.service.RedisService;
  3. import cn.jdevelops.jwt.util.ContextUtil;
  4. import cn.jdevelops.jwt.util.JwtUtil;
  5. import cn.jdevelops.jwtweb.server.CheckTokenInterceptor;
  6. import cn.jdevelops.jwtweb.server.impl.DefaultInterceptor;
  7. import cn.jdevelops.spi.JoinSPI;
  8. import org.springframework.stereotype.Service;
  9. /**
  10. * redis 验证token
  11. *
  12. * @author tnnn
  13. * @version V1.0
  14. * @date 2022-07-24 11:51
  15. */
  16. @JoinSPI
  17. public class RedisInterceptor implements CheckTokenInterceptor {
  18. @Override
  19. public boolean checkToken(String token) {
  20. return JwtUtil.verity(token);
  21. }
  22. @Override
  23. public void refreshToken(String userCode) {
  24. // 必须使用整个要不然获取不来 springbean
  25. RedisService redisService = ContextUtil.getBean(RedisService.class);
  26. redisService.refreshUserToken(userCode);
  27. }
  28. }

构建SPI

  1. 位置固定
    1. resources/META-INF/jdevelops
  2. 文件名固定
    1. cn.jdevelops.jwtweb.server.CheckTokenInterceptor
  3. 方法名固定
    1. defaultInterceptor
  4. 自定义实现类
    1. cn.jdevelops.build.interceptor.RedisInterceptor

      image.png

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