我正在从事宁静的网络服务。我们正在创建在glassfish中运行的Web服务,我们直接从我们在tomcat中部署的jsp调用这些restful Web服务。我必须使我们的Web服务安全,以便其他人或组织不能从该应用程序中查找(使用)我们的Web服务。你能告诉我怎么做这些??????
答案 0 :(得分:1)
一种简单的方法是在每个休息请求中传输basic authentication信息,并在您的休息后端拦截每个请求。在您的拦截器中,您尝试获取这些信息,并检查您的数据库中是否有正确的信息。
解析标题中的身份验证信息,执行以下操作:
// Get request headers
final HttpHeaders headers = request.getHttpHeaders();
// Fetch authorization header
final List<String> authorization = headers.getRequestHeader(AUTHORIZATION_PROPERTY);
// Get encoded username and password
final String encodedUserPassword = authorization.get(0).replaceFirst(AUTHENTICATION_SCHEME + " ", "");
// Decode username and password
String emailAndPassword;
try {
emailAndPassword = new String(Base64.decode(encodedUserPassword));
} catch (IOException e) {
return SERVER_ERROR;
}
// Split username and password tokens
final StringTokenizer tokenizer = new StringTokenizer(emailAndPassword, ":");
final String email = tokenizer.nextToken();
final String password = tokenizer.nextToken();
现在您可以使用Strings电子邮件和密码作为可以根据数据库检查的凭据。
请记住,您必须在每个请求到达您的Web服务实现之前执行此操作。你应该读一下这个问题的拦截器
问候