스프링 시큐리티 또는 시로 (Shiro)를 사용하여 "인 타이틀먼트"개념을 처리하는 가장 좋은 방법에 대한 의견을 듣고 싶습니다.스프링 보안 또는 시로 (Shiro)를 사용하는 인시던트에 대한 모범 사례
예를 들어, 말,이 같은 서명이있는 JAX-RS 엔드 포인트 상상 :
@Secured(AUTHORIZED_USER)
public AccountDetails getAccountDetails(String accountId) { ... }
또는 사용 :
AccountDetails getAccountDetails(String accountId);
봄 보안 사용을, 내가 좋아 구현 주석을 달 수있다 Shiro,
@RequiresAuthentication
public AccountDetails getAccountDetails(String accountId) { ... }
그러나 내가 찾고있는 것은 "best pra 사용자가 특정 계정 ID에 액세스 할 수있는 권한을 갖는지 확인하는 방법에 대해 "ctices"를 사용합니다 ("권한 부여 관리"라고합니다).
@Secured(AUTHORIZED_USER)
@AccountEntitled
public AccountDetails getAccountDetails(@Account String accountId) { ... }
(봄 보안을 사용하여 완전히 같은 간단하지 날을 친다, 그러나 나는 잘못 싶어요) :
나는 두개의 서로 다른 접근법을 상상할 수있다.
또는, 나는 AccountId
도메인 개체, 현재 보안 컨텍스트에 의해 개최 원칙은 사용자가 해당 계정을 볼 것을 허용하는 경우에만 AccountId
에 String
선회에 성공 공장을 도입 상상할 수 있었다. 그러나 그것은 조금 지저분 해지기 시작합니다.
전체적으로 나는 여기에 새로운 개념을 발명하고 싶지 않습니다. 이것은 빵 & 버터 물건처럼 보이지만, 모범 사례에 대한 신뢰할만한 권장 사항을 많이 찾지는 못했습니다.
의견을 보내 주셔서 감사합니다.