Я использую JAX-RS Jersey в качестве моего контроллера и JSP для моего обзора. Вот пример:
@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_security_check (я использую аутентификацию на основе форм с jdbcRealm) Причина, по которой я считаю это, заключается в том, что я получаю сообщение об ошибке ниже при отправке формы для входа в систему:
The requested resource () is not available.
Имеет ли это смысл? Как я могу заставить свой фильтр не применяться к / j_security_check?
Вот моя конфигурация фильтра в 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>
Спасибо за любую помощь.