使用 Spring Boot 自动刷新 Azure 应用程序配置并启用全局方法安全性时出现问题

问题描述 投票:0回答:1

我有一个连接到 Azure 应用程序配置的 Spring Boot (2.6.6) 应用程序。我还使用 Azure 应用程序配置中的自动刷新机制,该机制运行良好 - 我更改 Azure 应用程序配置中的值并更新哨兵值,然后应用程序检测更改并通过调用 setter 更新 bean 值(属性)无需重新启动应用程序的方法。

但是当我添加一个带有 @EnableGlobalMethodSecurity(prePostEnabled = true) 的类后,刷新机制就不再起作用了。仅在启动期间才会设置这些值,然后不再设置。我在日志中看到应用程序检测到更改,但从未调用 bean 的 setter 来更新值。

如何解决这个问题,让自动刷新机制和 PreAuthorize 协同工作?

MethodSecurityConfiguration.class:

@Configuration
@AllArgsConstructor
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class MethodSecurityConfiguration extends GlobalMethodSecurityConfiguration {
...
}



ConfigurationProperties.class:

public interface AppConfigurationProperties {

    void setExample(String example);

    String getExample();
}



AzureAppConfigurationProperties.class:

@Configuration
@ConfigurationProperties(prefix = "config")
public class AzureAppConfigurationProperties implements AppConfigurationProperties {

    private String example;

    @Override
    public void setExample(String example) {
        this.example = example;
    }

    @Override
    public String getExample() {
        return this.example;
    }
}
java spring-boot azure azure-app-configuration
1个回答
0
投票

在我将应用程序升级到 Spring Boot 3 并升级了所有 jar 版本之后。 “虫子”消失了。通过升级,我也用 @EnableMethodSecurity 替换了已弃用的 @EnableGlobalMethodSecurity。

© www.soinside.com 2019 - 2024. All rights reserved.