core/src/main/java/org/springframework/security/access/intercept/AbstractSecurityInterceptor.java
public void afterPropertiesSet() throws Exception {
		Assert.notNull(getSecureObjectClass(),
				"Subclass must provide a non-null response to getSecureObjectClass()");
		Assert.notNull(this.messages, "A message source must be set");
		Assert.notNull(this.authenticationManager, "An AuthenticationManager is required");
		Assert.notNull(this.accessDecisionManager, "An AccessDecisionManager is required");
		Assert.notNull(this.runAsManager, "A RunAsManager is required");
		Assert.notNull(this.obtainSecurityMetadataSource(),
				"An SecurityMetadataSource is required");
		Assert.isTrue(this.obtainSecurityMetadataSource()
				.supports(getSecureObjectClass()),
				() -> "SecurityMetadataSource does not support secure object class: "
						+ getSecureObjectClass());
		Assert.isTrue(this.runAsManager.supports(getSecureObjectClass()),
				() -> "RunAsManager does not support secure object class: "
						+ getSecureObjectClass());
		Assert.isTrue(this.accessDecisionManager.supports(getSecureObjectClass()),
				() -> "AccessDecisionManager does not support secure object class: "
						+ getSecureObjectClass());

		if (this.afterInvocationManager != null) {
			Assert.isTrue(this.afterInvocationManager.supports(getSecureObjectClass()),
					() -> "AfterInvocationManager does not support secure object class: "
							+ getSecureObjectClass());
		}

		if (this.validateConfigAttributes) {
			Collection<ConfigAttribute> attributeDefs = this
					.obtainSecurityMetadataSource().getAllConfigAttributes();

			if (attributeDefs == null) {
				logger.warn("Could not validate configuration attributes as the SecurityMetadataSource did not return "
						+ "any attributes from getAllConfigAttributes()");
				return;
			}

			Set<ConfigAttribute> unsupportedAttrs = new HashSet<>();

			for (ConfigAttribute attr : attributeDefs) {
				if (!this.runAsManager.supports(attr)
						&& !this.accessDecisionManager.supports(attr)
						&& ((this.afterInvocationManager == null) || !this.afterInvocationManager
								.supports(attr))) {
					unsupportedAttrs.add(attr);
				}
			}

			if (unsupportedAttrs.size() != 0) {
				throw new IllegalArgumentException(
						"Unsupported configuration attributes: " + unsupportedAttrs);
			}

			logger.debug("Validated configuration attributes");
		}
	}
public void afterPropertiesSet() throws Exception {
		Assert.notNull(getSecureObjectClass(),
				"Subclass must provide a non-null response to getSecureObjectClass()");
		Assert.notNull(this.messages, "A message source must be set");
		Assert.notNull(this.authenticationManager, "An AuthenticationManager is required");
		Assert.notNull(this.accessDecisionManager, "An AccessDecisionManager is required");
		Assert.notNull(this.runAsManager, "A RunAsManager is required");
		Assert.notNull(this.obtainSecurityMetadataSource(),
				"An SecurityMetadataSource is required");
		Assert.isTrue(this.obtainSecurityMetadataSource()
				.supports(getSecureObjectClass()),
				() -> "SecurityMetadataSource does not support secure object class: "
						+ getSecureObjectClass());
		Assert.isTrue(this.runAsManager.supports(getSecureObjectClass()),
				() -> "RunAsManager does not support secure object class: "
						+ getSecureObjectClass());
		Assert.isTrue(this.accessDecisionManager.supports(getSecureObjectClass()),
				() -> "AccessDecisionManager does not support secure object class: "
						+ getSecureObjectClass());

		if (this.afterInvocationManager != null) {
			Assert.isTrue(this.afterInvocationManager.supports(getSecureObjectClass()),
					() -> "AfterInvocationManager does not support secure object class: "
							+ getSecureObjectClass());
		}

		if (this.validateConfigAttributes) {
			Collection<ConfigAttribute> attributeDefs = this
					.obtainSecurityMetadataSource().getAllConfigAttributes();

			if (attributeDefs == null) {
				logger.warn("Could not validate configuration attributes as the SecurityMetadataSource did not return "
						+ "any attributes from getAllConfigAttributes()");
				return;
			}

			Set<ConfigAttribute> unsupportedAttrs = new HashSet<>();

			for (ConfigAttribute attr : attributeDefs) {
				if (!this.runAsManager.supports(attr)
						&& !this.accessDecisionManager.supports(attr)
						&& ((this.afterInvocationManager == null) || !this.afterInvocationManager
								.supports(attr))) {
					unsupportedAttrs.add(attr);
				}
			}

			if (unsupportedAttrs.size() != 0) {
				throw new IllegalArgumentException(
						"Unsupported configuration attributes: " + unsupportedAttrs);
			}

			logger.debug("Validated configuration attributes");
		}
	}
public void afterPropertiesSet ( ) throws Exception { Assert . notNull ( getSecureObjectClass ( ) , "Subclass must provide a non-null response to getSecureObjectClass()" ) ; Assert . notNull ( this . messages , "A message source must be set" ) ; Assert . notNull ( this . authenticationManager , "An AuthenticationManager is required" ) ; Assert . notNull ( this . accessDecisionManager , "An AccessDecisionManager is required" ) ; Assert . notNull ( this . runAsManager , "A RunAsManager is required" ) ; Assert . notNull ( this . obtainSecurityMetadataSource ( ) , "An SecurityMetadataSource is required" ) ; Assert . isTrue ( this . obtainSecurityMetadataSource ( ) . supports ( getSecureObjectClass ( ) ) , ( ) -> "SecurityMetadataSource does not support secure object class: " + getSecureObjectClass ( ) ) ; Assert . isTrue ( this . runAsManager . supports ( getSecureObjectClass ( ) ) , ( ) -> "RunAsManager does not support secure object class: " + getSecureObjectClass ( ) ) ; Assert . isTrue ( this . accessDecisionManager . supports ( getSecureObjectClass ( ) ) , ( ) -> "AccessDecisionManager does not support secure object class: " + getSecureObjectClass ( ) ) ; if ( this . afterInvocationManager != null ) { Assert . isTrue ( this . afterInvocationManager . supports ( getSecureObjectClass ( ) ) , ( ) -> "AfterInvocationManager does not support secure object class: " + getSecureObjectClass ( ) ) ; } if ( this . validateConfigAttributes ) { Collection < ConfigAttribute > attributeDefs = this . obtainSecurityMetadataSource ( ) . getAllConfigAttributes ( ) ; if ( attributeDefs == null ) { logger . warn ( "Could not validate configuration attributes as the SecurityMetadataSource did not return " + "any attributes from getAllConfigAttributes()" ) ; return ; } Set < ConfigAttribute > unsupportedAttrs = new HashSet <> ( ) ; for ( ConfigAttribute attr : attributeDefs ) { if ( ! this . runAsManager . supports ( attr ) && ! this . accessDecisionManager . supports ( attr ) && ( ( this . afterInvocationManager == null ) || ! this . afterInvocationManager . supports ( attr ) ) ) { unsupportedAttrs . add ( attr ) ; } } if ( unsupportedAttrs . size ( ) != 0 ) { throw new IllegalArgumentException ( "Unsupported configuration attributes: " + unsupportedAttrs ) ; } logger . debug ( "Validated configuration attributes" ) ; } }
========================================================================================================
========================================================================================================