Java spring vault not reading secret from hashicorp vault?

[亡魂溺海] 提交于 2019-12-11 06:07:01

问题


****Error:** Connecting to vault but not retrieving the stored secrets from the vault** myclass.java as below:

    @SpringBootApplication
    public class HelloSpringVaultApplication {  
        public static void main(String[] args) {
            SpringApplication.run(HelloSpringVaultApplication.class, args);
        }
        @Value("${key}")
        String key; 
        @Value("${value}")
        String value;   
        @PostConstruct
        public void postConstruct() {
            System.out.println("============================");
            System.out.println(key);
            System.out.println(value);
            System.out.println("============================");
        }
    }

application.properties file:

    vault.uri=http://localhost:8200
    vault.token=12345
    key=
    value=

bootstrap.yaml file:

    spring.application.name: hello-spring-vault
    spring.cloud.vault:
        host: localhost
        port: 8200
        scheme: http
        authentication: TOKEN
        token: 12345

VaultConfig file:

    @Configuration
    @VaultPropertySource("secret/hello-spring-vault")
    public class VaultConfig extends AbstractVaultConfiguration {
        //@Autowired
        //Environment environment;  
        @Override
        public VaultEndpoint vaultEndpoint() {
            String uri = getEnvironment().getProperty("vault.uri");
            if (uri != null) {
                System.out.println(uri);
                System.out.println("we are at uri");
                return VaultEndpoint.from(URI.create(uri));
            }
            // ...
            throw new IllegalStateException();
        }

        /**
         * Configure a client authentication. Please consider a more secure
         * authentication method for production use.
         */
        @Override
        public ClientAuthentication clientAuthentication() {
            String token = getEnvironment().getProperty("vault.token");
            if (token != null) {
                System.out.println(token);
                return new TokenAuthentication(token);
            }
            // ...
            throw new IllegalStateException();
        }
    }

Error

            .   ____          _            __ _ _
             /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
            ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
             \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
              '  |____| .__|_| |_|_| |_\__, | / / / /
             =========|_|==============|___/=/_/_/_/
             :: Spring Boot ::        (v2.0.4.RELEASE)

    2018-09-17 23:00:57.001  INFO 5344 --- [main] b.c.PropertySourceBootstrapConfiguration : Located property source: CompositePropertySource {name='vault', propertySources=[LeaseAwareVaultPropertySource {name='secret/hello-spring-vault'}, LeaseAwareVaultPropertySource {name='secret/application'}]}
    2018-09-17 23:00:57.012  INFO 5344 --- [main] s.h.HelloSpringVaultApplication  : No active profile set, falling back to default profiles: default
    2018-09-17 23:00:57.035  INFO 5344 --- [main] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@46d8f407: startup date [Mon Sep 17 23:00:57 EDT 2018]; parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@51972dc7
    2018-09-17 23:00:57.375  INFO 5344 --- [main] o.s.cloud.context.scope.GenericScope: BeanFactory id=829f8997-cef0-3b7b-8ed9-3fa5b3183168
    http://localhost:8200
    12345
    2018-09-17 23:00:57.412  INFO 5344 --- [main] o.s.s.c.ThreadPoolTaskScheduler  : Initializing ExecutorService  'threadPoolTaskScheduler'
    http://localhost:8200
    2018-09-17 23:00:57.461  INFO 5344 --- [main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$45b948cc] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
    ============================

    ============================
    2018-09-17 23:00:59.574  INFO 5344 --- [main] o.s.cloud.commons.util.InetUtils : Cannot determine local hostname
    2018-09-17 23:00:59.736  INFO 5344 --- main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup
    2018-09-17 23:00:59.767  INFO 5344 --- [main] o.s.j.e.a.AnnotationMBeanExporter: Bean with name 'configurationPropertiesRebinder' has been autodetected for JMX exposure
    2018-09-17 23:00:59.769  INFO 5344 --- [main] o.s.j.e.a.AnnotationMBeanExporter: Bean with name 'environmentManager' has been autodetected for JMX exposure
    2018-09-17 23:00:59.772  INFO 5344 --- [main] o.s.j.e.a.AnnotationMBeanExporter: Bean with name 'refreshScope' has been autodetected for JMX exposure
    2018-09-17 23:00:59.781  INFO 5344 --- [main] o.s.j.e.a.AnnotationMBeanExporter: Located managed bean 'environmentManager': registering with JMX server as MBean [org.springframework.cloud.context.environment:name=environmentManager,type=EnvironmentManager]
    2018-09-17 23:00:59.833  INFO 5344 --- [main] o.s.j.e.a.AnnotationMBeanExporter : Located managed bean 'refreshScope': registering with JMX server as MBean [org.springframework.cloud.context.scope.refresh:name=refreshScope,type=RefreshScope]
    2018-09-17 23:00:59.859  INFO 5344 --- [main] o.s.j.e.a.AnnotationMBeanExporter : Located managed bean 'configurationPropertiesRebinder': registering with JMX server as MBean [org.springframework.cloud.context.properties:name=configurationPropertiesRebinder,context=46d8f407,type=ConfigurationPropertiesRebinder]
    2018-09-17 23:00:59.926  INFO 5344 --- [main] s.h.HelloSpringVaultApplication : Started HelloSpringVaultApplication in 7.923 seconds (JVM running for 9.31)
    2018-09-17 23:00:59.934  INFO 5344 --- [Thread-1] s.c.a.AnnotationConfigApplicationContext : Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@51972dc7: startup date [Mon Sep 17 23:00:54 EDT 2018]; root of context hierarchy
    2018-09-17 23:00:59.935  INFO 5344 --- [Thread-5] s.c.a.AnnotationConfigApplicationContext : Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@46d8f407: startup date [Mon Sep 17 23:00:57 EDT 2018]; parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@51972dc7
    2018-09-17 23:00:59.942  INFO 5344 --- [Thread-5] o.s.j.e.a.AnnotationMBeanExport: Unregistering JMX-exposed beans on shutdown
    2018-09-17 23:00:59.944  INFO 5344 --- [Thread-5] o.s.j.e.a.AnnotationMBeanExporter  : Unregistering JMX-exposed beans
    2018-09-17 23:00:59.947  INFO 5344 --- [Thread-5] o.s.s.c.ThreadPoolTaskScheduler   : Shutting down ExecutorService 'threadPoolTaskScheduler'
    2018-09-17 23:00:59.950  INFO 5344 --- [Thread-1]o.s.s.c.ThreadPoolTaskScheduler  : Shutting down ExecutorService

I am new working with Java spring application. Please let me know how to retrieve the stored values from the vault?

Thanks, Akhila***strong text***

来源:https://stackoverflow.com/questions/52378420/java-spring-vault-not-reading-secret-from-hashicorp-vault

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!