案例代碼
因為 Spring Security 是一個開源項目,我們強(qiáng)烈建議你check out github上的代碼。你將可以看到所有的案例應(yīng)用以及如何使用最新的 Spring Security API來構(gòu)建應(yīng)用。在進(jìn)行調(diào)試的時候,有源碼也是非常有幫助的。異常棧的追蹤不再是黑盒,你可以直接定位引起問題的那一行代碼來查看到底發(fā)生了什么。對于一個項目而言,源代碼是其終極文檔,而且通常是發(fā)現(xiàn)事情是如何進(jìn)行的最簡單的地方。
要獲得這個項目的源碼,使用如下的git命令
git?clone?https://github.com/spring-projects/spring-security.git
這將會為你提供在本機(jī)上訪問項目完整歷史(包含所有正式發(fā)行版和分支)的途徑。
Java配置改進(jìn)
簡化UserDetailService的Java配置
簡化AuthenticationProvider的Java配置
可通過LogoutConfigurer根據(jù)不同情況配置使用不同的LogoutSuccessHandler
可通過SessionManagementConfigurer配置InvalidSessionStrategy?
可通過HttpSecurity.addFilterAt在過濾器鏈的指定位置上添加一個Filter
Web應(yīng)用的安全改進(jìn)
內(nèi)容安全策略(Content Security Policy (CSP))
HTTP公鑰固定擴(kuò)展(HTTP Public Key Pinning (HPKP)
CookieCsrfTokenRepository提供對AngularJS的簡單的CSRF集成
添加ForwardAuthenticationFailureHandler?和ForwardAuthenticationSuccessHandler
AuthenticationPrincipal支持通過表達(dá)式屬性來轉(zhuǎn)換Authentication.getPrincipal()的返回對象(例如處理一個不可變的自定義用戶對象)。
授權(quán)提升(Authorization Improvements?)
Path Variables in Web Security Expressions
Method Security Meta Annotations
Crypto模塊提升
通過SCryptPasswordEncoder支持SCrypt
通過Pbkdf2PasswordEncoder支持PBKDF2
為使用AES/CBC/PKCS5Padding和AES/GCM/NoPadding算法的BouncyCastle提供新的BytesEncryptor實現(xiàn)。
測試提升
@WithAnonymousUser
@WithUserDetails?允許指定UserDetailsService??Bean的名稱
Test Meta Annotations
通過SecurityMockMvcResultMatchers.withAuthorities模擬一個GrantedAuthority?列表的能力
一般性提升
重新組織案例項目
issues移植到GitHub上。
免費(fèi)學(xué)習(xí)視頻歡迎關(guān)注云圖智聯(lián):https://e.yuntuzhilian.com/?