SpringBoot中給指定接口加上權(quán)限校驗的實現(xiàn)
問題
給指定接口加上權(quán)限校驗,目的是防止外部訪問,保證安全性。

解決
1、添加 Spring Security 依賴
在相應(yīng) pom 文件中加入下列依賴。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>2、配置 Spring Security
創(chuàng)建一個配置類來配置 Spring Security,使用 SecurityFilterChain 來配置安全規(guī)則。
@Configuration
@EnableWebSecurity
public class SecurityConfig {
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http
// 禁用 CSRF 保護(hù)
.csrf().disable()
.authorizeRequests(authorize -> authorize
// 僅允許具有 USER 角色的用戶訪問 /dpp/craw 及其子路徑
.antMatchers("/dpp/craw/**").hasRole("USER")
// 其他請求無需認(rèn)證
.anyRequest().permitAll()
)
// 使用 HTTP Basic 認(rèn)證
.httpBasic();
return http.build();
}
@Bean
public UserDetailsService userDetailsService() {
UserDetails user = User.withUsername("user")
// 確保這里的密碼是經(jīng)過編碼的
.password(passwordEncoder().encode("password"))
.roles("USER")
.build();
return new InMemoryUserDetailsManager(user);
}
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
}3、在接口處加上權(quán)限校驗關(guān)鍵字

4、接口測試
此時訪問該接口需要在請求頭上加上認(rèn)證信息,上述接口的認(rèn)證信息是 user:password 的Base64編碼后的字符串

在請求頭加上認(rèn)證參數(shù)則訪問成功

到此這篇關(guān)于SpringBoot中給指定接口加上權(quán)限校驗的實現(xiàn)的文章就介紹到這了,更多相關(guān)SpringBoot指定接口加權(quán)限校驗內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot淺析緩存機(jī)制之Ehcache?2.x應(yīng)用
EhCache?是一個純Java的進(jìn)程內(nèi)緩存框架,具有快速、精干等特點。它是Hibernate中的默認(rèn)緩存框架。Ehcache已經(jīng)發(fā)布了3.1版本。但是本文的講解基于2.x版本2022-08-08
Java數(shù)據(jù)結(jié)構(gòu)及算法實例:漢諾塔問題 Hanoi
這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)及算法實例:漢諾塔問題 Hanoi,本文直接給出實現(xiàn)代碼,代碼中包含大量注釋,需要的朋友可以參考下2015-06-06
Mybatis中3種關(guān)聯(lián)關(guān)系的實現(xiàn)方法示例
這篇文章主要給大家介紹了關(guān)于Mybatis中3種關(guān)聯(lián)關(guān)系的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者使用Mybatis具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11

