kubernetes 部署中 oauth2 端点上的 CORS

CORS on oauth2 endpoint in kubernetes deployment

我在 kubernetes 上安装了 WSO2 API Manager 4.0.0 运行。我需要能够在 oauth2 端点上配置 CORS。按照我试过的文档 this one and this other one.

当我在容器外使用第二个时,它起作用了。在 kubernetes 中,我尝试在 wso2-config-volume/repository/deployment/server/webapps/oauth2/WEB-INF/

中使用 web.xml 安装 ConfigMap

我也试过在 ${WSO2_SERVER_HOME}/repository/deployment/server/webapps/oauth2/WEB-INF/

中安装它

两者都会在启动时导致以下错误。

[/oauth2] Servlet [OAuth2Endpoints] in web application [/oauth2] threw load() exception
java.lang.ClassNotFoundException: org.apache.cxf.transport.servlet.CXFServlet

如果文件 web.xml 已经存在,我认为 oauth2.war 部署存在问题,所以我创建了一个容器,其中包含已创建的 oauth2 文件夹和已配置的 web.xml .但是,它会被覆盖。最后,我尝试删除 oauth2.war 这样文件就不会被覆盖。 oauth2 网络应用程序无法运行,它 returns 404 错误。

在 kubernetes 上 运行 时,有什么方法可以为 oauth2 端点配置 CORS 吗?

您可以在您的 dockerfile 中尝试以下内容吗?

ARG WSO2_SERVER_NAME=wso2am
ARG WSO2_SERVER_VERSION=4.0.0
ARG USER=wso2carbon
ARG USER_HOME=/home/${USER}
ARG WSO2_SERVER=${WSO2_SERVER_NAME}-${WSO2_SERVER_VERSION}
ARG WSO2_SERVER_HOME=${USER_HOME}/${WSO2_SERVER}
ARG WEB_APP_DIR=${WSO2_SERVER_HOME}/repository/deployment/server/webapps

COPY oauth2-web.xml ${WSO2_SERVER_HOME}/
RUN mkdir ${WEB_APP_DIR}/oauth2 \
    && unzip -q ${WEB_APP_DIR}/oauth2.war -d ${WEB_APP_DIR}/oauth2 \
    && cp ${WSO2_SERVER_HOME}/oauth2-web.xml ${WEB_APP_DIR}/oauth2/WEB-INF/web.xml \
    && rm ${WEB_APP_DIR}/oauth2.war \
    && rm ${WSO2_SERVER_HOME}/oauth2-web.xml \
    && chown wso2carbon:wso2 -R ${WEB_APP_DIR}/oauth2