Tag: james

NoSuchAlgorithmException:算法HmacSHA1不可用

看看下面的java行: Mac.getInstance(“HmacSHA1”); 如果我把它放在一个简单的测试程序中,它在我的服务器上运行没有问题。 但是,如果我在容器中使用此行,我会得到 java.security.NoSuchAlgorithmException: Algorithm HmacSHA1 not available at javax.crypto.Mac.getInstance(DashoA13*..) 在这两种情况下都使用相同的JDK安装。 谷歌搜索了一下后,我设法通过做两件事来让它工作: 将sunjce_provider.jar从$JAVA_HOME/jre/lib/ext复制到容器的lib目录。 将以下行添加到我的代码中: java.security.Security.addProvider(new com.sun.crypto.provider.SunJCE()); 具体来说,这发生在Apache James mailet中,但我很确定这与JVM选项有关。 这是它使用的启动脚本 。 虽然最终我得到了它的工作,但解决方案感觉太难以成为正确的解决方案。 我会很感激对正在发生的事情的解释,以及更“正确”的解决方案。 相关问题 : 使用Java加密导致NoSuchAlgorithmException 。 但是,在这种情况下,我很确定应该支持开箱即用的HmacSHA1算法。 作为证据,这在测试程序中没有问题。