Java, SpringMVC, Forbidden403, при добавлении в базу данных

96
15 октября 2019, 01:40

Только начала разбираться со Spring. Пытаюсь добавить данные в БД и отобразить их списком на страничке.

/**
* Сущность
**/
@Entity
@Table(name = "que")
public class Que {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    private String queName;
    private String queDescription;
    public Que(){}
    public Que(String queName, String queDescription) {
        this.queName = queName;
        this.queDescription = queDescription;
    }
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getQueName() {
        return queName;
    }
    public void setQueName(String queName) {
        this.queName = queName;
    }
    public String getQueDescription() {
        return queDescription;
    }
    public void setQueDescription(String queDescription) {
        this.queDescription = queDescription;
    }
}
/**
 * Репозиторий
 */
public interface QueRepo extends CrudRepository<Que, Long> {
}

/**
 * Контроллер
 */
@Controller
public class QueController {
    @Autowired
    private QueRepo queRepo;
    @GetMapping("/que")
    public String createQue(Model model){
        Iterable<Que> ques = queRepo.findAll();
        model.addAttribute("ques", ques);
        return "createQue";
    }
    @PostMapping("/que")
    public String createQue(@RequestParam String queName,
                            @RequestParam String queDescription,
                            Model model){
        Que que = new Que(queName, queDescription);
        queRepo.save(que);
        Iterable<Que> ques = queRepo.findAll();
        model.addAttribute("ques", ques);
        return "createQue";
    }
}

<form method="post">
 <input type="text" name="queName" class="form-control mt-3 col-sm-8 " placeholder="Name of que">
 <input type="text" name="queDescription" class="form-control mt-3 col-sm-8" placeholder="Description">
 <button class="btn btn-outline-info mt-3" formmethod="post" type="submit">Create</button>
</form>
<#list ques as que>
 <strong>${que.queName}</strong>
 <i>${que.queDescription}</i>
</#list>

Проблема: выдается ошибка Forbidden-403, больше никаких ошибок нет, не могу понять в чем дело и как это исправить?

Answer 1

Просто забыла добавить csrf_token в форме отправки в базу данных. Т.е. код freemaker должен был выглядеть так:

<form method="post">
        <input type="hidden" name="_csrf" value="${_csrf.token}" />
        <input type="text" name="queName" class="form-control mt-3 col-sm-8 " placeholder="Name of que">
        <input type="text" name="queDescription" class="form-control mt-3 col-sm-8" placeholder="Description">
        <button class="btn btn-outline-info mt-3" formmethod="post" type="submit">Create</button>
    </form>

Не забывайте csrf если используете Spring Security

READ ALSO
Использование web-страниц в JavaFX приложении

Использование web-страниц в JavaFX приложении

Передо мной предстала следующая задача: написать некоторый софт на Java, с применением GUI на JavaFXодной из функций будущей программы должна быть...

129
Обновление списка в RecyclerView

Обновление списка в RecyclerView

Для обновления списка в RecyclerView знаю три способа

169
Сортировка массивов на JAVA

Сортировка массивов на JAVA

Компилятор выдаёт ошибку:

121