Spring Security (1)

Spring Security 模塊劃分

  1. ACL 支持通過訪問控制列表(access control list,ACL)為域?qū)ο筇峁┌踩?/li>
  2. 切面(Aspects) 一個很小的模塊痛黎,當使用Spring Security注解時刘离,會使用基于AspectJ的切面,而不是使用標準的Spring AOP
  3. CAS客戶端(CAS Client) 提供Jasig的中心認證服務(Central Authentication Service发魄, CAS)進行集成的功能
  4. 配置(Configuration) 包含通過XML和Java配置Spring Security的功能支持
  5. 核心(core) 提供Spring Security基本庫
  6. 加密(Cryptography) 提供加密和密碼編碼的功能
  7. LDAP 支持基于LDAP進行認證
  8. OpenID 支持使用OpenID進行集中式認證
  9. Remoting 提供了對Spring Remoting的支持
  10. 標簽庫(Tag Library) Spring Security的JSP標簽庫
  11. Web 提供了Spring Security基于Filter的Web安全性支持

Application 的classpath里面至少要包含Core和Configuration這兩個模塊

簡單配置Spring Security

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter{}

任何實現(xiàn)WebSecurityConfigure的類都可以用來配置Spring Security , 但是通常我們使用更簡單的方式:擴展WebSecurityConfigure的實現(xiàn)類WebSecurityConfigurerAdapter础淤。
具體的配置可以通過重寫WebSecurityConfigurerAdapter的configure()方法來實現(xiàn)肤舞,下面是三個方法的功能:

  1. configure(HttpSecurity) //通過重載图仓,配置如何通過攔截器保護請求
  2. configure(WebSecurity) //通過重載雅潭,配置Spring Security的Filter鏈
  3. configure(AuthenticationManagerBuilder) //通過重載瘪匿,配置user-detail服務

Demo Code:

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
                .authorizeRequests()
                .antMatchers("/assets/**","/bower_components/**","/config/**","/controllers/**","/service/**").permitAll()
                .anyRequest().authenticated()
                .and()
                .formLogin()
                .loginPage("/login")
                .failureUrl("/login?error")
                .permitAll()
                .and()
                .rememberMe()
                .and()
                .logout()
                .permitAll()
                .and()
                .csrf()
                .disable();
    }

SPEL

Spring Security通過一些安全性相關的表達式擴展了Spring表達式語言

  1. authentication // 用戶的認證對象
  2. denyAll // 結(jié)果始終未false
  3. hasAnyRole(list of roles) // 如果用戶被授予了列表中任意的指定角色,結(jié)果為true
  4. hasRole(role) // 如果用戶被授予了指定的角色寻馏,結(jié)果為true
  5. hasIPAddress(IP Address) // 如果請求來自指定IP的話棋弥,結(jié)果為true
  6. isAnonymous() // 如果當前用戶為匿名用戶,結(jié)果為true
  7. isAuthenticated() // 如果當前用戶進行了認證的話诚欠,結(jié)果為true
  8. isFullyAuthenticated() // 如果當前用戶進行了完整認證的話(不是通過Remember-me功能進行的認證)顽染,結(jié)果為true
  9. isRememberMe() // 如果當前用戶是通過Remember-me自動認證的,結(jié)果為true
  10. permitAll // 結(jié)果始終為true
  11. principal // 用戶的principal對象
    spELl的特點就是可以對各種控制進行自由的搭配轰绵,比如下面這個
http.authorizeRequests()
                .regexMatchers("/*")
                .access("hasRole('ROLE_ADMIN') and hasIpAddress('192.168.1.2')");
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末粉寞,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子左腔,更是在濱河造成了極大的恐慌唧垦,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件液样,死亡現(xiàn)場離奇詭異振亮,居然都是意外死亡,警方通過查閱死者的電腦和手機鞭莽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門坊秸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人澎怒,你說我怎么就攤上這事褒搔。” “怎么了?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵星瘾,是天一觀的道長走孽。 經(jīng)常有香客問我,道長琳状,這世上最難降的妖魔是什么融求? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮算撮,結(jié)果婚禮上生宛,老公的妹妹穿的比我還像新娘。我一直安慰自己肮柜,他們只是感情好陷舅,可當我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著审洞,像睡著了一般莱睁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上芒澜,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天仰剿,我揣著相機與錄音,去河邊找鬼痴晦。 笑死南吮,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的誊酌。 我是一名探鬼主播部凑,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼碧浊!你這毒婦竟也來了涂邀?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤箱锐,失蹤者是張志新(化名)和其女友劉穎比勉,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體驹止,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡浩聋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了幢哨。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赡勘。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡嫂便,死狀恐怖捞镰,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤岸售,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布践樱,位于F島的核電站,受9級特大地震影響凸丸,放射性物質(zhì)發(fā)生泄漏拷邢。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一屎慢、第九天 我趴在偏房一處隱蔽的房頂上張望瞭稼。 院中可真熱鬧,春花似錦腻惠、人聲如沸环肘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽悔雹。三九已至,卻和暖如春欣喧,著一層夾襖步出監(jiān)牢的瞬間腌零,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工唆阿, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留益涧,地道東北人。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓驯鳖,卻偏偏與公主長得像饰躲,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子臼隔,可洞房花燭夜當晚...
    茶點故事閱讀 44,979評論 2 355

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理嘹裂,服務發(fā)現(xiàn),斷路器摔握,智...
    卡卡羅2017閱讀 134,659評論 18 139
  • 前言 本章內(nèi)容: ??Spring Security介紹 ??使用Servlet規(guī)范中的Filter保護Web應用...
    Chandler_玨瑜閱讀 7,178評論 0 68
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,822評論 6 342
  • 原創(chuàng)性聲明:本文完全為筆者原創(chuàng)寄狼,請尊重筆者勞動力。轉(zhuǎn)載務必注明原文地址氨淌。 Spring security是Spri...
    東方一號藍閱讀 5,576評論 2 15
  • 我有我的家 她有她的家 每個人都有自己的家 她說 她的家很大很大—— 她的家里有大大的柜子 里面有美味的零食 也有...
    澹臺旭穎閱讀 677評論 0 1