1霜幼、Spring Security默認(rèn)是禁用注解的,要想開啟注解赢织, 需要在繼承WebSecurityConfigurerAdapter的類上加@EnableGlobalMethodSecurity注解擎鸠, 來判斷用戶對某個控制層的方法是否具有訪問權(quán)限?
@Configuration
@EnableWebSecurity
@EnableAutoConfiguration
@EnableGlobalMethodSecurity(prePostEnabled =true)
public class WebSecurityConfigextends WebSecurityConfigurerAdapter {……}
2、例如下面代碼就表示如果用戶具有admin角色炕贵,就能訪問listAllUsers方法梆奈,但是如果方法前不加@preAuthorize注解,意味著所有用戶都能訪問listAllUsers
????@PreAuthorize("hasRole(‘a(chǎn)dmin‘)")
? ? @RequestMapping(value = "/user/", method = RequestMethod.GET)
? ? @ResponseBody
? ? publicList listAllUsers() {
? ? ? ? ……
? ? }
3称开、@EnableGlobalMethodSecurity詳解
3.1亩钟、@EnableGlobalMethodSecurity(securedEnabled=true) 開啟@Secured 注解過濾權(quán)限
3.2、@EnableGlobalMethodSecurity(jsr250Enabled=true)開啟@RolesAllowed 注解過濾權(quán)限?
3.3鳖轰、@EnableGlobalMethodSecurity(prePostEnabled=true) 使用表達(dá)式時間方法級別的安全性 ????????4個注解可用
@PreAuthorize 在方法調(diào)用之前,基于表達(dá)式的計算結(jié)果來限制對方法的訪問
@PostAuthorize 允許方法調(diào)用,但是如果表達(dá)式計算結(jié)果為false,將拋出一個安全性異常
@PostFilter 允許方法調(diào)用,但必須按照表達(dá)式來過濾方法的結(jié)果
@PreFilter 允許方法調(diào)用,但必須在進(jìn)入方法之前過濾輸入值