in integrations/shiro/shiro-authc/src/main/java/org/apache/aries/jax/rs/shiro/authc/impl/SecurityManagerAssociatingFilter.java [69:97]
public void filter(ContainerRequestContext requestContext) throws IOException {
_LOG.debug("Establishing Shiro Security Context");
// Bind the security manager
ThreadContext.bind(manager);
Cookie cookie = requestContext.getCookies().get(SESSION_COOKIE_NAME);
// If we have a session cookie then use it to prime the session value
if(cookie != null) {
_LOG.debug("Found a Shiro Security Context cookie: {}. Establishing user context", cookie);
_LOG.debug("Establishing user context:");
Subject subject = new Subject.Builder(manager).sessionId(cookie.getValue()).buildSubject();
ThreadContext.bind(subject);
if(_LOG.isDebugEnabled()) {
_LOG.debug("Established user context for: {}", subject.getPrincipal());
}
}
UriInfo info = requestContext.getUriInfo();
if("security/authenticate".equals(info.getPath())) {
requestContext.abortWith(authenticate(info, requestContext.getHeaderString("user"), requestContext.getHeaderString("password")));
} else if("security/logout".equals(info.getPath())) {
logout();
}
}