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淺析緩存機制之Ehcache?2.x應(yīng)用
EhCache?是一個純Java的進(jìn)程內(nèi)緩存框架,具有快速、精干等特點。它是Hibernate中的默認(rèn)緩存框架。Ehcache已經(jīng)發(fā)布了3.1版本。但是本文的講解基于2.x版本2022-08-08Java數(shù)據(jù)結(jié)構(gòu)及算法實例:漢諾塔問題 Hanoi
這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)及算法實例:漢諾塔問題 Hanoi,本文直接給出實現(xiàn)代碼,代碼中包含大量注釋,需要的朋友可以參考下2015-06-06Mybatis中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