要配置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@EnableWebSecuritypublic 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


