在我的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));
}