私は、PortalUser
がCompany
によってのみアクセス可能なTicket
にアクセスして作成できるWebアプリケーションを作成するためにSpringを利用しています。すべてのCRUD操作を安全にするためにSpring Secuityを使用するにはどうすればよいですか?
既定では、読み取り/書き込みアクセス権を持つすべての認証ユーザーは、すべてのCRUD操作を実行できます。問題は、認証されたユーザーが、アクセス権を持たないIDを選択して、Company
の外部で操作を実行できることです。 バーからのチケットは、example.com/tickets/{any番号}
@Controller
@RequestMapping("/tickets")
public class TicketController {
@RequestMapping(value = "/{id}", produces = "text/html")
public String TicketController.show(@PathVariable("id") Long id, Model uiModel) {
...
}
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE, produces = "text/html")
public String TicketController.delete(@PathVariable("id") Long id, @RequestParam(value = "page", required = false) Integer page, @RequestParam(value = "size", required = false) Integer size, Model uiModel){
...
}
@RequestMapping(method = RequestMethod.GET, produces = "text/html")
public String TicketController.listDatatables(Model uiModel, HttpServletRequest request) {
...
}
}
でチケットへのアクセスを直接購入するなど、当社フーは非常に簡単に削除できます
、ビュー、すべてのコントローラで各メソッドを変更することなく、ユーザーが意図した範囲外のデータにアクセスできないようにする方法がありますか?
custom Filterが役に立つと思われます。私はGETの上で、パラメータマップを複製して変更することで企業を除外することができますが、すべての方法で解決策が見つかるわけではありません。
? – eruiz
@eruiz私は2.0.0.M1を使用しています – Jaym