我正在尝试为JBPM服务器中的服务主机创建一个RestEasy客户端。服务URL始终重定向到基于表单的登录屏幕,该屏幕需要j_username和j_password。
我需要登录该服务,并且还必须存储cookie以避免每次都进行身份验证。请建议实现此目的的最佳实施。
现在所有的服务调用最终都会返回登录html页面。
我尝试了这里发布的一些解决方案,但在我的方案中不起作用。
RESTEasy client framework authentication credentials
RestEasy Client Authentication and HTTP Put with Marshalling
答案 0 :(得分:0)
首先,编写一个认证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/");
}
}
在login_form
中,将操作映射到servlet URL
例如:
<form method="post" action="security_check">
除登录以外的所有其他请求,定义网址格式(例如protectedResourceUrlPattern)并使用Cookie中的凭据进行验证