1
で、一般的なリポジトリのためのSpeIでエンティティネームまたはインタフェース名を取得するにはどのように私はしかし、私はエンティティクラス名を取得する方法を取得することはできません、事前認証を持つ各メソッドを、一般的なセキュリティCRUDリポジトリを作成し、注釈を付けたいのですが事前認証
@NoRepositoryBean
public interface AbstractEntityRepository<T extends AbstractEntity> extends CrudRepository<T, String> {
@Override
@PreAuthorize("hasPermission(null, #entityName, 'find');
Iterable<T> findAll();
}
public interface UserRepository extends AbstractEntityRepository<User> {}
この場合、entityNameは常にnullです。
@Component
@Log
public class CustomPermissionEvaluator implements PermissionEvaluator {
@Override
public boolean hasPermission(Authentication authentication, Serializable targetId, String targetType, Object permission)
log.fine("type " + targetType); // <- null
return true;
}
...
"User"または "UserRepository"を取得するにはどうすればよいですか?
私はカスタムクラス名リゾルバをコード化することができましたが、それが最善のアプローチであるとは確信していません – alex