如何配置Spring Boot Endpoints的访问权限

avatar
作者
猴君
阅读量:0

要配置Spring Boot Endpoints的访问权限,你需要使用Spring Security

  1. 添加依赖

pom.xml文件中添加Spring Security依赖:

   <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-security</artifactId> </dependency> 
  1. 配置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

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!