真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

為什么加了一個(gè)SpringSecurity依賴(lài)所有接口都無(wú)法訪(fǎng)問(wèn)

本篇內(nèi)容主要講解“為什么加了一個(gè)Spring Security依賴(lài)所有接口都無(wú)法訪(fǎng)問(wèn)”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“為什么加了一個(gè)Spring Security依賴(lài)所有接口都無(wú)法訪(fǎng)問(wèn)”吧!

成都網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專(zhuān)注于網(wǎng)頁(yè)設(shè)計(jì)、重慶網(wǎng)站建設(shè)公司、微信開(kāi)發(fā)、微信平臺(tái)小程序開(kāi)發(fā)、集團(tuán)成都企業(yè)網(wǎng)站定制等服務(wù)項(xiàng)目。核心團(tuán)隊(duì)均擁有互聯(lián)網(wǎng)行業(yè)多年經(jīng)驗(yàn),服務(wù)眾多知名企業(yè)客戶(hù);涵蓋的客戶(hù)類(lèi)型包括:自拌料攪拌車(chē)等眾多領(lǐng)域,積累了大量豐富的經(jīng)驗(yàn),同時(shí)也獲得了客戶(hù)的一致稱(chēng)揚(yáng)!

正文

  1. 當(dāng)我們?cè)陧?xiàng)目中添加了 Spring Security 依賴(lài)后, 即使不做任何配置, 它也默認(rèn)會(huì)幫我們攔截掉所有請(qǐng)求.

  2. 為了修改 Spring Security 的默認(rèn)行為, 我們需要做一些配置, 也就是通過(guò)重寫(xiě) WebSecurityConfigurerAdapterconfigure(HttpSecurity http) 方法.

那么問(wèn)題來(lái)了, 為什么僅僅加了一個(gè) Spring Security 依賴(lài), 就可以攔截請(qǐng)求了?

答案自然跟 Springboot 的自動(dòng)裝配有關(guān)系.

SecurityAutoConfiguration 裝配類(lèi)

通過(guò) @Import 注解, 可以找到 SpringBootWebSecurityConfiguration 類(lèi)

@Configuration(proxyBeanMethods = false)
@ConditionalOnClass(DefaultAuthenticationEventPublisher.class)
@EnableConfigurationProperties(SecurityProperties.class)
@Import({ SpringBootWebSecurityConfiguration.class, WebSecurityEnablerConfiguration.class,
		SecurityDataConfiguration.class })
public class SecurityAutoConfiguration {

	@Bean
	@ConditionalOnMissingBean(AuthenticationEventPublisher.class)
	public DefaultAuthenticationEventPublisher authenticationEventPublisher(ApplicationEventPublisher publisher) {
		return new DefaultAuthenticationEventPublisher(publisher);
	}

}

SpringBootWebSecurityConfiguration 類(lèi)

  1. @ConditionalOnMissingBean(WebSecurityConfigurerAdapter.class) 可以看出, 當(dāng)項(xiàng)目中沒(méi)有配置 WebSecurityConfigurerAdapter 時(shí), 這個(gè)配置類(lèi)才會(huì)生效.

  2. 當(dāng)這個(gè)配置類(lèi)生效后, 會(huì)幫我們配置一個(gè)默認(rèn)的 WebSecurityConfigurerAdapter

  3. 由前面可知, 通過(guò)配置 WebSecurityConfigurerAdapter 可以實(shí)現(xiàn)定義攔截方式.

@Configuration(proxyBeanMethods = false)
@ConditionalOnClass(WebSecurityConfigurerAdapter.class)
@ConditionalOnMissingBean(WebSecurityConfigurerAdapter.class)
@ConditionalOnWebApplication(type = Type.SERVLET)
public class SpringBootWebSecurityConfiguration {

	@Configuration(proxyBeanMethods = false)
	@Order(SecurityProperties.BASIC_AUTH_ORDER)
	static class DefaultConfigurerAdapter extends WebSecurityConfigurerAdapter {

	}

}

WebSecurityConfigurerAdapter 的默認(rèn)行為

從下面的默認(rèn)配置可以得知, 默認(rèn)的配置是所有的請(qǐng)求都需要登錄認(rèn)證.

protected void configure(HttpSecurity http) throws Exception {
	
    http
       .authorizeRequests()
       // 重點(diǎn)
       .anyRequest().authenticated()
       .and()
       .formLogin().and()
	.httpBasic();
    }

總結(jié)

當(dāng)我們的 Springboot 工程引入 Spring Security 依賴(lài)后, 項(xiàng)目中的 “安全機(jī)制” 就已經(jīng)開(kāi)啟了.

因?yàn)楦鶕?jù) Spring boot 的自動(dòng)裝配原理, 在加載 SecurityAutoConfiguration 配置類(lèi)時(shí), 會(huì)再加載 SpringBootWebSecurityConfiguration 配置類(lèi).

而在 SpringBootWebSecurityConfiguration 類(lèi)中, 默認(rèn)幫我們初始化了一個(gè)WebSecurityConfigurerAdapter 類(lèi).

WebSecurityConfigurerAdapter 的有一個(gè)作用就是 配置訪(fǎng)問(wèn)請(qǐng)求需要的權(quán)限.

如果不覆蓋此類(lèi)的 configure(HttpSecurity http) 方法, 它的默認(rèn)行為就是 要求對(duì)所有的請(qǐng)求進(jìn)行登錄認(rèn)證.

到此,相信大家對(duì)“為什么加了一個(gè)Spring Security依賴(lài)所有接口都無(wú)法訪(fǎng)問(wèn)”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢(xún),關(guān)注我們,繼續(xù)學(xué)習(xí)!


網(wǎng)站名稱(chēng):為什么加了一個(gè)SpringSecurity依賴(lài)所有接口都無(wú)法訪(fǎng)問(wèn)
分享地址:http://weahome.cn/article/ghdheh.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部