我是 Spring Security 的新手,并嘗試在我的服務上添加身份驗證層。該服務工作正常@PreAuthorize,但是,當我使用它并添加角色時,@PreAuthorize("hasRole('ROLE_USER')")它在郵遞員中向我顯示了此錯誤,甚至在控制臺中也沒有:org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)\n\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:892)\n\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797)\n\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1039)\n\tat 包控制器:@RestController@RequestMapping("/api/package")@Slf4j@AllArgsConstructor@CrossOrigin("*")public class PackageController { private final PackageService packageService; @GetMapping("/list") @PreAuthorize("hasRole('ROLE_USER')") public ResponseEntity<?> getAllPackages(){ return ResponseEntity.ok(packageService.getAllPackages()); }}我使用郵遞員登錄并將承載令牌復制到其字段。用戶已使用 postman 注冊并登錄,并且存在于數據庫中。我嘗試更改包含/排除前綴的角色ROLE_,但顯示相同的結果。我無法弄清楚我做錯了什么,因為我做了很多事情并嘗試了不同的場景,但給出了相同的輸出
Spring Boot:@PreAuthorize 給出 403 禁止
慕桂英3389331
2023-07-28 16:55:10