WildFly - 与尝试解决安全漏洞相关的应用程序部署问题

WildFly - Application deployment issues related to trying to resolve security vulnerabilities

简介

因此,目前我正在使用 AKS,我的团队目前正在使用 TwistLock,我们注意到我们正在使用的基础 docker 图像存在严重漏洞。我只是想知道是否有人知道一种干净的方法可以使它按预期运行?

我的原始解决方案

所以,为了通过这个关键漏洞,我在我们的 Dockerfile 中实现了以下代码片段,我主要是作为测试来做的,我不太希望它能真正起作用。令人惊讶的是它比我想象的更有效,但不用多说,这里是代码:

## Remove dependencies for twistlock.
RUN rm -r /opt/jboss/wildfly/modules/system/layers/base/com/fasterxml/jackson/core/jackson-databind/
RUN rm -r /opt/jboss/wildfly/modules/system/layers/base/org/apache/commons/beanutils/
RUN rm -r /opt/jboss/wildfly/modules/system/layers/base/org/picketlink/
RUN rm -r /opt/jboss/wildfly/bin/client

我决定手动尝试删除与 WildFly 本身相关的依赖项,但是不出所料,这导致应用程序无法成功部署。

额外

即使我像这样在pom文件中指定依赖项,它仍然不起作用:

<!-- ... Other parts of the pom ... -->

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.10</version><!--$NO-MVN-MAN-VER$-->
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.9.10</version><!--$NO-MVN-MAN-VER$-->
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>2.9.10</version><!--$NO-MVN-MAN-VER$-->
    </dependency>
</dependencies>

<!-- ... Other parts of the pom ... -->

我也试过包含一个 jboss-deployment-structure.xml 文件,代码如下:

<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.1">
    <deployment>
        <exclusions>
            <module name="com.fasterxml.jackson.core.jackson-core" />
            <module name="com.fasterxml.jackson.core.jackson-databind" />
            <module name="com.fasterxml.jackson.core.jackson-annotations" />
        </exclusions>
    </deployment>
</jboss-deployment-structure>

输出

我在日志中收到以下错误并不奇怪,但我想知道是否有可能解决这个问题:

结论

显然,我远非合适的解决方案不起作用,不幸的是 JBoss/WildFly configuration/administration 远不是我的专业领域之一。

有没有人有任何可能的解决方案?

解决方案

值得庆幸的是,经过一系列尝试来解决这个问题,我相信我已经找到了最合适的解决方案,值得庆幸的是,我似乎走在了正确的路线上,但是我只需要添加一点额外的东西.就像更新我的 jboss-deployment-structure.xml 文件以使用以下标记一样简单:

<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
    <deployment>
        <exclusions>
            <module name="com.fasterxml.jackson.core.jackson-core" />
            <module name="com.fasterxml.jackson.core.jackson-databind" />
            <module name="com.fasterxml.jackson.core.jackson-annotations" />

            <module name="com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider" />
            <module name="org.jboss.resteasy.resteasy-jackson2-provider" />
            <module name="org.jboss.resteasy.resteasy-jackson-provider" />
        </exclusions>
    </deployment>
</jboss-deployment-structure>

我已经成功地部署了我正在处理的应用程序,我现在只有一个超出应用程序层范围的漏洞。