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

ArchaiusAutoConfiguration排除在Spring启动之外,但仍未禁用默认系统配置

仲孙铭
2023-03-14

我们公司有tomcat的安全策略,如果需要任何新的安全策略,我们将不得不请求。我使用的是spring-cloud-starter-hystrix-1.4.1。使用archaius-core-0.7.4的版本。罐子我们的服务器管理员肯定不会授予以下权限,这基本上要求对所有内容都具有读写权限

Caused by: java.lang.ExceptionInInitializerError
        at com.netflix.config.DynamicPropertyFactory.getInstance(DynamicPropertyFactory.java:277)
        at com.netflix.hystrix.contrib.metrics.eventstream.HystrixMetricsStreamServlet.<clinit>(HystrixMetricsStreamServlet.java:55)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
        at java.lang.Class.newInstance(Class.java:442)
        at org.springframework.web.servlet.mvc.ServletWrappingController.afterPropertiesSet(ServletWrappingController.java:144)
        at org.springframework.cloud.netflix.endpoint.ServletWrappingEndpoint.afterPropertiesSet(ServletWrappingEndpoint.java:50)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$6.run(AbstractAutowireCapableBeanFactory.java:1677)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1674)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1624)
        ... 107 more
Caused by: java.lang.RuntimeException: Error initializing configuration
        at com.netflix.config.ConfigurationManager.<clinit>(ConfigurationManager.java:109)
        ... 120 more
Caused by: java.security.AccessControlException: access denied ("java.util.PropertyPermission" "*" "read,write")
        at java.security.AccessControlContext.checkPermission(AccessControlContext.java:472)
        at java.security.AccessController.checkPermission(AccessController.java:884)
        at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
        at java.lang.SecurityManager.checkPropertiesAccess(SecurityManager.java:1262)
        at java.lang.System.getProperties(System.java:630)
        at org.apache.commons.configuration.SystemConfiguration.<init>(SystemConfiguration.java:44)
        at com.netflix.config.ConfigurationManager.createDefaultConfigInstance(ConfigurationManager.java:146)
        at com.netflix.config.ConfigurationManager.getConfigInstance(ConfigurationManager.java:161)
        at com.netflix.config.ConfigurationManager.getConfigInstance(ConfigurationManager.java:176)
        at com.netflix.config.ConfigurationBasedDeploymentContext.<init>(ConfigurationBasedDeploymentContext.java:108)
        at com.netflix.config.ConfigurationManager.<clinit>(ConfigurationManager.java:104)
        ... 120 more

在研究了为什么是太古菌之后。动态属性。ConfigurationManager中的disableSystemConfig值默认为false,这使archaius可以默认系统配置。commons配置jar有一个使用系统的代码。getProperties(),这就是我看到这个错误的原因。

我们没有使用太古菌,所以排除了太古菌配置。类,但它似乎仍在寻找配置。

我的问题是如何禁用archaius?ArchaiusAutoConfiguration从Spring启动应用程序类本身排除是不够的吗?如果我必须将archaius.dynamicProperty.disableSystemConfig值设置为true,我该怎么做以及在哪里?

在github上也提出了一个问题https://github.com/Netflix/archaius/issues/539

共有1个答案

翟渝
2023-03-14

属性为archaius。动态属性。disableSystemConfig必须声明为系统属性。Archaius仅尝试从系统属性读取此属性的此值。

源代码:https://github.com/Netflix/archaius/blob/master/archaius-core/src/main/java/com/netflix/config/ConfigurationManager.java#L165

我认为禁用ArchaiusAutoConfiguration本身不是一个好主意。Netflix OSS使用archaius,Spring Cloud将其属性(在Spring中定义)提供给archaius。因此,如果没有它,Netflix OSS inside Spring Cloud将无法正常工作。

 类似资料:
  • Spring Boot是否有默认的EntityManager。我现在正在设置一个,但我注意到当我的项目加载时,我看到了以下内容: LocalContainerEntityManagerFactoryBean:为持久性单元“默认”构建JPA容器EntityManagerFactory 这是默认的EntityManager吗?如果是,我如何访问它? 提前谢谢你。

  • 我在一个项目中使用Spring Boot和Data REST,我想禁用以下默认映射来调试映射问题: 我发现这个问题禁用了,这会导致这些映射不被映射。但是,我的控制器映射也不会被映射。 我可以在保留我定义的映射时禁用这些映射吗? 提前谢谢。

  • 我正在使用最新的spring boot版本,我正在尝试设置一个应用程序,但我想禁用数据源配置。我的配置类如下所示: 但当我运行应用程序时,我会得到以下堆栈跟踪: 我的配置中是否缺少任何东西来完全禁用数据源配置?我将手动设置数据源,所以我不希望Spring为我处理这个问题。

  • 我正在使用Spring boot2.2.9。RELEASE和Spring Cloud Hoxton。SR7。我正在使用Spring Cloud Bus向docker群堆栈中的所有容器发出信号,并且当在生产环境中使用正在运行的RabbitMQ集群部署时,事情会完美运行! 我通过spring cloud starter总线amqp spring Boot starter使用RabbitMQ实现。我们偶

  • 我是storm的新手,当我提交拓扑主管日志时 配置是 zookeeper的版本为 结果喷口不能发出消息和螺栓也有什么我可以分享它来解决这个问题吗?谁能帮忙?!

  • spring-引导利用spring配置文件(http://docs.Spring.io/Spring-boot/docs/current/reference/html/boot-features-profiles.html),例如,它允许为不同环境提供单独配置。我使用这个特性的一种方法是配置测试数据库以供集成测试使用。然而,我想知道是否有必要创建我自己的配置文件'test',并在每个测试文件中显式