【问题标题】:Add Authorization Header Bearer Authentication to Spring Boot Controller将 Authorization Header Bearer Authentication 添加到 Spring Boot Controller
【发布时间】:2022-01-21 08:20:10
【问题描述】:

我想在 Authorization 标头中添加一个令牌作为 Bearer 令牌。但我不想有一个自定义拦截器类,我只想在我的 Controller 端点中有逻辑。我尝试了很多东西,但它对我没有用任何人都可以帮助我吗?这是我的代码:

@PostMapping("/signIn")
    public String signIn(HttpServletResponse response, HttpServletRequest request,
                                 @RequestParam String username, @RequestParam String password,
                                 @RequestHeader HttpHeaders headers) {
        UsernamePasswordAuthenticationToken usernamePasswordAuthenticationToken
                = new UsernamePasswordAuthenticationToken(username, password);
      

        String bearerToken = request.getHeader("Authorization");


        String token = "hardcodedToken";
        //  headers.getFirst(HttpHeaders.AUTHORIZATION);
        //headers.setBearerAuth(token);
        //response.setHeader("Authorization", token);
        //response.addHeader("Authorization", token);
        headers.set("Authorization", bearerToken);


        return token;
    }

为了我的缘故,我刚刚创建了一个硬编码的令牌,我想在 Auth Header 中将它作为 Bearer 令牌,正如您在我的 cmets 中看到的那样,我尝试了几种方法来解决这个问题,但没有奏效。

【问题讨论】:

    标签: java spring spring-boot http-headers bearer-token


    【解决方案1】:

    也许你可以试试这个:

    @GetMapping("/response-builder-with-http-headers")
    public ResponseEntity<String> usingResponseEntityBuilderAndHttpHeaders() {
        HttpHeaders responseHeaders = new HttpHeaders();
        responseHeaders.set("Baeldung-Example-Header", 
          "Value-ResponseEntityBuilderWithHttpHeaders");
     
        return ResponseEntity.ok()
          .headers(responseHeaders)
          .body("Response with header using ResponseEntity");
    }
    

    【讨论】:

      猜你喜欢
      • 2021-05-03
      • 2016-12-18
      • 1970-01-01
      • 2017-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-06
      • 2019-10-19
      相关资源
      最近更新 更多