1. 程式人生 > >《Spring Boot官方指南》28.安全

《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自動配置訪問規則,您的介面卡必須顯式配置要覆蓋的路徑。