Paul I think I got something wrong,
I have a ResourceFilterFactory which returns a list of ResourceFilter
instances on its create method. In this method I am returning only one
instance of ResourceFilter.
The following method is called by Jersey, only once during the application
startup.
public List<ResourceFilter> create(AbstractMethod am) {
LoginRequired lr = am.getAnnotation(LoginRequired.class);
if (lr == null) {
lr = am.getResource().getAnnotation(LoginRequired.class);
if (lr == null) {
return null;
}
}
final LoginResourceFilter filter = new LoginResourceFilter();
return new ArrayList<ResourceFilter>() {{
add(filter);
}};
}
The actual resource filter is something like this:
public class LoginResourceFilter implements ResourceFilter,
ContainerRequestFilter {
public ContainerRequestFilter getRequestFilter() {
return this;
}
public ContainerResponseFilter getResponseFilter() {
// Not Supported
return null;
}
public ContainerRequest filter(ContainerRequest req) {
return req;
}
}
Where in this class can I inject HttpServletRequest? Since this is a single
instance, injecting it as a class property will not work. I need it injected
in the filter method, or I need to find a way to use a new instance of my
ResourceFilter in every request.
Erdinc
On Mon, Jan 25, 2010 at 11:00 AM, Paul Sandoz <Paul.Sandoz_at_sun.com> wrote:
>
> On Jan 25, 2010, at 2:09 AM, Erdinc Yilmazel wrote:
>
> How can I access the HttpSession from a ContainerRequestFilter
>> implementation? Or at least properties within the session?
>>
>>
> Inject HttpServletRequest:
>
> @Context HttpServletRequest hsr;
>
> and get the session from that.
>
> Paul.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_jersey.dev.java.net
> For additional commands, e-mail: users-help_at_jersey.dev.java.net
>
>