阅读量:0
要配置Spring Boot Endpoints的访问权限,你需要使用Spring Security
- 添加依赖
在pom.xml
文件中添加Spring Security依赖:
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>
- 配置Spring Security
创建一个新的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的用户 } }
这个示例配置了以下规则:
- 只有具有ADMIN角色的用户可以访问/actuator/*的端点。
- 其他请求需要认证。
- 启用表单登录和注销功能。
- 使用内存中的认证,创建一个用户名为admin,密码为admin123,角色为ADMIN的用户。
根据你的需求,你可以修改这些规则。更多关于Spring Security的配置选项,请参考官方文档:https://docs.spring.io/spring-security/site/docs/current/reference/html5/#jc