要配置Spring Boot Endpoints的访问权限,你需要使用Spring Security
在pom.xml
文件中添加Spring Security依赖:
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
创建一个新的Java类,例如SecurityConfig
,并继承WebSecurityConfigurerAdapter
。然后重写configure
方法以自定义安全配置。
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/actuator/**").hasRole("ADMIN") // 允许访问/actuator/*的端点的角色为ADMIN
.anyRequest().authenticated() // 其他请求需要认证
.and()
.formLogin() // 启用表单登录
.permitAll() // 允许所有用户访问登录页面
.and()
.logout() // 启用注销功能
.permitAll(); // 允许所有用户访问注销页面
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth
.inMemoryAuthentication() // 使用内存中的认证
.withUser("admin").password("{noop}admin123").roles("ADMIN"); // 创建一个用户名为admin,密码为admin123,角色为ADMIN的用户
}
}
这个示例配置了以下规则:
根据你的需求,你可以修改这些规则。更多关于Spring Security的配置选项,请参考官方文档:https://docs.spring.io/spring-security/site/docs/current/reference/html5/#jc
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读:SpringBoot Admin 的权限管理如何配置