您好,登錄后才能下訂單哦!
這篇文章主要講解了“spring boot 2安全怎么配置”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“spring boot 2安全怎么配置”吧!
不管你在應(yīng)用的什么地方定義了一個使用@EnableWebSecurity注解的@Configuration,它都會關(guān)閉Spring Boot中的默認(rèn)webapp安全設(shè)置。想要調(diào)整默認(rèn)值,你可以嘗試設(shè)置security.*屬性(具體查看SecurityProperties和常見應(yīng)用屬性的SECURITY章節(jié))。
如果你提供了一個AuthenticationManager類型的@Bean,那么默認(rèn)的就不會被創(chuàng)建了,所以你可以獲得Spring Security可用的全部特性(比如,不同的認(rèn)證選項)。
Spring Security也提供了一個方便的AuthenticationManagerBuilder,用于構(gòu)建具有常見選項的AuthenticationManager。在一個webapp中,推薦將它注入到WebSecurityConfigurerAdapter的一個void方法中,比如:
@Configuration public class SecurityConfiguration extends WebSecurityConfigurerAdapter { @Autowired public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { auth.inMemoryAuthentication() .withUser("barry").password("password").roles("USER"); // ... etc. } // ... other stuff for application security }
如果把它放到一個內(nèi)部類或一個單獨的類中,你將得到最好的結(jié)果(也就是不跟很多其他@Beans混合在一起將允許你改變實例化的順序)。secure web sample是一個有用的參考模板。
如果你遇到了實例化問題(比如,使用JDBC或JPA進(jìn)行用戶詳細(xì)信息的存儲),那將AuthenticationManagerBuilder回調(diào)提取到一個GlobalAuthenticationConfigurerAdapter(放到init()方法內(nèi)以防其他地方也需要authentication manager)可能是個不錯的選擇,比如:
@Configuration public class AuthenticationManagerConfiguration extends GlobalAuthenticationConfigurerAdapter { @Override public void init(AuthenticationManagerBuilder auth) { auth.inMemoryAuthentication() // ... etc. } }
對于任何應(yīng)用來說,確保所有的主端點(URL)都只在HTTPS下可用是個重要的苦差事。如果你使用Tomcat作為servlet容器,那Spring Boot如果發(fā)現(xiàn)一些環(huán)境設(shè)置的話,它將自動添加Tomcat自己的RemoteIpValve,你也可以依賴于HttpServletRequest來報告是否請求是安全的(即使代理服務(wù)器的downstream處理真實的SSL終端)。這個標(biāo)準(zhǔn)行為取決于某些請求頭是否出現(xiàn)(x-forwarded-for和x-forwarded-proto),這些請求頭的名稱都是約定好的,所以對于大多數(shù)前端和代理都是有效的。
你可以向application.properties添加以下設(shè)置開啟該功能,比如:
server.tomcat.remote_ip_header=x-forwarded-for server.tomcat.protocol_header=x-forwarded-proto
(這些屬性出現(xiàn)一個就會開啟該功能,或者你可以通過添加一個TomcatEmbeddedServletContainerFactorybean自己添加RemoteIpValve)。
Spring Security也可以配置成針對所有或某些請求需要一個安全渠道(channel)。想要在一個Spring Boot應(yīng)用中開啟它,你只需將application.properties中的security.require_ssl設(shè)置為true即可。
感謝各位的閱讀,以上就是“spring boot 2安全怎么配置”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對spring boot 2安全怎么配置這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。