@Component @Scope(value = "request") public class ApplicationConfig { private String userCode; public String getUserCode() { return this.userCode; } public void setUserCode(String userCode) { this.userCode = userCode; } } @Component public class ApplicationConfigManager { @Autowired public ApplicationConfig applicationConfig; public ApplicationConfig getApplicationConfig() { return this.applicationConfig; } } @Component @Provider public class ApplicationConfigFilter implements ResourceFilter, ContainerRequestFilter { @Autowired private ApplicationConfigManager applicationConfigManager; @Override public ContainerRequest filter(ContainerRequest request) { this.applicationConfigManager.getApplicationConfig().setUserCode( request.getSecurityContext().getUserPrincipal().getName() ); return request; } @Override public ContainerRequestFilter getRequestFilter() { return this; } @Override public ContainerResponseFilter getResponseFilter() { return null; } } @Component @Provider public class ResourceFilterFactory extends RolesAllowedResourceFilterFactory { @Autowired private ApplicationConfigFilter applicationConfigFilter; @Override public List create(AbstractMethod am) { // get filters from RolesAllowedResourceFilterFactory Factory! List rolesFilters = super.create(am); if (null == rolesFilters) { rolesFilters = new ArrayList(); } // Convert into mutable List, so as to add more filters that we need // (RolesAllowedResourceFilterFactory generates immutable list of filters) List filters = new ArrayList(rolesFilters); filters.add(this.applicationConfigFilter); return filters; } } Jersey REST Service com.sun.jersey.spi.spring.container.servlet.SpringServlet com.sun.jersey.config.property.packages com.mypackage com.sun.jersey.spi.container.ResourceFilters com.mypackage.ResourceFilterFactory 1 org.springframework.web.context.request.RequestContextListener org.springframework.web.context.ContextLoaderListener . . Caused by: java.lang.IllegalStateException: No thread-bound request found: Are you referring to request attributes outside of an actual web request, or processing a request outside of the originally receiving thread? If you are actually o perating within a web request and still receive this message, your code is probably running outside of DispatcherServlet/DispatcherPortlet: In this case, use RequestContextListener or RequestContextFilter to expose the current request. at org.springframework.web.context.request.RequestContextHolder.currentRequestAttributes(RequestContextHolder.java:131) ~[spring-web-3.1.1.RELEASE.jar:3.1.1.RELEASE] at org.springframework.web.context.request.AbstractRequestAttributesScope.get(AbstractRequestAttributesScope.java:40) ~[spring-web-3.1.1.RELEASE.jar:3.1.1.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:328) ~[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE] ... 57 common frames omitted @Scope(value = "request", proxyMode = ScopedProxyMode.TARGET_CLASS)