2016-12-16 7 views
1

で保護されていないページの結果を投稿、start.htmlここ:私は次のようにセキュリティを設定するには、春ブーツスターターセキュリティを使用してい春のセキュリティ - 私は無担保ページに次の形式を持つ403

<form action="approve" method="POST"> 
    <button type="submit">Submit</button> 
</form> 

@Configuration 
@EnableWebSecurity 
public class WebSecurityConfig extends WebSecurityConfigurerAdapter { 

    @Override 
    protected void configure(HttpSecurity http) throws Exception { 
     http 
      .authorizeRequests() 
       .antMatchers("/css/**", "/images/**", "/js/**", "/lib/**", "/fonts/**", "/start.html", "/approve") 
       .permitAll() 
       .anyRequest().fullyAuthenticated() 
       .and() 
       .formLogin() 
       .loginPage("/login") 
       .permitAll(); 
    } 

フォームが送信されると、それはコントローラによって処理されます

@Controller 
@RequiredArgsConstructor 
public class ApprovalController { 

    @RequestMapping("/approve") 
    public @ResponseBody void handleRequest(HttpServletResponse response) throws IOException { 
     //write to the output stream of response, etc. 
    } 
} 

しかしポスト承認が要求された場合、次のエラーが発生します。

Whitelabel Error Page 

This application has no explicit mapping for /error, so you are seeing this as a fallback. 

// current date 
There was an unexpected error (type=Forbidden, status=403). 
Invalid CSRF Token 'null' was found on the request parameter '_csrf' or header 'X-CSRF-TOKEN'. 

承認コントローラへの投稿を保護しないように指定する方法を教えてください。

答えて

1

CSRF tokenを送信していないため、403が表示されています。

あなたは、フォームのCSRFトークンなどの隠し入力を追加する必要があります

<input type='hidden' value='${_csrf.token}' name='${_csrf.parameterName}'/> 

またはdisable CSRF

関連する問題