如何在Spring Boot3+微服务中基于JWT实现无数据库Spring Security
Spring Boot 3+(Spring 6)无数据库依赖的JWT注解式Spring Security配置方案
当前实现情况
我已在授权服务中实现Spring Security并生成JWT Token,目前通过手动校验请求头中的JWT进行权限控制,代码如下:
@PostMapping("/{username}") public ResponseEntity<Object> addWishlist(@Parameter(hidden = true) @RequestHeader("Authorization") String token, @PathVariable String username, @RequestBody MovieDto movie){ if (jwtService.isTokenValid(token.substring(7),username)){ return new ResponseEntity<>(wishlistService.addWishlist(username,movie),HttpStatus.CREATED); } throw new UnAuthorizedException("Unauthorized token access add movie"); }
期望实现效果
希望采用Spring Security的注解式权限控制,实现类似如下的效果:
@GetMapping("/validate") @PreAuthorize("hasRole('MEMBER') && #username == authentication.principal.username") public ResponseEntity<Object> validate(@RequestParam String username) { return new ResponseEntity<>(username+" Authorized", HttpStatus.ACCEPTED); }
具体需求
找不到Spring Boot3+(Spring6)版本的相关配置方案,需要在wishlist和userprofile微服务中实现仅依赖JWT验证、无需连接数据库的Spring Security配置,支持上述注解式权限控制。
内容的提问来源于stack exchange,提问作者Kollimarla Jagadeep
相关产品推荐
相关产品推荐

