in plugin-core/plugin/src/main/groovy/grails/plugin/springsecurity/SpringSecurityUtils.groovy [546:567]
static doWithAuth(Closure<?> closure) {
boolean set = false
if (!authentication && SecurityRequestHolder.request) {
HttpSession httpSession = SecurityRequestHolder.request.getSession(false)
if (httpSession) {
def securityContext = httpSession.getAttribute(SPRING_SECURITY_CONTEXT_KEY)
if (securityContext instanceof SecurityContext) {
SecurityContextHolder.context = (SecurityContext)securityContext
set = true
}
}
}
try {
closure()
}
finally {
if (set) {
SecurityContextHolder.clearContext()
}
}
}