集成SpringSecurity,SpringData和SpEL支持

时间:2016-12-13 14:40:43

标签: spring spring-boot spring-security spring-data

我尝试实现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)

我遵循了本教程:

enter link description here

谢谢。

0 个答案:

没有答案