Spring Annotations

注解或参数 说明
SpringRunner.class SpringJUnit4ClassRunner.class 完全一样
@Autowired 来源于 Spring 框架。当 @Autowired(required = false) 时,若没有 Bean 可注入则不注入
@Inject 来源于 JavaEE 规范。与 @Autowired 功能相同,但没有 required 属性

@EnableGlobalMethodSecurity

注解或参数 说明
@EnableGlobalMethodSecurity @EnableGlobalMethodSecurity(prePostEnabled=true) 使系统支持 @PreAuthorize@PostAuthrize 两个注解。
@PreAuthorize REST 方法是否可以被调用
@PostAuthorize REST 方法的返回值是否允许被返回
  • @EnableGlobalMethodSecurity 一般与 @EnableWebSecurity 放在一起。

  • 举例:

    package com.concretepage.service;
    import org.springframework.security.access.prepost.PostAuthorize;
    import org.springframework.security.access.prepost.PreAuthorize;
    import com.concretepage.bean.Book;
    public interface IBookService {
        @PreAuthorize ("hasRole('ROLE_WRITE')")
        public void addBook(Book book);
    
        // returnObject 是内置的关键字
        @PostAuthorize ("returnObject.owner == authentication.name")
        public Book getBook();
    
        // #book 中,用 # 提取参数变量
        @PreAuthorize ("#book.owner == authentication.name")
        public void deleteBook(Book book);
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
最近更新: 10/9/2018, 10:42:31 PM