在 AEM 6.0 中加载 PKCS-12 密钥库

Loading a PKCS-12 keystore in AEM 6.0

我正在尝试将我的 SAML 集成代码从 CQ 5.6.1 环境移动到 AEM 6.0。

虽然我的登录工作正常,但我卡在了注销实现上。相同的代码片段在 5.6.1 上运行,但在 AEM 6.0

中抛出 I.O 异常

这是有问题的代码

     Node contentNode = resourceResolver.getResource("path_to_cert")
            .adaptTo(Node.class);

    Binary content = contentNode.getProperty("jcr:data").getBinary();
    log.info("Binary data from certificate -->"+content);

    InputStream stream = content.getStream();

    KeyStore keyStoreFile = java.security.KeyStore.getInstance("PKCS12");
    keyStoreFile.load(stream, "Newuser@123".toCharArray());

这是我看到的错误:-

Caused by: java.io.IOException: Could not decrypt data.
    at com.rsa.cryptoj.o.gx.b(Unknown Source)
    at com.rsa.cryptoj.o.gx.a(Unknown Source)
    at com.rsa.cryptoj.o.gx.a(Unknown Source)
    at com.rsa.cryptoj.o.gx.a(Unknown Source)
    at com.rsa.cryptoj.o.gx.a(Unknown Source)
    at com.rsa.cryptoj.o.gx.engineLoad(Unknown Source)
    at java.security.KeyStore.load(Unknown Source)
    at 

此代码段在 CQ 5.6.1 上运行良好,并且在我的 Java 7 机器上创建的 5.6.1 和 AEM 6.0 中生成的证书相同。

是否有 AEM 6.0 独有的任何 certificate/keystore 相关更改导致此问题?或者我做错了什么?

我遇到过类似的问题并通过传递提供者字符串解决了它:

Keystore.getInstance("PKCS12", "SunJSSE")