다음과 같은 데이터 액세스 API가 있습니다.데이터 영역에 대한 사용자 액세스 권한을 확인하기위한 좋은 설계입니까?
public interface IDataAccess {
void save(Doc doc);
Doc retrieve(DocId id);
void delete(Doc doc);
}
사용자가 권한에 따라 문서에서 수행 할 수있는 작업을 제한해야합니다. 필자가 수행해야만하는 생각은 데이터 액세스 작업을 미러링하는 다른 API를 만드는 것이었지만 작업을 수행하기 전에 사용자 자격 증명을 사용하여이를 확인했습니다.
public interface IAuthDataAccess {
// User is a previously authenticated user
void save(Doc doc, User user) throws SecurityException;
...
}
public class AuthDataAccess implements IAuthDataAccess {
IAuth auth = ...
IDataAccess dataAccess = ...
public void save(Doc doc, User user) throws SecurityException {
if (auth.saveAllowed(doc, user)) {
dataAccess.save(doc);
} else {
throw new SecurityException("access denied");
}
}
...
}
IAuthDataAccess API를 사용하여 데이터에 액세스했습니다. 층. 데이터 액세스 레이어와 함께 인증/인증을 묶는 더 좋은 방법이 있습니까?