2017-06-01 11 views
1

私はvaadinアプリケーションで春のセキュリティを実装しようとしているが、私は問題を抱えている、ページにログインした後、それは私にエラーを示しています403 CSRFトークンエラー

{"status":403,"error":"Forbidden","message":"Could not verify the provided CSRF token because your session was not found.","path":"/"}

私がされました多くのことをしようとしているが、それらのどれもここで、働かないことは私の標準的なセキュリティ設定のクラスです:

//SecurityConfig.java  
@Configuration 
@EnableWebSecurity 
public class SecurityConfig extends WebSecurityConfigurerAdapter { 

    @Autowired 
    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { 
     auth 
      .inMemoryAuthentication() 
      .withUser("user") 
      .password("password") 
      .roles("USER"); 
    } 
} 

コントローラクラス:

//HomeController.java 
@RestController 
public class HomeController { 

    @GetMapping("/") 
    public String index() { 
     return "Welcome to the home page!"; 
    } 

@GetMapping("/error") 
public String error(){ 
    return "Error!"; 
} 

}

そしてVaadin UIクラス

//VaadinUI.java 
@SpringUI 
public class VaadinUI extends UI { 
    VerticalLayout layout = new VerticalLayout(); 

    com.vaadin.ui.Label label = new com.vaadin.ui.Label("Witaj"); 

    @Autowired 
    public VaadinUI() {} 

    @Override 
    protected void init(VaadinRequest request) { 
     setContent(layout); 
     layout.addComponent(label); 
    } 

}

そして、私のpom.xml春のセキュリティとVaadinを使用する方法

//pom.xml 
    <?xml version="1.0" encoding="UTF-8"?> 
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
     <modelVersion>4.0.0</modelVersion> 

     <groupId>example.com</groupId> 
     <artifactId>LDAPSpringInitializr</artifactId> 
     <version>0.0.1-SNAPSHOT</version> 
     <packaging>jar</packaging> 

     <name>LDAPSpringInitializr</name> 
     <description>Demo project for Spring Boot</description> 

     <parent> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-parent</artifactId> 
      <version>1.5.3.RELEASE</version> 
      <relativePath/> <!-- lookup parent from repository --> 
     </parent> 

     <properties> 
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
      <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
      <java.version>1.8</java.version> 
      <vaadin.version>8.0.5</vaadin.version> 
     </properties> 

     <dependencies> 
      <dependency> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-starter-data-jpa</artifactId> 
      </dependency> 
      <dependency> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-starter-data-ldap</artifactId> 
      </dependency> 
      <dependency> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-starter-security</artifactId> 
      </dependency> 
      <dependency> 
       <groupId>com.vaadin</groupId> 
       <artifactId>vaadin-spring-boot-starter</artifactId> 
      </dependency> 
      <dependency> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-starter-web</artifactId> 
      </dependency> 

      <dependency> 
       <groupId>org.postgresql</groupId> 
       <artifactId>postgresql</artifactId> 
       <scope>runtime</scope> 
      </dependency> 
      <dependency> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-starter-test</artifactId> 
       <scope>test</scope> 
      </dependency> 
     </dependencies> 

     <dependencyManagement> 
      <dependencies> 
       <dependency> 
        <groupId>com.vaadin</groupId> 
        <artifactId>vaadin-bom</artifactId> 
        <version>${vaadin.version}</version> 
        <type>pom</type> 
        <scope>import</scope> 
       </dependency> 
      </dependencies> 
     </dependencyManagement> 

     <build> 
      <plugins> 
       <plugin> 
        <groupId>org.springframework.boot</groupId> 
        <artifactId>spring-boot-maven-plugin</artifactId> 
       </plugin> 
      </plugins> 
     </build> 


    </project> 

? 私は春のセキュリティを後でLDAPに接続したいと思っています。

答えて

4

私はVaadinとその慣れていないんだけど、この記事https://vaadin.com/blog/-/blogs/filter-based-spring-security-in-vaadin-applicationsはVaadinが既にCSRF保護を提供することを示唆しているので、あなたがあなたのSecurityConfigで

@Override 
protected void configure(final HttpSecurity httpSecurity) throws Exception { 
    httpSecurity.csrf().disable(); 
} 

を経て春にそれを無効にすることができます。

+0

春のセキュリティで動作するVaadin!私は今、LDAP、挨拶に接続しようとしています! – Rafalsonn

関連する問題