我尝试实现SpringSecurity和SpringData的集成但是我收到错误当我启动应用程序时,我的pom.xml:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-data</artifactId>
</dependency>
我创建了这个类:
public class SecurityEvaluationContextExtension extends EvaluationContextExtensionSupport {
@Override
public String getExtensionId() {
return "security";
}
@Override
public SecurityExpressionRoot getRootObject() {
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
return new SecurityExpressionRoot(authentication) {};
}
}
我创建了配置:
@Bean
public EvaluationContextExtension securityExtension() {
return new SecurityEvaluationContextExtension();
}
当我启动应用程序时,我收到上面的错误:
Caused by: java.lang.IllegalArgumentException: Authentication object cannot be null
at org.springframework.security.access.expression.SecurityExpressionRoot. <init>(SecurityExpressionRoot.java:61)
at br.com.wts.mobione.conf.security.SecurityEvaluationContextExtension$1. <init>(SecurityEvaluationContextExtension.java:18)
at br.com.wts.mobione.conf.security.SecurityEvaluationContextExtension.getRootObject(SecurityEvaluationContextExtension.java:18)
at br.com.wts.mobione.conf.security.SecurityEvaluationContextExtension.getRootObject(SecurityEvaluationContextExtension.java:1)
我遵循了本教程:
谢谢。