@groovy.transform.CompileStatic class SecurityAutoConfigurationExcluder extends java.lang.Object implements AutoConfigurationImportFilter, EnvironmentAware
Automatically excludes Spring Boot security auto-configuration classes that conflict with the Grails Spring Security plugin.
When the Grails Spring Security plugin is on the classpath, Spring Boot's
security auto-configurations (e.g. SecurityAutoConfiguration,
SecurityFilterAutoConfiguration) create duplicate
SecurityFilterChain beans and other security infrastructure that
conflicts with the plugin's own bean definitions in
SpringSecurityCoreGrailsPlugin.doWithSpring.
Previously, users had to manually exclude up to 7 auto-configuration classes
in application.yml. This filter removes that requirement by
automatically filtering them out during Spring Boot's auto-configuration
discovery phase.
To disable this filter and allow Spring Boot's security auto-configurations
to run, set the following property in application.yml:
grails:
plugin:
springsecurity:
excludeSpringSecurityAutoConfiguration: false
Registered via META-INF/spring.factories as an
AutoConfigurationImportFilter. This runs before auto-configuration
bytecode is loaded, so there is no performance overhead from excluded classes.
| Type | Name and description |
|---|---|
static java.lang.String |
ENABLED_PROPERTY |
| Constructor and description |
|---|
SecurityAutoConfigurationExcluder() |
| Type Params | Return Type | Name and description |
|---|---|---|
|
static java.util.Set<java.lang.String> |
getExcludedAutoConfigurations()Returns the set of auto-configuration class names that this filter excludes. |
|
boolean[] |
match(java.lang.String[] autoConfigurationClasses, AutoConfigurationMetadata autoConfigurationMetadata) |
|
void |
setEnvironment(Environment environment) |
| Methods inherited from class | Name |
|---|---|
class java.lang.Object |
java.lang.Object#equals(java.lang.Object), java.lang.Object#getClass(), java.lang.Object#hashCode(), java.lang.Object#notify(), java.lang.Object#notifyAll(), java.lang.Object#toString(), java.lang.Object#wait(), java.lang.Object#wait(long), java.lang.Object#wait(long, int) |
Returns the set of auto-configuration class names that this filter excludes. Exposed for testing and diagnostic purposes.