Closure doWithSpring()

in plugin-acl/plugin/src/main/groovy/grails/plugin/springsecurity/acl/SpringSecurityAclGrailsPlugin.groovy [102:152]


	Closure doWithSpring() {{ ->

		def conf = SpringSecurityUtils.securityConfig
		if (!conf || !conf.active) {
			return
		}

		SpringSecurityUtils.loadSecondaryConfig 'DefaultAclSecurityConfig'
		// have to get again after overlaying DefaultAclSecurityConfig
		conf = SpringSecurityUtils.securityConfig

		if (!conf.acl.active) {
			return
		}

		Class beanTypeResolverClass = conf.beanTypeResolverClass ?: BeanTypeResolver
		beanTypeResolver = beanTypeResolverClass.newInstance(conf, grailsApplication)

		boolean printStatusMessages = (conf.printStatusMessages instanceof Boolean) ? conf.printStatusMessages : true

		if (printStatusMessages) {
			println '\nConfiguring Spring Security ACL ...'
		}

		if (conf.useRunAs) {
			SpringSecurityUtils.registerProvider 'runAsAuthenticationProvider'
		}

		Map voterConfig = buildVoterConfig(conf)
		debug "voterConfig: $voterConfig"

		// core beans
		configureCoreBeans.delegate = delegate
		configureCoreBeans conf

		// expression support
		configureExpressionBeans.delegate = delegate
		configureExpressionBeans conf

		// secured beans
		configureSecuredBeans.delegate = delegate
		configureSecuredBeans conf

		// MetadataSource
		configureSecurityMetadataSource.delegate = delegate
		configureSecurityMetadataSource conf, voterConfig

		if (printStatusMessages) {
			println '... finished configuring Spring Security ACL\n'
		}
	}}