JavaServlets、JAX-RS—在基于表单的身份验证工作时遇到问题
我使用JAX-RSJersey作为我的控制器,使用JSP作为我的视图。以下是一个例子:JavaServlets、JAX-RS—在基于表单的身份验证工作时遇到问题,java,servlets,jersey,java-ee-6,jax-rs,Java,Servlets,Jersey,Java Ee 6,Jax Rs,我使用JAX-RSJersey作为我的控制器,使用JSP作为我的视图。以下是一个例子: @Path("/") @Stateless public class HomeController { @Context private HttpServletRequest request; @EJB private EmployeeServiceLocal employeeService; @GET public Viewable getHomePag
@Path("/")
@Stateless
public class HomeController {
@Context
private HttpServletRequest request;
@EJB
private EmployeeServiceLocal employeeService;
@GET
public Viewable getHomePage() {
Employee employee = employeeService.getEmployeeById(1);
request.setAttribute("employee", employee);
return new Viewable("/home.jsp", null);
}
}
在我尝试使用JAAS实现身份验证之前,一切都运行得很好。我相信现在发生的事情是,我的过滤器阻止服务器处理我的j_安全检查请求(我正在使用jdbcRealm的基于表单的身份验证)。我认为这是因为我在提交登录表单时出现以下错误:
The requested resource () is not available.
这有意义吗?如何使我的筛选器不应用于/j_安全检查
这是我在web.xml中的过滤器配置
<filter>
<filter-name>Jersey Filter</filter-name>
<filter-class>com.sun.jersey.spi.container.servlet.ServletContainer</filter-class>
<init-param>
<param-name>com.sun.jersey.config.feature.Redirect</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>cheetah.frontend.controllers</param-value>
</init-param>
<!-- pass to next filter if Jersey/App returns 404 -->
<init-param>
<param-name>com.sun.jersey.config.feature.FilterForwardOn404</param-name>
<param-value>true</param-value>
</init-param>
<!-- match regex to determine if Jersey/App is invoked or pass to next filter -->
<init-param>
<param-name>com.sun.jersey.config.property.WebPageContentRegex</param-name>
<param-value>/(images|css|jsp)/.*</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Jersey Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
泽西过滤器
com.sun.jersey.spi.container.servlet.ServletContainer
com.sun.jersey.config.feature.Redirect
真的
com.sun.jersey.config.property.packages
猎豹。前端。控制器
com.sun.jersey.config.feature.FilterForwardOn404
真的
com.sun.jersey.config.property.WebPageContentRegex
/(图片| css | jsp)/*
泽西过滤器
/*
感谢您的帮助。我在GlassFish中也使用了类似的代码(appserver甚至没有将j_security_check调用传递给servlet并自行处理)。您是否在web.xml中包含登录配置并设置了身份验证安全约束?您正在使用哪个appserver