在 docker 容器中运行可运行 jar 时,Grails Spring Security Active Directory 登录失败

Posted

技术标签:

【中文标题】在 docker 容器中运行可运行 jar 时,Grails Spring Security Active Directory 登录失败【英文标题】:Grails Spring Security Active Directory login failed when runnable jar in docker container 【发布时间】:2019-08-27 07:18:52 【问题描述】:

我正在使用带有 spring Security 的 grails 4 可运行 jar。 身份验证映射到 Active Directory。 它在开发模式下运行良好,并且在 openjdk 11.0.2 2019-01-15 OpenJDK Runtime Environment 18.9 (build 11.0.2+9) OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode) 上使用 java -jar 运行时运行良好

Docker 容器(在同一主机上)中的相同操作失败并出现“密码错误”错误(在我们心爱的 Active Directory 中确实不明显):javax.naming.AuthenticationException: [LDAP: error code 49 - 80090308: LdapErr: DSID-0C09042F, comment: AcceptSecurityContext error, data 52e, v2580 ]

Dockerfile 是

FROM adoptopenjdk/openjdk11:latest
EXPOSE 8080

RUN mkdir /opt/app
COPY build/libs/*.jar /opt/app/app.jar

CMD ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/opt/app/app.jar"]

我猜系统属性的某处有些不同,但哪个...

【问题讨论】:

【参考方案1】:

我猜添加“-Dfile.encoding=UTF-8”刚刚解决了我的问题。

【讨论】:

以上是关于在 docker 容器中运行可运行 jar 时,Grails Spring Security Active Directory 登录失败的主要内容,如果未能解决你的问题,请参考以下文章

由于出现此错误,无法运行 docker 容器:无法访问 jarfile app.jar

docker部署可执行jar包

Postgres 和 Docker 在文件更改时重新部署

将maven项目打包在docker容器中的运行过程

反射未在 docker 容器/jar 上找到类

运行docker容器时出错:启动容器进程导致“exec:”python “:$ PATH中找不到可执行文件”:未知