当前位置: 首页 > 知识库问答 >
问题:

如何使用Spring Boot 2在不完全禁用执行器安全性的情况下禁用执行器安全性

严宏旷
2023-03-14

我正在使用Spring Boot安全性和Oauth2。我不想禁用健康endpoint的安全性。

我可以完全禁用安全性,或者编写自己的WebSecurityConfigurerAdapter实现并禁用autoconfigured One。

但是如何修改WebSecurityConfigurerAdapter(OAuth2SSODefaultConfiguration)的现有实现?

我试图创建自己的配置而不禁用AutoConfigurated一个,但由于order冲突,这是不可能的。

以下是错误消息:

Caused by: java.lang.IllegalStateException: @Order on WebSecurityConfigurers must be unique. 
Order of 100 was already used on SecurityConfiguration$$EnhancerBySpringCGLIB$$9505fc58@13f182b9,
 so it cannot be used on 
org.springframework.boot.autoconfigure.security.oauth2.client.OAuth2SsoDefaultConfiguration$$EnhancerBySpringCGLIB$$dc290e2b@5ee0cf64 too.

此外,我试图显式地为我自己的安全配置设置更高的顺序,但看起来自动配置的一个覆盖了我的。

那么如何在不重新实现整个配置的情况下重写特定的安全规则呢?

共有1个答案

卫逸春
2023-03-14

您需要在

@SpringBootApplication

 @SpringBootApplication
 @EnableResourceServer
 @EnableGlobalMethodSecurity(prePostEnabled = true)
 @Configuration
 public class BusinessLogicServiceApplication extends ResourceServerConfigurerAdapter {

 public static void main(String[] args) throws IOException {
    ConfigurableApplicationContext context =  
    SpringApplication.run(BusinessLogicServiceApplication.class, args);
    }

  @Override
  public void configure(HttpSecurity http) throws Exception {
    http.authorizeRequests()
            .antMatchers("/health").permitAll().anyRequest().authenticated();

    }
}
 类似资料:
  • 我有一个WebFlux、Health Actuctor和Spring Security的项目。我正在尝试构建自定义身份验证,但该身份验证也会在健康执行器endpoint上发挥作用。我怎样才能禁用它? 根据文档,我实现了一个自定义的,下面是它的基本版本: 根据文档,不应该要求我进行任何额外的配置来禁用健康endpoint上的身份验证。以下是中的配置: 尽管添加了此功能,但仍会导致状态代码也是。如何禁

  • 我在我的应用程序中使用了Spring-Boot1.3.1和Spring-Boot-Actutor。我使用作为中的父级。 为了禁用安全性,我在中添加了2个条目。 它仍然没有禁用基本的安全性。当我在本地Tomcat中启动应用程序时,我看到日志文件中的默认密码。

  • 当我使用security.basic.enabled=false在具有以下依赖项的Spring Boot项目上禁用安全性时: 为了修复此异常,我必须添加属性-management.security.enabled=false。我的理解是,当执行器在类路径中时,应该将security.basic.enabled=false和management.security.enabled=false设置为禁用

  • Spring Boot执行器endpoint默认受基本http安全保护。 这个可以改成使用Spring Security吗?我已经成功地设置了Spring Security并使用它来保护我的其他页面。 我尝试了并在授权请求中添加了(注意,我使用了不同的url作为endpoint的根用户),但这没有帮助。我一直得到一个基本的http身份验证日志,它不是用户在AuthenticationManager

  • 问题内容: 是否可以在不完全禁用JavaScript的情况下禁用AJAX? 问题答案: 如果您使用的是Firefox,则可以使用GreaseMonkey完成此操作。(https://addons.mozilla.org/en- US/firefox/addon/748 ) GM是用于将脚本应用于您访问的部分或全部页面的框架。我有禁用google- analytics下载的GM脚本(因为它们会使速度