- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 tomcat 8.5 正在运行并在上面部署了我的应用程序。虽然编译一切正常,但在运行时出现以下错误:
java.lang.NoClassDefFoundError: org/bouncycastle/jce/spec/ECPublicKeySpec
org.bouncycastle.jcajce.provider.asymmetric.ec.KeyFactorySpi.engineGeneratePublic(Unknown Source)
java.security.KeyFactory.generatePublic(KeyFactory.java:334)
COMPANY.server.impl.BouncyCastleCrypto.decodePublicKey(BouncyCastleCrypto.java:87)
COMPANY.server.impl.U2FServerReferenceImpl.processSignResponse(U2FServerReferenceImpl.java:270)
COMPANY.tools.httpserver.servlets.SignFinishServletImpl.doGet(SignFinishServletImpl.java:41)
javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
这是我得到的所有堆栈跟踪信息。
我已经尝试了几个版本的 bouncycaSTLe 依赖项(1.58 和 1.50,我使用 maven)bcprov-jdk15on。我查看了生成的 .war 文件,WEB-INF 文件夹包含 jar。我尝试重新下载 maven 依赖项,在 eclipse 中做了一个项目清理和 maven 清理。
我还在 java.security 文件中添加了适当的行:
security.provider.10=org.bouncycastle.jce.provider.BouncyCastleProvider
奇怪的是,我有时可以访问 ECPublicKeySpec。例如:
ECPublicKeySpec ecPublicKeySpec = new ECPublicKeySpec(point,
new ECParameterSpec(
curve.getCurve(),
curve.getG(),
curve.getN(),
curve.getH()));
logger.info(ecPublicKeySpec.toString());
上面的工作正常但是:
KeyFactory.getInstance("ECDSA").generatePublic(ecPublicKeySpec);
或
KeyFactory.getInstance("ECDSA", "BC").generatePublic(ecPublicKeySpec);
这不起作用并产生 NoClassDefFoundError。
编辑:忘记提及:如果我将我的应用程序部署到本地主机上的 tomcat,它就可以工作。如果我将它部署到远程 tomcat,它就无法工作。
EDIT2:mvn dependency:tree -Dverbose -Dincludes=org/bouncycaSTLe/jce/spec/ECPublicKeySpec
的输出:
[WARNING]
[WARNING] Some problems were encountered while building the effective settings
[WARNING] Unrecognised tag: 'profiles' (position: START_TAG seen ...</profile>\n <profiles>... @276:16) @ /Users/tinoa/.m2/settings.xml, line 276, column 16
[WARNING]
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building application_implemented 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ application_implemented ---
...
lots of "Downloading/Downloaded" lines...
...
Downloaded:
https://repo.maven.apache.org/maven2/org/apache/maven/shared/maven-
invoker/2.0.11/maven-invoker-2.0.11.jar (29 kB at 22 kB/s)
Downloaded:
https://repo.maven.apache.org/maven2/org/eclipse/aether/aether-
util/0.9.0.M2/aether-util-0.9.0.M2.jar (134 kB at 102 kB/s)
Downloaded: https://repo.maven.apache.org/maven2/commons-lang/commons-
lang/2.6/commons-lang-2.6.jar (284 kB at 200 kB/s)
Downloaded: https://repo.maven.apache.org/maven2/commons-
collections/commons-collections/3.2.1/commons-collections-3.2.1.jar
(575 kB at 333 kB/s)
[INFO] ----------------------------------------------------------------
--------
[INFO] BUILD SUCCESS
[INFO] ----------------------------------------------------------------
--------
[INFO] Total time: 15.216 s
[INFO] Finished at: 2017-10-10T15:05:40+02:00
[INFO] Final Memory: 17M/297M
[INFO] ------------------------------------------------------------------------
最佳答案
就我而言,在 CentOS 上运行的远程 tomcat 服务器没有出现任何错误。但是,我在 Windows 10 上运行的本地环境中得到了 NoClassDefFoundError,尽管已经导入了相关的 maven 依赖项。幸运的是,除了maven依赖,将bcprov-jdk15on-1.55.jar文件复制到本地环境的$java_home/jre/lib/ext解决了问题。
关于java - NoClassDefFoundError : org/bouncycaSTLe/jce/spec/ECPublicKeySpec even though bouncycaSTLe is available,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46664334/
是否可以将通过 ncipher JCE API 生成的 key “重定向”到 pkcs11?我知道您可以通过 generatekey 命令重新定位,但我不知道如何对现有的 JCE key 执行此操作。
你能帮我指出默认的 RSA 填充是什么吗? 准确地说,如果我如下创建密码实例,确保 java 使用某种填充作为加密文本字节长度始终显示 256 字节的 2048 RSA key ,无论纯文本是一个字符
这个问题在这里已经有了答案: How to avoid installing "Unlimited Strength" JCE policy files when deploying an appl
我正在尝试使用 jasypt 使用基于密码的 aes 加密来加密一个简单的字符串,并且我在很多代码示例中遇到该算法以字符串形式给出,如“PBEWithSHA512AndAES256-CBC-BC”。我
我需要编写一个 java JCE 提供程序。我已经在网上查了好几天了,但找不到解决方案。您能给我一些有用的信息吗?问候, 最佳答案 文档是 here和 here ,但是你为什么要这样做呢?大多数主流加
我有一个 Joomla! 3.3.3 并且我正在使用 JCE。我的问题是编辑器没有在工具栏上显示按钮的图标。使用 Firebug,我意识到这是所有主题的 css 路径中的问题。 在本例中,我使用的是
如我所见document ,JCE 有多个提供者。如何找出默认可用的提供程序? 最佳答案 调用Security.getProviders() ,例如 for (Provider provider :
在 JRE 更新后,JCE 策略文件(位于 {java.home}/lib/security)是否被标准强度策略文件覆盖?还是这些在 JRE 更新中单独存在? 编辑:有谁知道 Mac OS X JRE
是否可以使用 Java 的 JCE 库加密整个文件夹。如果有问题,这些文件夹将包含其他文件夹/文件。对于那些不知道 JCE 是什么的人,它代表 Java Cryptography Extension,
我正在使用以下代码来获取 AESCMAC Mac mac = Mac.getInstance("aescmac", new BouncyCastleProvider()); mac.init(k_ma
我已经安装了JDK 7 。其中已包含以下 JAR: local_policy US_export_policy 但是当我开始申请时,我面临着 JCE error 。所以我用谷歌搜索并下载了JDK 7
有谁知道为什么我无法在 Eclipse 中查看“Cipher”的源代码?源代码在那里,我可以看到 openjdk 中的一些其他内置源代码,例如“println”,但无法弄清楚为什么我无法查看“Ciph
我必须运行一个相当旧的程序代码,它使用 ABA-provider for JCE。所有类都可以在源文件夹中找到。但是,会出现 NoSuchProviderException:“JCE 无法验证提供程序
我开发了一个应用程序,在 BountyCaSTLe.jar 的帮助下,我在其中使用了密码术。我还有一行 Security.addProvider(new org.bouncycaSTLe.jce.pr
我们有自定义的 JCE 安全提供商,它使用我们的智能卡来执行加密操作。 当我们尝试使用某些类(如 Cipher、KeyAgreement、KeyGenerator、Mac 或 SecretKeyFac
我有一个关于 JCE 加密的问题。您如何用 Java 编写自己的加密算法/ key 生成器,可以将其作为 .jar 文件安装在 ext 目录中?我想出了算法的基本思想,但我不知道如何实现它。我是否将
我正在开发一个程序,我将使用该程序使用 JCE 来加密和解密文件。我的加密和解密在默认模式 (ECB/PKCS5PADDING) 下正常工作,但是当我尝试使用 CBC 并解密我的文件时,我得到的一些文
我们已将 Java 产品配置为仅使用经 FIPS 验证的 RSA JCE 加密提供程序。但是,当 只有 RSA 库在 java.security 中列出时,该产品将无法工作。因此,有些东西正在向其他提
Sun 的 PKCS11 JCE 安全提供程序缺少我们需要的一些功能。 所以我使用原始资源编写了它的增强版本。 不幸的是,JCE 基础设施拒绝了新的提供者 “JCE 无法验证提供者” 因为它没有正确签
不论是JCE还是CKEDITOR,都没解决中文名文件的问题,要么上传失败,要么传上去了中文名不能被web访问。相比之下,JCE更加人性化,比如文件上传后默认被选中,不需用户在那么小的弹出窗口去上下翻
我是一名优秀的程序员,十分优秀!