开发者社区> 问答> 正文

将kubernetes secret / env用于身份验证到java应用程序中

我有一个spring.boot使用Kubernetes的java 应用程序,我配置了这个.yaml文件

  • name: ACTUATOR_USERNAME
    valueFrom:

    secretKeyRef:
      name: actuator
      key: username
  • name: ACTUATOR_PASSWORD
    valueFrom:

    secretKeyRef:
      name: actuator
      key: password

    将此属性添加到我的 application.propertis

security.user.name=${ACTUATOR_USERNAME}
security.user.password=${ACTUATOR_PASSWORD}
在服务器端创建了secret,如何在我的类中检索这个值

package com.greenqloud.usage.healthcheck;

import org.springframework.boot.actuate.autoconfigure.security.servlet.EndpointRequest;
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 ActuatorSecurity extends WebSecurityConfigurerAdapter {

@Override
protected void configure(HttpSecurity http) throws Exception {
    http.requestMatcher(EndpointRequest.toAnyEndpoint()).authorizeRequests()
            .anyRequest().hasRole("USER")
            .and()
            .httpBasic();
}

@Override
public void configure(AuthenticationManagerBuilder auth) throws Exception {
    System.out.println("actuator username: " + System.getenv("ACTUATOR_USERNAME"));
    System.out.println("actuator password: " + System.getenv("ACTUATOR_PASSWORD"));

    auth.inMemoryAuthentication()
            .withUser("actuator").password("{noop}actuator123").roles("USER");
}

}
我发现的唯一方法就是使用System.out.getenv("ACTUATOR_USERNAME")但是我确定有更好的方法来实现这一目标吗?

展开
收起
k8s小能手 2019-02-22 15:43:39 2333 0
1 条回答
写回答
取消 提交回答
  • 整合最优质的专家资源和技术资料,问答解疑

    为什么你想在env变量中存储凭证。除非您有特殊需要,否则我相信您最好将它们存储在具有加密值的application.properties中。我通常使用jasypt encipher(https://www.baeldung.com/spring-boot-jasypt)。

    2019-07-17 23:29:09
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
ACK 云原生弹性方案—云原生时代的加速器 立即下载
ACK集群类型选择最佳实践 立即下载
企业运维之云原生和Kubernetes 实战 立即下载

相关镜像