我们API的客户不使用补丁,我希望避免它用于维护开销。我不想禁用POST或PUT。
答案 0 :(得分:2)
可以在安全级别处理,方法是扩展WebSecurityConfigurerAdapter(在spring-security-config中可用)并覆盖configure(HttpSecurity http)
以拒绝对目标URL的PATCH请求:
@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();
}
}
任何PATCH到目标网址的尝试都将失败,并显示401 Unauthorized
错误。
答案 1 :(得分:0)
也许有必要将插件插入REST控制器......例如:
@RestController
@RequestMapping("/api/...")
@ExposesResourceFor(...)
public class MyController {
...
@PatchMapping
HttpEntity<?> patch() {
return new ResponseEntity<>(HttpStatus.METHOD_NOT_ALLOWED);
}
}