我想知道是否有关于如何在一个期间将凭证注入Docker容器的最佳实践docker build.在我的Dockerfile中,我需要获取需要基本身份验证的资源Web服务器,并且我正在考虑如何在不对其进行硬编码的情况下将凭据带入容器的正确方法.
.netrc文件怎么样并使用它curl --netrc ...?但安全呢?我不喜欢将凭据与Dockerfile一起保存在源存储库中.
有没有例如使用参数或环境变量注入凭证的方法?
有任何想法吗?
我试图通过以编程方式登录这样的用户(剥离的异常处理)在不同的身份验证下在JBoss Container中运行代码:
LoginContext ctx = ctx =
new LoginContext("MyLoginSchema",
new UsernamePasswordCallbackHandler("newuser", "")
);
ctx.login();
Subject.doAs(ctx.getSubject(), new PrivilegedAction<T>() {
@Override
public T run() {
Subject.getSubject(AccessController.getContext());
InitialContext ic = new InitialContext();
EJBContext sctxLookup = (EJBContext) ic.lookup("java:comp/EJBContext");
Principal principal = sctxLookup.getCallerPrincipal();
}
});
Run Code Online (Sandbox Code Playgroud)
登录newuser作品(呼叫LoginModule成功),但Subject.doAs()不将新主题与EJBContext.run()-Method中的代码仍然从中获取旧用户的主体EJBContext.
我测试了另一种检索登录用户但方法相同的方法:
Subject caller = (Subject) PolicyContext.getContext("javax.security.auth.Subject.container");
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我正在设置arquillian测试.我想使用arquillian将JB部署到JBoss.这场战争被定义为我的pom.xml中的依赖:
<dependency>
<groupId>my.project</groupId>
<artifactId>mywar</artifactId>
<version>1.0</version>
<type>war</type>
<scope>runtime</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)
但是当我尝试使用shrinkwrap恢复此依赖关系时,它会抛出NoResolvedResultException:
PomEquippedResolveStage resolver = Maven.configureResolver().workOffline().loadPomFromFile("pom.xml");
File war = resolver.resolve("my.project:mywar:war").withoutTransitivity().asSingleFile();
Run Code Online (Sandbox Code Playgroud)
似乎某种程度上解析器无法处理战争文件.我也经历过org.jboss.shrinkwrap.resolver.api.ResolveWithRangeSupportStage.resolveVersionRange(String),它似乎将坐标中的":war"解释为版本 - 这显然不起作用.
如果我提供版本,它的工作原理:
Maven.resolver().resolve("my.project:mywar:war:1.0").withoutTransitivity().asSingleFile();
Run Code Online (Sandbox Code Playgroud)
但我需要让它在没有版本的情况下工作,因为这会随着时间而改变,我不想在每个版本上调整版本.
有任何想法吗?