如何将Restcall与Spring Security结合使用

时间:2018-10-10 19:27:15

标签: spring rest spring-security

在我的Spring MVC应用程序中,我正在使用spring安全性。到目前为止,它仍然可以正常工作,但是我不得不承认,我不了解所有细节。

在同一应用程序中,用户可以通过rest api调用某些控制器功能。当用户(假设是Tom)执行此操作时,其身份验证将丢失。而是由匿名用户调用该控制器。

我找到了该“用户切换”到下面的代码。变量restCall包含一个指向我的应用程序的URL。如果用户Tom直接将其放置在浏览器中,则该调用将起作用。使用restcall,用户将更改为匿名用户。

1)当主叫用户(Tom)已经登录时,我可以防止这种情况吗? 2)由于这些服务应由尚未浏览应用程序Web界面的用户调用,因此我必须找到一种方法来通过其余调用本身进行登录。

private void callWebservice(HttpServletRequest req, String restCall) {
    RestTemplate restTemplate = new RestTemplate();

    ResponseEntity<String> response
      = restTemplate.getForEntity(restCall, String.class);

    logger.debug(response.toString());

    //assertThat(response.getStatusCode(), equalTo(HttpStatus.OK));

}

1 个答案:

答案 0 :(得分:0)

例如,您需要JSON Web令牌(JWT)身份验证。

步骤如下:

1)客户端进行身份验证,并使用用户名和密码发布请求

2)如果身份验证成功,则服务器将返回一个令牌,其中该令牌已编码为用户

3)在下一个调用GET或POST中,将JWT添加到header中,这样服务器将知道您是谁,因为服务器可以解码令牌,并且还可以授予正确的权限和功能