java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > SpringBoot指定接口加权限校验

SpringBoot中给指定接口加上权限校验的实现

作者: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指定接口加权限校验内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文