0
私はDemand
エンティティを持っています。私は問題なくエンティティを更新することができますが、私の承認はセキュリティ上の問題があると思います。あなたSEとしてSpring MVCとThymeleafはエンティティIDリークを防ぎます
demandController
@RequestMapping(value = "/details/{id}", method = RequestMethod.POST)
public String updateDemand(@PathVariable("id") Long id, @Valid @ModelAttribute Demand demand, BindingResult result) {
if (result.hasErrors()) {
return "demandUpdateForm";
} else {
demand.setDemandId(id);
demandService.updateDemand(demand);
return "redirect:/demands";
}
}
serviceImpl
@Override
public Demand updateDemand(Demand demand) {
return demandRepository.save(demand);
}
フォーム
<form id="vendorForm" th:action="@{/demands/details/__${demand.demandId}__}" th:object="${demand}" method="post" >
私はアクションからDemandId
を得る。たとえば、第5番目のIDのdemand
を更新して、更新フォームを取得したいとします。その後、開発ツールを使用してdemandId
を変更し、[送信]をクリックします。私が2番目のidと2番目のidを変更した場合、2番目のID demand
は5番目のものではありません。どうすればこのような状況を防ぐことができますか?
私は15のような私の需要エンティティに多くのフィールドを持っています。フィールドに新しい値を設定する簡単な方法はありますか? – fatiherdem
私の仕事はあなたを提供するために、あなたは次の作業を決める:) – sanluck