Ich versuche Apis durch Spring Data REST ausgesetzt zu ermöglichen. Bisher bin ich in der Lage rollenbasierte Autorisierung das heißt zu tun:Verwendung von Spring Security ACL mit Spring Data REST
@RepositoryRestResource(path = "book")
public interface BookRepository extends JpaRepository<Book, Long> {
@PreAuthorize("hasRole('ROLE_ADMIN')")
<S extends Book> Book save(Book book);
}
auch im selben Projekt habe ich eine Dienstschicht mit ACL-Mechanismus, der arbeitet.
Ich bin nicht in der Lage NACHFILTER Ausdruck mit Spring Data REST verwenden heißt:
@PostFilter("hasPermission(filterObject, 'read') or hasPermission(filterObject, admin)")
List<Book> findAll();
Es ist von großer Hilfe sein würde, wenn jemand ACL mit Spring Data REST verwenden.
Anmerkung: Ich bin mir bewusst, unten offene Fragen:
https://jira.spring.io/browse/DATAREST-236
https://jira.spring.io/browse/SEC-2409
Sie Sir verdienen eine Aufwertung (sogar eineinhalb Jahre später) für die Zeit zu kommen und die Antwort auf Ihr eigenes Problem zu posten. Vielen Dank ! –
Wie filtern Sie die Ergebnisse mit '@ PostAuthorize' innerhalb einer 'findAll()' Funktion basierend auf individuellen Entity-Werten innerhalb des auslagerbaren Arrays? –
@ W.M. pageable '@ PostAuthorize' ist keine gute Idee. Weitere Informationen finden Sie unter https://docs.spring.io/spring-security/site/docs/4.0.x/reference/htmlsingle/#data-query –