为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕工程0101907 2021-09-12 17:25:28
我正在尝试使用 Spring Boot rest api 设置 oauth,但我遇到了一些问题。当我尝试通过 /auth/token 获取访问令牌时,我要么得到 405 - Method Not Allowed:或者来自基本 url (localhost:8080/) 的响应,这是一个简单的 json:第一个发生在我没有在 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.HttpRequestMethodNotSupportedException2018-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我已经尝试了一切,但没有成功。这是我目前拥有的代码:
查看完整描述

1 回答

?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

如果您使用@RequestMapping,那么您需要同时传递 Path 和方法,如下所示


@RequestMapping(value = "/v1/hello", method = RequestMethod.GET)

public ResponseEntity<String> entry() {

    final HttpHeaders httpHeaders = new HttpHeaders();

    httpHeaders.setContentType(MediaType.APPLICATION_JSON);

    return new ResponseEntity<>("{\"msg\": \"Hello World\"}", httpHeaders, 

    HttpStatus.OK);

}

如果你想直接使用@PostMapping、@GetMapping 等,那么只需要像这样的路径


@GetMapping(value = "/v1/hello")

public ResponseEntity<String> entry() {

    final HttpHeaders httpHeaders = new HttpHeaders();

    httpHeaders.setContentType(MediaType.APPLICATION_JSON);

    return new ResponseEntity<>("{\"msg\": \"Hello World\"}", httpHeaders, 

    HttpStatus.OK);

  }

所以相应地使用然后检查为 405 意味着 api 签名不符合您定义的任何 Rest 控制器 api。


让我在正确的控制器之后你遇到任何问题。


查看完整回答
反对 回复 2021-09-12
  • 1 回答
  • 0 关注
  • 239 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信