相关疑难解决方法(0)

Arquillian嵌入式Glassfish证书已过期

8月14日,Glassfish使用的gtecybertrust5ca证书到期,导致我的Arquillian测试打印错误.

这个问题类似于此:证书已在日志中通过启动Glassfish的3.1.2过期"只是,我使用的是嵌入式的Glassfish的版本通过Maven的,和的Arquillian神火运行单元和集成测试.

我已经尝试指示Maven使用本地密钥库,即JRE附带的密钥库,以保持过期的证书不被使用.我验证过期的证书不包含在此密钥库中:

C:\Java\jdk1.7.0_25\jre\lib\security>keytool -list -keystore cacerts
Run Code Online (Sandbox Code Playgroud)

我通过Maven指示SureFire启动带有参数的JVM以使用cacerts可信密钥库:

         <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.16</version>
          <configuration>                
              <argLine>
                -Djavax.net.ssl.trustStore=C:\Java\jdk1.7.0_25\jre\lib\security\cacerts
                -Djavax.net.ssl.trustStorePassword=changeit
              </argLine>
              ....
          </configuration>
      </plugin>

      <!-- Configure the Embedded GlassFish Maven plugin -->
      <plugin>
          <groupId>org.glassfish.embedded</groupId>
          <artifactId>maven-embedded-glassfish-plugin</artifactId>
          <version>4.0</version>
          <configuration>
              <app>${project.build.directory}/${project.build.finalName}.war</app>
              <port>7070</port>
              <containerType>web</containerType>
          </configuration>
      </plugin>
Run Code Online (Sandbox Code Playgroud)

我还添加了JVM参数,其中Maven是在Maven的mvn.bat文件中启动的:

@REM Use specified java cert trust
set MAVEN_OPTS=%MAVEN_OPTS% 
 -Djavax.net.ssl.trustStore=%JAVA_HOME%\jre\lib\security\cacerts 
 -Djavax.net.ssl.trustStorePassword=changeit

%MAVEN_JAVA_EXE% %MAVEN_OPTS% ...
Run Code Online (Sandbox Code Playgroud)

这是用于运行单元测试的JVM的Surefire调用:

Forking command line: cmd.exe /X /C "C:\Java\jdk1.7.0_25\jre\bin\java 
-Djavax.net.ssl.trustStore=C:\Java\jdk1.7.0_25\jre\lib\security\cacerts 
-Djavax.net.ssl.trustStorePassword=changeit ..."
Running com.networkfleet.ssp.activation.SelectedActivationTableBeanTest
Run Code Online (Sandbox Code Playgroud)

命令行args似乎与Glassfish期望的com.sun.enterprise.security.ssl.impl.SecuritySupportImpl和com.sun.enterprise.server.pluggable.SecuritySupport类所期望的系统属性相匹配:

@Contract
public abstract class SecuritySupport {

public static final String …
Run Code Online (Sandbox Code Playgroud)

certificate glassfish maven jboss-arquillian

5
推荐指数
1
解决办法
6241
查看次数

标签 统计

certificate ×1

glassfish ×1

jboss-arquillian ×1

maven ×1