java证书有哪些 java认证
记录认证浏览器再次请求,并将JWT放在请求头中 。
验证服务器的JWT签名并提取用户信息 。
服务器返回响应 。
【java证书有哪些 java认证】我们来说说在Springboot中实现JWT认证的过程 。
引入JWT依赖

文章插图

文章插图
Java语言在jwt.io网站上的JWT实现
我们可以基于JWT原理自己实现,但引入JWT实现的依赖性更方便 。Jwt.io网站列出了不同编程语言的Jwt实现,其中com.auth0是基于java语言的常见JWT实现 。
com.auth0java-jwt3.4.0
自定义注释我们希望通过验证令牌来控制客户端对服务器方法的访问控制,因此在每个客户端请求到达后,我们应该进行令牌验证 。为了避免在每个服务器方法中重复放置令牌验证的代码逻辑,我们可以通过注释来验证令牌 。
@Target({ElementType.METHOD, ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)public @interface UserLoginToken {boolean required() default true;}
上面的代码定义了一个注释@UserLoginToken,可以用来修饰方法或类,比如Controller 。
@UserLoginToken@GetMapping(\"/getMessage\")public String getMessage(){return \"你已通过验证\";}
getMessage()方法用注释@UserLoginToken进行注释,该注释必须通过令牌进行访问 。
获取登录令牌显然,Login方法login()不需要注释 。登录的逻辑是先验证用户名和密码,如果验证通过,再调用JWT库的方法生成令牌 。
@Service(\"TokenService\")public class TokenService {public String getToken(User user){String token = \"\";token = JWT.create().withAudience(user.getId()).sign(Algorithm.HMAC256(user.getPassword()));return token;}}
以上代码使用HMAC-SHA256算法生成令牌,密钥为服务器数据库中存储的用户密码 。
WithAudience()将用户ID存储到令牌中,这样服务器就可以从令牌中提取用户ID,并在收到带有令牌的请求后知道用户是谁 。
中间体有注释是不够的,还要有拦截器来处理注释 。要实现拦截器,您必须继承HandlerInterceptor接口 。
public class AuthenticationInterceptor implements HandlerInterceptor {@AutowiredUserService userService;@Overridepublic boolean preHandle(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse, Object object) throws Exception {... ...}
HandlerInterceptor接口主要定义了三种方法
推荐阅读
- ?咖啡豆的药用价值都有哪些
- 砍瓜的药用价值都有哪些
- 枇杷吃了到底有什么好处呢
- 枇杷子的功效有哪些呢
- 海鲜最有营养的吃法有哪些呢
- 酒糟的营养有哪些呢
- ?花椒生姜水泡脚的功效有哪些
- ?花椒水的功效和作用有哪些
- ?花椒泡酒的功效与作用有哪些
- ?花椒盐水的功效与作用有哪些