3.8 Spring Security配置方法安全注解

從版本2開(kāi)始阔加,Spring Security大大增強(qiáng)了對(duì)服務(wù)層方法添加安全性的支持耐量。它提供了對(duì)JSR-250注解以及框架原始的@Secured注解的安全性的支持糜俗。從3.0開(kāi)始你也可以使用新的基于表達(dá)式的注解校翔。你可以應(yīng)用安全性到一個(gè)單例bean弟跑,使用 intercept-methods 元素去修飾這個(gè)bean的聲明,或者你可以使用使用AspectJ樣式切入點(diǎn)保護(hù)整個(gè)服務(wù)層的多個(gè)bean展融。

3.81 EnableGlobalMethodSecurity

我們可以在任意的@Configuration注解的實(shí)例上使用@EnableGobalMethodSecurity注解來(lái)啟用基于注解的安全配置窖认。例如,下面將啟用Spring Security的@Secure注解告希。

@Configuration
@EnableGlobalMethodSecurity(securedEnabled = true)
public class MethodSecurityConfig {
// ...
}

在方法上(也可以在類或接口上)添加注解將相應(yīng)地限制對(duì)該方法的訪問(wèn)扑浸。Spring Security的本地注解支持為該方法定義了一組屬性。這些信息將傳遞給訪問(wèn)決策管理器(AccessDecisionManager )燕偶,以便它做出實(shí)際的決定:

public interface BankService {

@Secured("IS_AUTHENTICATED_ANONYMOUSLY")
public Account readAccount(Long id);

@Secured("IS_AUTHENTICATED_ANONYMOUSLY")
public Account[] findAccounts();

@Secured("ROLE_TELLER")
public Account post(Account account, double amount);
}

可以使用以下方法啟用對(duì)JSR-250注解的支持:

@Configuration
@EnableGlobalMethodSecurity(jsr250Enabled = true)
public class MethodSecurityConfig {
// ...
}

這些是基于標(biāo)準(zhǔn)的并允許應(yīng)用簡(jiǎn)單的基于角色的約束喝噪,但是沒(méi)有Spring Security的本地注解的支持。若要使用新的基于表達(dá)式的語(yǔ)法指么,請(qǐng)參考以下使用:

@Configuration
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class MethodSecurityConfig {
// ...
}

和它等價(jià)的Java代碼是:

public interface BankService {

@PreAuthorize("isAnonymous()")
public Account readAccount(Long id);

@PreAuthorize("isAnonymous()")
public Account[] findAccounts();

@PreAuthorize("hasAuthority('ROLE_TELLER')")
public Account post(Account account, double amount);
}

3.8.2 GlobalMethodSecurityConfiguration

有時(shí)你可能需要執(zhí)行比使用@EnableGlobalMethodSecurity注解允許的操作更復(fù)雜的操作酝惧。對(duì)于這種場(chǎng)景寫,我們可以去擴(kuò)展GlobalMethodSecurityConfiguration確保子類中存在@EnableGlobalMethodSecurity注解伯诬。例如晚唇,如果你想提供自定義MethodSecurityExpressionHandler處理邏輯,你可以使用以下配置:

@Configuration
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class MethodSecurityConfig extends GlobalMethodSecurityConfiguration {
    @Override
    protected MethodSecurityExpressionHandler createExpressionHandler() {
        // ... create and return custom MethodSecurityExpressionHandler ...
        return expressionHandler;
    }
}

其他更多有關(guān)Spring Security的方法安全注解盗似,請(qǐng)到Spring Security官方文檔查看哩陕。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市赫舒,隨后出現(xiàn)的幾起案子悍及,更是在濱河造成了極大的恐慌,老刑警劉巖接癌,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件心赶,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡缺猛,警方通過(guò)查閱死者的電腦和手機(jī)缨叫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門椭符,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人弯汰,你說(shuō)我怎么就攤上這事艰山。” “怎么了咏闪?”我有些...
    開(kāi)封第一講書人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵曙搬,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我鸽嫂,道長(zhǎng)纵装,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任据某,我火速辦了婚禮橡娄,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘癣籽。我一直安慰自己挽唉,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布筷狼。 她就那樣靜靜地躺著瓶籽,像睡著了一般。 火紅的嫁衣襯著肌膚如雪埂材。 梳的紋絲不亂的頭發(fā)上塑顺,一...
    開(kāi)封第一講書人閱讀 51,541評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音俏险,去河邊找鬼严拒。 笑死,一個(gè)胖子當(dāng)著我的面吹牛竖独,可吹牛的內(nèi)容都是我干的裤唠。 我是一名探鬼主播,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼莹痢,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼种蘸!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起格二,我...
    開(kāi)封第一講書人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎竣蹦,沒(méi)想到半個(gè)月后顶猜,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡痘括,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年长窄,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了滔吠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡挠日,死狀恐怖疮绷,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情嚣潜,我是刑警寧澤冬骚,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布,位于F島的核電站懂算,受9級(jí)特大地震影響只冻,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜计技,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一喜德、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧垮媒,春花似錦舍悯、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至入桂,卻和暖如春奄薇,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背抗愁。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工馁蒂, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蜘腌。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓沫屡,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親撮珠。 傳聞我的和親對(duì)象是個(gè)殘疾皇子沮脖,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)芯急,斷路器勺届,智...
    卡卡羅2017閱讀 134,657評(píng)論 18 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,811評(píng)論 6 342
  • 要加“m”說(shuō)明是MB,否則就是KB了. -Xms:初始值 -Xmx:最大值 -Xmn:最小值 java -Xms8...
    dadong0505閱讀 4,832評(píng)論 0 53
  • spring官方文檔:http://docs.spring.io/spring/docs/current/spri...
    牛馬風(fēng)情閱讀 1,679評(píng)論 0 3
  • 這個(gè)測(cè)試有點(diǎn)奇怪娶耍,顯示出的能順利的總是方法的最后一種情況免姿。昨晚就開(kāi)始糾結(jié),網(wǎng)上找了很多資料榕酒,一直都找不到合適的解決...
    大大大甘閱讀 210評(píng)論 0 1