java证书有哪些 java认证

java认证(什么是Java认证)
记录认证原创2021-07-28 06: 29网上微谈“Java面试常见问题:JWT是什么?”介绍了会话管理常用的JWT(JSON web Token)标准 。JWT在实现web项目的登录认证和授权方面非常常见 。
JWT请求流程
我们先来回顾一下JWT的请求流程:
用用户名和密码向服务器发送POST请求 。
验证服务器后 , 用密钥创建一个JWT字符串 。
将JWT从服务器返回到浏览器(客户端)
浏览器再次请求并将JWT放入请求报头 。
验证服务器的JWT签名并提取用户信息 。
服务器返回响应 。
让我们来谈谈在Springboot中实现JWT认证的过程 。
介绍JWT从属关系jwt.io网站上Java语言的JWT实现
我们可以基于JWT原理自己实现 , 但是引入JWT实现的依赖性更方便 。Jwt.io网站列出了不同编程语言的Jwt实现 , 其中com.auth0是基于java语言的常用JWT实现 。
com.auth0java-jwt3.4.0自定义注释我们希望通过验证令牌来控制客户端对服务器方法的访问控制 , 所以在每个客户端请求到达后 , 我们都要做一个令牌验证 。为了避免在每个服务器方法中重复放置令牌验证的代码逻辑 , 我们可以通过注释来验证令牌 。
@Target({ElementType.METHOD,ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)public@interfaceUserLoginToken{booleanrequired()defaulttrue;}上面的代码定义了一个注释@UserLoginToken , 可以用来修饰方法或者类 , 比如Controller 。
@UserLoginToken@GetMapping("/getMessage")publicStringgetMessage(){return"你已通过验证";}getMessage()方法用注释@UserLoginToken进行了注释 , 该注释必须通过令牌进行访问 。
获取登录令牌显然 , 登录方法Login()不需要注释 。登录的逻辑是先验证用户名和密码 , 如果验证通过 , 再调用JWT库的方法生成token 。
@Service("TokenService")publicclassTokenService{publicStringgetToken(Useruser){Stringtoken="";token=JWT.create().withAudience(user.getId()).sign(Algorithm.HMAC256(user.getPassword()));returntoken;}}上面的代码使用HMAC-SHA256算法生成令牌 , 密钥是存储在服务器数据库中的用户密码 。
WithAudience()将用户ID存储到令牌中 , 这样服务器就可以从令牌中提取用户ID , 并在收到带有令牌的请求后知道用户是谁 。
interseptor有注释是不够的 , 还需要有拦截器来处理注释 。要实现拦截器 , 必须继承HandlerInterceptor接口 。
publicclassAuthenticationInterceptorimplementsHandlerInterceptor{@AutowiredUserServiceuserService;@OverridepublicbooleanpreHandle(HttpServletRequesthttpServletRequest,HttpServletResponsehttpServletResponse,Objectobject)throwsException{......}【java证书有哪些 java认证】HandlerInterceptor接口主要定义了三个方法

    推荐阅读