猿问

Spring Boot 2.0.4 + OAuth2 + JWT - 无法获取访问令牌

我正在尝试使用 Spring Boot rest api 设置 oauth,但我遇到了一些问题。

当我尝试通过 /auth/token 获取访问令牌时,我要么得到 405 - Method Not Allowed:

或者来自基本 url (localhost:8080/) 的响应,这是一个简单的 json:

http://img.mukewang.com/613dc7a900012a2d02010050.jpg

第一个发生在我没有在 EntryController 中定义 PostMapping 时,另一个发生在我设置它时。


我还可以在日志中看到:


2018-09-10 22:03:16.011  INFO 78436 --- [on(3)-127.0.0.1] .s.o.p.e.FrameworkEndpointHandlerMapping : Mapped "{[/oauth/token],methods=[GET]}" onto public org.springframework.http.ResponseEntity<org.springframework.security.oauth2.common.OAuth2AccessToken> org.springframework.security.oauth2.provider.endpoint.TokenEndpoint.getAccessToken(java.security.Principal,java.util.Map<java.lang.String, java.lang.String>) throws org.springframework.web.HttpRequestMethodNotSupportedException


2018-09-10 22:03:16.012  INFO 78436 --- [on(3)-127.0.0.1] .s.o.p.e.FrameworkEndpointHandlerMapping : Mapped "{[/oauth/token],methods=[POST]}" onto public org.springframework.http.ResponseEntity<org.springframework.security.oauth2.common.OAuth2AccessToken> org.springframework.security.oauth2.provider.endpoint.TokenEndpoint.postAccessToken(java.security.Principal,java.util.Map<java.lang.String, java.lang.String>) throws org.springframework.web.HttpRequestMethodNotSupportedException

我已经尝试了一切,但没有成功。


这是我目前拥有的代码:


慕工程0101907
浏览 240回答 1
1回答

天涯尽头无女友

如果您使用@RequestMapping,那么您需要同时传递 Path 和方法,如下所示@RequestMapping(value = "/v1/hello", method = RequestMethod.GET)public ResponseEntity<String> entry() {&nbsp; &nbsp; final HttpHeaders httpHeaders = new HttpHeaders();&nbsp; &nbsp; httpHeaders.setContentType(MediaType.APPLICATION_JSON);&nbsp; &nbsp; return new ResponseEntity<>("{\"msg\": \"Hello World\"}", httpHeaders,&nbsp;&nbsp; &nbsp; HttpStatus.OK);}如果你想直接使用@PostMapping、@GetMapping 等,那么只需要像这样的路径@GetMapping(value = "/v1/hello")public ResponseEntity<String> entry() {&nbsp; &nbsp; final HttpHeaders httpHeaders = new HttpHeaders();&nbsp; &nbsp; httpHeaders.setContentType(MediaType.APPLICATION_JSON);&nbsp; &nbsp; return new ResponseEntity<>("{\"msg\": \"Hello World\"}", httpHeaders,&nbsp;&nbsp; &nbsp; HttpStatus.OK);&nbsp; }所以相应地使用然后检查为 405 意味着 api 签名不符合您定义的任何 Rest 控制器 api。让我在正确的控制器之后你遇到任何问题。
随时随地看视频慕课网APP

相关分类

Java
我要回答