Guard ErrorPageSecurityFilter configuration with ConditionalOnClass
Update `ErrorPageSecurityFilterConfiguration` to guard against the case where `spring-security-core` is on the classpath but `spring-security-web` is not. Fixes gh-28774
This commit is contained in:
parent
49e408828c
commit
e7ff2cf358
|
@ -21,6 +21,7 @@ import java.util.EnumSet;
|
|||
import javax.servlet.DispatcherType;
|
||||
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
|
||||
import org.springframework.boot.web.servlet.FilterRegistrationBean;
|
||||
import org.springframework.boot.web.servlet.filter.ErrorPageSecurityFilter;
|
||||
|
@ -35,6 +36,7 @@ import org.springframework.security.web.access.WebInvocationPrivilegeEvaluator;
|
|||
* @author Madhura Bhave
|
||||
*/
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
@ConditionalOnClass(WebInvocationPrivilegeEvaluator.class)
|
||||
@ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.SERVLET)
|
||||
class ErrorPageSecurityFilterConfiguration {
|
||||
|
||||
|
|
|
@ -242,6 +242,18 @@ class SecurityAutoConfigurationTests {
|
|||
}));
|
||||
}
|
||||
|
||||
@Test
|
||||
void filterForErrorPageSecurityInterceptorWhenWebInvocationPrivilegeEvaluatorNotPresent() {
|
||||
this.contextRunner.withClassLoader(new FilteredClassLoader("org.springframework.security.config"))
|
||||
.run((context) -> assertThat(context).doesNotHaveBean("errorPageSecurityFilter"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void filterForErrorPageSecurityInterceptorConditionalOnClass() {
|
||||
this.contextRunner.withClassLoader(new FilteredClassLoader("org.springframework.security.web"))
|
||||
.run((context) -> assertThat(context).doesNotHaveBean("errorPageSecurityFilter"));
|
||||
}
|
||||
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
@TestAutoConfigurationPackage(City.class)
|
||||
static class EntityConfiguration {
|
||||
|
|
Loading…
Reference in New Issue