我正在尝试使用 Spring 实现 RESTful Web 服务。我已经设置 Spring Security 来处理适用于 REST 服务的链接。我从 Android 应用程序调用此 Web 服务。我现在所做的是使用基本身份验证连接到它。我正在努力寻找关于这到底有多安全的体面信息。我想我至少应该通过 SSL 或其他方式进行这些调用?
我在调用 REST 客户端的 Android 客户端上的代码
public MyClass callRest() {
final String url = "http://10.0.2.2:8080/myservice/rest/getSomething";
HttpAuthentication authHeader = new HttpBasicAuthentication(username,
password);
HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.setAuthorization(authHeader);
requestHeaders.setAccept(Collections
.singletonList(MediaType.APPLICATION_JSON));
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(
new MappingJacksonHttpMessageConverter());
try {
ResponseEntity<MyClass> response = restTemplate.exchange(url,
HttpMethod.GET, new HttpEntity<Object>(requestHeaders),
MyClass.class);
return response.getBody();
} catch (HttpClientErrorException e) {
return new MyClass();
}
}
所以我现在在我的 Spring Security 配置中添加了什么:
<http auto-config='true'>
<intercept-url pattern="/rest/**" access="ROLE_USER"
requires-channel="https" />
</http>
我不知道从那里去哪里,因为现在连接当然不再工作了,因为 https。我似乎找不到像样的例子来说明如何使用 Resttemplate 来解决这个问题。
有什么帮助吗?