溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

spring boot 2安全怎么配置

發(fā)布時間:2021-12-27 17:17:37 來源:億速云 閱讀:124 作者:iii 欄目:大數(shù)據(jù)

這篇文章主要講解了“spring boot 2安全怎么配置”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“spring boot 2安全怎么配置”吧!

關(guān)閉Spring Boot安全配置

不管你在應(yīng)用的什么地方定義了一個使用@EnableWebSecurity注解的@Configuration,它都會關(guān)閉Spring Boot中的默認(rèn)webapp安全設(shè)置。想要調(diào)整默認(rèn)值,你可以嘗試設(shè)置security.*屬性(具體查看SecurityProperties和常見應(yīng)用屬性的SECURITY章節(jié))。

改變AuthenticationManager并添加用戶賬號

如果你提供了一個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.
    }

}

當(dāng)前端使用代理服務(wù)器時啟用HTTPS

對于任何應(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)注!

向AI問一下細(xì)節(jié)

免責(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)容。

AI