Spring Security 5.0.0正式釋出
Pivotal正式釋出Spring Security 5.0.0,是2015年3月釋出4.0.0版本以來的第一個大版本。
\\Spring Security誕生於2004年,當時叫作Acegi,現在由Pivotal工程師Robert Winch領導開發,Robert是Spring Security和Spring Security 3.1的合著者。5.0.0版本包含了400多項改進和問題修復,包括支援OAuth 2.0、支援Spring WebFlux、可以使用Reactor的StepVerifier進行測試。
\\InfoQ就Spring Security 5.0.0版本的釋出和未來計劃問題採訪了Robert Winch。
\\InfoQ:新版本的更新站點看起來很穩定。你能概括一下這一版本的內容嗎?
\\Winch:Spring Security 5.0.0的主要亮點在於它只需要最小化的JDK 8、反應式安全特性、OAuth 2.0(OIDC)和現代密碼儲存。\\
InfoQ:你們是怎麼想到現代密碼儲存這個主意的?又是如何實現的?
\\Winch:在Spring Security 5.0.0之前,密碼是明文儲存,十分不安全。因為這一次釋出的是大版本,所以我們決定使用更安全的密碼儲存方式。 我們有幸與密碼儲存專家John Steven合作,他是OWASP密碼儲存手冊的主要作者。Spring Security現在預設提供的是最新的密碼儲存方式。當然,我們也可以使用其他方式來儲存密碼。\\
InfoQ:Spring讓我印象深刻的地方在於,它總是能夠急我們之所急,為我們提供我們缺失的功能。你們是如何決定推出哪些特性的?
\\Winch:我們關注社群進展,為呼聲較高的問題制定解決方案。結果就是要使用最小化的JDK 8,並通過Reactor專案來支援反應式程式設計。\\
InfoQ:你們打算加快Spring Security的釋出速度嗎?就像Juergen Hoeller所說的那樣,在更短的時間週期內交付已經準備好的特性?
\\Winch:是的。Spring Security嘗試跟上Spring框架的腳步,確保為Spring框架提供安全保護。\\
InfoQ:下一個版本的計劃是什麼?
\\Winch:下一版本,我們計劃把精力集中在完善反應式和OAuth上面。我們也會提供一些工具用於遷移現有的密碼。我們也希望能夠釋出初始版本的OAuth資源伺服器。\\
現在讓我們來看看增強的方法級別的安全(示例來自Spring Security網站)。
\\可以使用@EnableGlobalMethodSecurity來啟用基於註解的安全,只要這個類也使用了@Configuration。例如:
\\\@Configuration\@EnableGlobalMethodSecurity(securedEnabled = true)\public class MethodSecurityConfig {\// ...\}\\
然後就可以實現方法級別的安全:
\\\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);\}\\
有時候可能需要比GlobalMethodSecurity更靈活的方式,那麼可以通過擴充套件GlobalMethodSecurityConfiguration來實現自定義安全策略,並在這個類上面加上@EnableGlobalMethodSecurity:
\\\@EnableGlobalMethodSecurity(prePostEnabled = true)\public class MethodSecurityConfig extends GlobalMethodSecurityConfiguration {\\t@Override\\tprotected MethodSecurityExpressionHandler createExpressionHandler() {\\t\t// ... create and return custom MethodSecurityExpressionHandler ...\\t\treturn expressionHandler;\\t}\}\\
Reactor專案的反應式流有一個特性,它支援將等待中的執行緒分配給新的任務作業,這就給實現ThreadLocal型別對映帶來了新的挑戰。Reactor為此提供了Context API,它是一種反應式的ThreadLocal map。
\\在5.0.0版本里,可以通過ReactiveSecurityContextHolder.getContext()方法訪問反應式Context,並在方法呼叫過程中使用token(以及其他應用程式相關資料)。
\\相關文章
- 重磅|Apache ShardingSphere 5.0.0 即將正式釋出Apache
- Spring Boot 3.0正式釋出Spring Boot
- Spring Framework 6.0 正式釋出SpringFramework
- Spring Framework 3.2正式版釋出SpringFramework
- Spring Framework 4.0 正式版釋出SpringFramework
- 新版釋出|ShardingSphere 5.0.0-beta 來了!
- Spring Boot 2.4 正式釋出,重大調整!!!Spring Boot
- Python3影像處理庫 Pillow 5.0.0 釋出Python
- Apache Dubbo 官方正式釋出 Spring 6 & Spring Boot 3 支援ApacheSpring Boot
- Spring Authorization Server 0.3.0 釋出,官方文件正式上線SpringServer
- Spring Boot 2.0正式釋出,升還是不升呢?Spring Boot
- Fedora 31 正式釋出
- .NET 8正式釋出
- Flutter 2.8 正式釋出Flutter
- Dart 2.17 正式釋出Dart
- Flutter 3.7 正式釋出Flutter
- NutUI 4.0 正式釋出!UI
- OpenCV 4.5.1正式釋出!OpenCV
- ?? webpack 3: 正式釋出!! ??Web
- CentOS 6.5 正式釋出CentOS
- PyCharm 4 正式釋出!PyCharm
- Rust 1.0 正式釋出Rust
- Fedora 24 正式釋出!
- Seam 2.0正式釋出
- KDE 5.6 正式釋出
- Java 22 正式釋出Java
- Spring SecuritySpring
- Kotlin 1.3.70正式釋出Kotlin
- Blazor WebAssembly 3.2 正式釋出BlazorWeb
- DragonFlyBSD 5.4.3 正式釋出Go
- Kotlin 1.3.40正式釋出Kotlin
- Bootstrap4 正式釋出boot
- 〔譯〕TypeScript 2.0 正式釋出TypeScript
- 蘋果 macOS 13.4 正式釋出蘋果Mac
- Go 1.18 正式釋出!Go
- [中文] Bootstrap 4 正式釋出boot
- Angular6.0正式釋出Angular
- Python 3.3.5 正式釋出Python