基于表单的身份验证支持RestEasy Web服务客户端

时间:2013-02-13 19:40:02

标签: java web-services resteasy webservices-client

我正在尝试为JBPM服务器中的服务主机创建一个RestEasy客户端。服务URL始终重定向到基于表单的登录屏幕,该屏幕需要j_username和j_password。

我需要登录该服务,并且还必须存储cookie以避免每次都进行身份验证。请建议实现此目的的最佳实施。

现在所有的服务调用最终都会返回登录html页面。

我尝试了这里发布的一些解决方案,但在我的方案中不起作用。

RESTEasy client framework authentication credentials

RestEasy Client Authentication and HTTP Put with Marshalling

1 个答案:

答案 0 :(得分:0)

  1. 首先,编写一个认证servlet(您可以在其中拦截登录凭据并将其存储到您的cookie中):

    @WebServlet(urlPatterns = {"/security_check"})
    
    public class AuthenticationServlet extends HttpServlet 
    
    {
    
     protected void doPost(HttpServletRequest req, HttpServletResponse resp) throwsServletException, IOException 
        {
    
     request.login(userName, userPassword);
    
     StoreInCookieMethod(request.getUserPrincipal().getName(), userPassword);
    
     response.sendRedirect(request.getContextPath() + "/protectedResourceUrlPattern/");
    
        } 
    }
    
  2. {li>

    login_form中,将操作映射到servlet URL 例如:

    <form method="post" action="security_check">
    
  3. 除登录以外的所有其他请求,定义网址格式(例如protectedResourceUrlPattern)并使用Cookie中的凭据进行验证