《Spring Boot官方指南》28.安全
28. 安全
如果Spring Security位於類路徑上,那麼Web應用程序將默認使用所有HTTP端點上的’basic’身份驗證。要向Web應用程序添加方法級安全性,還可以為你想要的設置添加“@EnableGlobalMethodSecurity”。通過點擊Spring Security Reference能夠找到更多的信息。
‘AuthenticationManager’ 有一個默認用戶(用戶名為’user’ ,密碼隨機,在應用程序啟動時在INFO級別輸出)
Using default security password: 78fa095d-3f4c-48b1-ad50-e24c31d5cf35
Note | |
---|---|
如果您調整過日誌配置,請確保將“org.springframework.boot.autoconfigure.security”日誌級別設置為“INFO”,否則將不打印默認密碼。 |
您可以通過配置“security.user.password”更改默認密碼。更多的屬性通過SecurityProperties
來獲取(屬性前綴 “security”)。
默認安全配置在從(在用於Web安全的’SpringBootWebSecurityConfiguration’和非web應用程序中相關用於認證配置的“AuthenticationManagerConfiguration”)那裏導入的類“SecurityAutoConfiguration”中實現。你可以添加一個@EnableWebSecurity注解的Bean來關閉默認Web應用程序安全性配置完全(這不會禁用身份驗證管理器配置或執行器的安全性)。要定製它,通常使用外部屬性和類型為’WebSecurityConfigurerAdapter’的bean(例如,添加基於表單的登錄)。您也可以添加一個類型為“AuthenticationManager”的bean來關閉身份驗證管理器配置,或者通過將“AuthenticationManagerBuilder”自動注入到“@Configuration”類中的方法來配置全局“AuthenticationManager”。在Spring Boot samples中有幾個security應用的常見例子來開始你的旅程。
在web應用中能夠開箱即用的基礎功能:
- 具有內存存儲和單一用戶的類型為“AuthenticationManager”的Bean(請參閱為“SecurityProperties.User”的用戶屬性)。
- 忽略(不安全)帶有公共靜態資源地址(’/ css / **’,’/ js / **’,’/ images / **’,’/ webjars / **’和’** / favicon.ico) ‘)的路徑。
- 其他所有端點的HTTP基礎安全。
- 發布到Spring的ApplicationEventPublisher的Security事件(成功和失敗的身份驗證和拒絕訪問)。
- Spring security在默認情況下提供常見的低級功能 (HSTS,XSS,CSRF,緩存)
上述所有的功能都可以通過修改外部屬性(security.*)來打開和關閉。要在不更改任何其他自動配置功能的情況下覆蓋訪問規則,請添加“類型為“WebSecurityConfigurerAdapter”,注解@Order(SecurityProperties.ACCESS_OVERRIDE_ORDER)的@Bean,並配置它以滿足您的需要。
Note | |
---|---|
默認情況下,’WebSecurityConfigurerAdapter’ 將匹配任何路徑。如果你不想要完全覆蓋Spring Boot自動配置訪問規則,您的適配器必須顯式配置要覆蓋的路徑。 |
最後更新:2017-05-19 12:05:11