|
@@ -40,6 +40,7 @@ import org.springframework.context.ApplicationContextAware;
|
|
import org.springframework.context.annotation.Bean;
|
|
import org.springframework.context.annotation.Bean;
|
|
import org.springframework.context.expression.BeanFactoryResolver;
|
|
import org.springframework.context.expression.BeanFactoryResolver;
|
|
import org.springframework.expression.BeanResolver;
|
|
import org.springframework.expression.BeanResolver;
|
|
|
|
+import org.springframework.security.core.annotation.AnnotationTemplateExpressionDefaults;
|
|
import org.springframework.security.core.context.SecurityContextHolder;
|
|
import org.springframework.security.core.context.SecurityContextHolder;
|
|
import org.springframework.security.core.context.SecurityContextHolderStrategy;
|
|
import org.springframework.security.core.context.SecurityContextHolderStrategy;
|
|
import org.springframework.security.web.FilterChainProxy;
|
|
import org.springframework.security.web.FilterChainProxy;
|
|
@@ -82,12 +83,15 @@ class WebMvcSecurityConfiguration implements WebMvcConfigurer, ApplicationContex
|
|
private SecurityContextHolderStrategy securityContextHolderStrategy = SecurityContextHolder
|
|
private SecurityContextHolderStrategy securityContextHolderStrategy = SecurityContextHolder
|
|
.getContextHolderStrategy();
|
|
.getContextHolderStrategy();
|
|
|
|
|
|
|
|
+ private AnnotationTemplateExpressionDefaults templateDefaults;
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
@SuppressWarnings("deprecation")
|
|
@SuppressWarnings("deprecation")
|
|
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
|
|
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
|
|
AuthenticationPrincipalArgumentResolver authenticationPrincipalResolver = new AuthenticationPrincipalArgumentResolver();
|
|
AuthenticationPrincipalArgumentResolver authenticationPrincipalResolver = new AuthenticationPrincipalArgumentResolver();
|
|
authenticationPrincipalResolver.setBeanResolver(this.beanResolver);
|
|
authenticationPrincipalResolver.setBeanResolver(this.beanResolver);
|
|
authenticationPrincipalResolver.setSecurityContextHolderStrategy(this.securityContextHolderStrategy);
|
|
authenticationPrincipalResolver.setSecurityContextHolderStrategy(this.securityContextHolderStrategy);
|
|
|
|
+ authenticationPrincipalResolver.setTemplateDefaults(this.templateDefaults);
|
|
argumentResolvers.add(authenticationPrincipalResolver);
|
|
argumentResolvers.add(authenticationPrincipalResolver);
|
|
argumentResolvers
|
|
argumentResolvers
|
|
.add(new org.springframework.security.web.bind.support.AuthenticationPrincipalArgumentResolver());
|
|
.add(new org.springframework.security.web.bind.support.AuthenticationPrincipalArgumentResolver());
|
|
@@ -109,6 +113,9 @@ class WebMvcSecurityConfiguration implements WebMvcConfigurer, ApplicationContex
|
|
if (applicationContext.getBeanNamesForType(SecurityContextHolderStrategy.class).length == 1) {
|
|
if (applicationContext.getBeanNamesForType(SecurityContextHolderStrategy.class).length == 1) {
|
|
this.securityContextHolderStrategy = applicationContext.getBean(SecurityContextHolderStrategy.class);
|
|
this.securityContextHolderStrategy = applicationContext.getBean(SecurityContextHolderStrategy.class);
|
|
}
|
|
}
|
|
|
|
+ if (applicationContext.getBeanNamesForType(AnnotationTemplateExpressionDefaults.class).length == 1) {
|
|
|
|
+ this.templateDefaults = applicationContext.getBean(AnnotationTemplateExpressionDefaults.class);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|