2016-12-27 6 views
2

私たちのAPIのクライアントはパッチを使用していないので、メンテナンスのオーバーヘッドを避けたいです。私はPOSTやPUTを無効にしたくありません。spring-data-restリポジトリでPATCHを特に無効にすることはできますか?

+0

最も単純なオプションは、おそらくSpringセキュリティまたはすべてのPATCH要求を拒否する単純なサーブレットフィルタを使用してHTTPレベルで処理することです。 –

答えて

0

おそらくたとえば... RESTコントローラにプラグを配置する必要がある:それは(spring-security-configで利用可能)WebSecurityConfigurerAdapterを拡張することにより、セキュリティレベルで処理することができる

@RestController 
@RequestMapping("/api/...") 
@ExposesResourceFor(...) 
public class MyController { 
... 
    @PatchMapping 
    HttpEntity<?> patch() { 
     return new ResponseEntity<>(HttpStatus.METHOD_NOT_ALLOWED); 
    } 
} 
0

とにconfigure(HttpSecurity http)をオーバーライドターゲットURLにPATCH要求を拒否:ターゲットURLにパッチに

@Configuration 
@EnableWebSecurity 
public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter { 

    @Override 
    protected void configure(HttpSecurity http) throws Exception { 
     http.authorizeRequests() 
       .antMatchers(HttpMethod.PATCH, "/path_to_target_url").denyAll(); 
    } 

} 

しようとすると、401 Unauthorizedエラーで失敗します。

関連する問題