SpringBoot中给指定接口加上权限校验的实现
更新时间:2024年12月24日 11:26:21 作者:weixin_47543135
本文介绍了使用SpringSecurity为接口添加权限校验,以防止外部访问并确保安全性,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
问题
给指定接口加上权限校验,目的是防止外部访问,保证安全性。

解决
1、添加 Spring Security 依赖
在相应 pom 文件中加入下列依赖。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>2、配置 Spring Security
创建一个配置类来配置 Spring Security,使用 SecurityFilterChain 来配置安全规则。
@Configuration
@EnableWebSecurity
public class SecurityConfig {
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http
// 禁用 CSRF 保护
.csrf().disable()
.authorizeRequests(authorize -> authorize
// 仅允许具有 USER 角色的用户访问 /dpp/craw 及其子路径
.antMatchers("/dpp/craw/**").hasRole("USER")
// 其他请求无需认证
.anyRequest().permitAll()
)
// 使用 HTTP Basic 认证
.httpBasic();
return http.build();
}
@Bean
public UserDetailsService userDetailsService() {
UserDetails user = User.withUsername("user")
// 确保这里的密码是经过编码的
.password(passwordEncoder().encode("password"))
.roles("USER")
.build();
return new InMemoryUserDetailsManager(user);
}
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
}3、在接口处加上权限校验关键字

4、接口测试
此时访问该接口需要在请求头上加上认证信息,上述接口的认证信息是 user:password 的Base64编码后的字符串

在请求头加上认证参数则访问成功

到此这篇关于SpringBoot中给指定接口加上权限校验的实现的文章就介绍到这了,更多相关SpringBoot指定接口加权限校验内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
详解mybatis.generator配上最新的mysql 8.0.11的一些坑
这篇文章主要介绍了详解mybatis.generator配上最新的mysql 8.0.11的一些坑,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-10-10
Mybatis中动态SQL,if,where,foreach的使用教程详解
MyBatis的动态SQL是基于OGNL表达式的,它可以帮助我们方便的在SQL语句中实现某些逻辑。这篇文章主要介绍了Mybatis中动态SQL,if,where,foreach的使用教程,需要的朋友可以参考下2017-11-11


最新评论