static doWithAuth()

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()
			}
		}
	}