在Java中的Restful Web应用程序中的安全性

时间:2015-07-24 18:31:06

标签: java web-services rest java-ee

我正在从事宁静的网络服务。我们正在创建在glassfish中运行的Web服务,我们直接从我们在tomcat中部署的jsp调用这些restful Web服务。我必须使我们的Web服务安全,以便其他人或组织不能从该应用程序中查找(使用)我们的Web服务。你能告诉我怎么做这些??????

1 个答案:

答案 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服务实现之前执行此操作。你应该读一下这个问题的拦截器

问候