zoukankan      html  css  js  c++  java
  • Spring Data Integration

    Spring Security提供了Spring数据集成,允许在查询中引用当前用户。将用户包括在查询中以支持分页结果不仅有用,而且是必要的,因为之后过滤结果将不会扩展。

    38. Spring Data & Spring Security Configuration

    要使用这种支持,请提供一个类型为SecurityEvaluationContextExtension的bean。在Java配置中,这看起来像:

    1 @Bean
    2 public SecurityEvaluationContextExtension securityEvaluationContextExtension() {
    3     return new SecurityEvaluationContextExtension();
    4 }

    xml配置如下:

    1 <bean class="org.springframework.security.data.repository.query.SecurityEvaluationContextExtension"/>

    39. Security Expressions within @Query

    现在可以在您的查询中使用Spring Security了。例如:

    1 @Repository
    2 public interface MessageRepository extends PagingAndSortingRepository<Message,Long> {
    3     @Query("select m from Message m where m.to.id = ?#{ principal?.id }")
    4     Page<Message> findInbox(Pageable pageable);
    5 }

    这将检查 Authentication.getPrincipal().getId() 等于邮件的收件人。请注意,此示例假设您已经将主体自定义为具有id属性的对象。通过公开安全性评估上下文扩展SecurityEvaluationContextExtension bean,所有通用安全性表达式都可以在查询中使用。

  • 相关阅读:
    Android启动过程介绍
    第九届蓝桥杯Java B组
    二分模板和区别
    第十届蓝桥杯Java B组
    2019 ICPC Asia Nanjing Regional(现场赛)
    PAT 甲级 1057 Stack
    P1972 [SDOI2009]HH的项链
    Python中的字典排序
    Comet OJ
    ekmp模板
  • 原文地址:https://www.cnblogs.com/jrkl/p/13510254.html
Copyright © 2011-2022 走看看