Запрет на добавление данных в бд(Spring)
Работало все хорошо, но после добавления Spring Security начали вылетать Whitelabel Error Page. There was an unexpected error (type=Forbidden, status=403). Forbidden при попытке добавить данные в бд.
//репозиторий добавления
import com.WebKurs.demo.Entity.Usr;
import org.springframework.data.jpa.repository.JpaRepository;
public interface UsrRepo extends JpaRepository<Usr, Long> {
Usr findByUsername(String username);
}
//Метод в котором добавляется новая запись
@PostMapping("/vacancy/add")
public String addVacancy(
@RequestParam String name,
@RequestParam String shortDescription,
@RequestParam String fullDescription,
@RequestParam BigDecimal price,
Model model){
Vacancy vacancy = new Vacancy(name, shortDescription, fullDescription, price);
jobRepo.save(vacancy);
return "redirect:/";
}
//SecurityInitializer
import org.springframework.security.web.context.AbstractSecurityWebApplicationInitializer;
public class SecurityInitializer extends AbstractSecurityWebApplicationInitializer {
}
//WebSecurityConfig
import com.WebKurs.demo.security.AuthProviderImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private AuthProviderImpl authProvider;
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.authenticationProvider(authProvider);
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/login","/registration").anonymous()
.and()
.formLogin()
.loginPage("/login")
.loginProcessingUrl("/login/process")
.and()
.logout();
}
}
//WebAppInitializer
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
public class WebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class[]{
WebSecurityConfig.class
};
}
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class[0];
}
@Override
protected String[] getServletMappings() {
return new String[] {"/"};
}
}
Ответы (1 шт):
Автор решения: bet9nz9
→ Ссылка
добавить csrf token или отключить csrf
Класс WebSecurityConfig в методе configure добавил .and().csrf().disable()