Я разработал приложение с пружинным ботинком, которое отлично работает. Существует спокойный контроллер. Я попытался добавить весеннюю безопасность на некоторые страницы. конечная точка контроллера Rest являетсяКак включить методы POST, PUT AND DELETE в весенней безопасности
/api/greetings
Я настроил параметры безопасности в классе ниже.
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/", "/home","/api/greetings").permitAll()
//.antMatchers("/api/greetings","").permitAll()//can't do this
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.permitAll()
.and()
.logout()
.permitAll();
}
Теперь, когда я попытался получить доступ к конечной точке Rest, из Rest-клиент (Почтальон), только метод GET доступен и я получаю 403 Forbidden ответ, если я пытаюсь POST, PUT или DELETE.
{
"timestamp": 1467223888525,
"status": 403,
"error": "Forbidden",
"message": "Invalid CSRF Token 'null' was found on the request parameter '_csrf' or header 'X-CSRF-TOKEN'.",
"path": "/api/greetings/2"
}
Как решить эту проблему. Я новичок в Spring Security.
Поскольку мое приложение не является браузером, отключение csrf не повредит, и это сработало для меня. Мне было любопытно, что, если я не хочу отключать csrf, или если мое приложение также является веб-приложением, я нашел эту ссылку. Не пробовал, хотя и попытаюсь в ближайшее время. http://stackoverflow.com/questions/27182701/how-do-i-send-spring-csrf-token-from-postman-rest-client – Rajan