config/src/main/java/org/springframework/security/config/annotation/AbstractConfiguredSecurityBuilder.java
@SuppressWarnings("unchecked")
	public <C extends SecurityConfigurer<O, B>> C removeConfigurer(Class<C> clazz) {
		List<SecurityConfigurer<O, B>> configs = this.configurers.remove(clazz);
		if (configs == null) {
			return null;
		}
		if (configs.size() != 1) {
			throw new IllegalStateException("Only one configurer expected for type "
					+ clazz + ", but got " + configs);
		}
		return (C) configs.get(0);
	}
@SuppressWarnings("unchecked")
	public <C extends SecurityConfigurer<O, B>> C removeConfigurer(Class<C> clazz) {
		List<SecurityConfigurer<O, B>> configs = this.configurers.remove(clazz);
		if (configs == null) {
			return null;
		}
		if (configs.size() != 1) {
			throw new IllegalStateException("Only one configurer expected for type "
					+ clazz + ", but got " + configs);
		}
		return (C) configs.get(0);
	}
@ SuppressWarnings ( "unchecked" ) public < C extends SecurityConfigurer < O , B > > C removeConfigurer ( Class < C > clazz ) { List < SecurityConfigurer < O , B > > configs = this . configurers . remove ( clazz ) ; if ( configs == null ) { return null ; } if ( configs . size ( ) != 1 ) { throw new IllegalStateException ( "Only one configurer expected for type " + clazz + ", but got " + configs ) ; } return ( C ) configs . get ( 0 ) ; }
Removes and returns the {@link SecurityConfigurer} by its class name or
<code>null</code> if not found. Note that object hierarchies are not considered.

@param clazz
@return
Removes and returns the { @link SecurityConfigurer } by its class name or <code > null< / code > if not found . Note that object hierarchies are not considered .