代码之家  ›  专栏  ›  技术社区  ›  tobi

如何将Restcall与Spring Security结合使用

  •  0
  • tobi  · 技术社区  · 7 年前

    在我的Spring MVC应用程序中,我使用的是Spring安全性。到目前为止效果很好,但我必须承认,我不理解所有的细节。

    在同一应用程序中,用户可以通过rest api调用一些控制器函数。当用户(假设Tom)这样做时,他的身份验证将丢失。相反,控制器由用户匿名调用。

    我找到了下面的“用户切换”代码。变量restCall包含指向我的应用程序的url。如果用户Tom直接将其放置在浏览器中,那么该调用将适用于他。使用restcall,用户将更改为anyonymous。

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

    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 回复  |  直到 7 年前
        1
  •  0
  •   ValerioMC    7 年前

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

    步骤如下:

    1) 客户端使用用户名和密码进行身份验证和post请求

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