Среда: JBoss AS 7, RestEasy 3.0.5.
Я хочу использовать фильтр предварительной обработки в своем приложении для аутентификации определенного пользователя и добавить этого аутентифицированного пользователя в область запроса. Я пробовал следующее:
@Provider
public class SecurityFilter implements ContainerRequestFilter {
@Override
public void filter(ContainerRequestContext requestContext) {
// authenticate, lookup user code etc...
requestContext.setProperty("User", new User("test"));
}
}
А затем получите доступ к нему на уровне компонента, используя:
@Stateless
public class TestBean {
@Context HttpServletRequest servletRequest;
@GET
@Path("/hello")
public String hello() {
return "Hello " + servletRequest.getAttribute("User");
}
}
Однако элементы Context не вводятся, когда bean-компонент помечен как не имеющий состояния (без сохранения состояния требуется для логики EJB) из-за Ошибка RestEasy двухлетней давности.
- Кто-нибудь может придумать решение этой проблемы?
- В качестве альтернативы, есть ли более типичное решение для предварительного заполнения этих объектов с помощью фильтра?
Доброе спасибо за прочтение.