Skip to content

Commit 6532daf

Browse files
committed
Restored dependency checks on Spring Security
1 parent 6c4fedb commit 6532daf

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/thymeleaf/ThymeleafAutoConfiguration.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@
5353
import org.springframework.context.annotation.Configuration;
5454
import org.springframework.context.annotation.Import;
5555
import org.springframework.core.Ordered;
56+
import org.springframework.security.web.server.csrf.CsrfToken;
5657
import org.springframework.util.MimeType;
5758
import org.springframework.util.unit.DataSize;
5859
import org.springframework.web.servlet.resource.ResourceUrlEncodingFilter;
@@ -239,7 +240,7 @@ DataAttributeDialect dialect() {
239240
}
240241

241242
@Configuration(proxyBeanMethods = false)
242-
@ConditionalOnClass({ SpringSecurityDialect.class })
243+
@ConditionalOnClass({ SpringSecurityDialect.class, CsrfToken.class })
243244
static class ThymeleafSecurityDialectConfiguration {
244245

245246
@Bean

spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/thymeleaf/ThymeleafServletAutoConfigurationTests.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import org.thymeleaf.TemplateEngine;
3232
import org.thymeleaf.context.Context;
3333
import org.thymeleaf.context.WebContext;
34+
import org.thymeleaf.extras.springsecurity6.dialect.SpringSecurityDialect;
3435
import org.thymeleaf.spring6.SpringTemplateEngine;
3536
import org.thymeleaf.spring6.templateresolver.SpringResourceTemplateResolver;
3637
import org.thymeleaf.spring6.view.ThymeleafView;
@@ -86,6 +87,12 @@ void autoConfigurationBackOffWithoutThymeleafSpring() {
8687
.run((context) -> assertThat(context).doesNotHaveBean(TemplateEngine.class));
8788
}
8889

90+
@Test
91+
void autoConfigurationWhenSpringSecurityNotPresentShouldNotAddSecurityDialect() {
92+
this.contextRunner.withClassLoader(new FilteredClassLoader("org.springframework.security"))
93+
.run((context) -> assertThat(context).doesNotHaveBean(SpringSecurityDialect.class));
94+
}
95+
8996
@Test
9097
void createFromConfigClass() {
9198
this.contextRunner.withPropertyValues("spring.thymeleaf.mode:HTML", "spring.thymeleaf.suffix:")

0 commit comments

Comments
 (0)