sirven - reflection en java
Caso de uso válido para las anotaciones @PostAuthorize y @PostFilter (2)
Tanto el @PostAuthorize como el @PostFilter se usan, principalmente, en combinación con ACL. Donde @PostAuthorize generará una excepción si se devuelve algo a lo que no se tiene acceso, el @PostFilter eliminará los objetos a los que no se tiene acceso (en general, útiles al devolver colecciones de elementos).
Acabamos de migrar a Spring Security 3.0.8 desde 2.0.8 (podemos actualizar a la versión más reciente que es 3.2.X ya que nuestras bibliotecas principales de primavera todavía están en 3.0.X , y planeamos actualizarlas más adelante cuando el negocio lo permita).
Entiendo que ahora tenemos anotaciones para asegurar métodos como @PreAuthorize , @PostAuthorize , @Secured , @PreFilter y @PostFilter .
Entiendo el uso de @PreAuthorize , que realmente tiene sentido. ¿Pero no puede pensar en ningún caso de uso válido donde alguna @PostAuthorize @PostFilter anotación @PostAuthorize o @PostFilter ?
¿Puede alguien que lo usó explicarme un caso de uso razonable para usarlo?
¡Gracias por adelantado!
@PostFilter filtra la colección devuelta o las matrices después de ejecutar el método. Spring security proporciona un objeto incorporado denominado filterObject en el que @PostFilter realiza la tarea de filtrado.
@PostFilter se puede usar en la capa de servicio con @PreAuthorize y @PostAuthorize .
Use la interfaz para declarar la operación del filtro.
public interface IBookService {
@PreAuthorize ("hasRole(''ROLE_READ'')")
@PostFilter ("filterObject.owner == authentication.name")
public List<Book> getBooks();
@PreFilter("filterObject.owner == authentication.name")
public void addBook(List<Book> books);
}