当前位置: 主页 > JAVA语言

java 验证签名失败-ios 支付验证签名失败

发布时间:2023-03-13 11:09   浏览次数:次   作者:佚名

Java 不断获得;JNLPSigningException[未能验证启动文件的签名]”;启动由模板签名的JNLP时

javaoracle

Java 不断获得;JNLPSigningException[未能验证启动文件的签名]”;启动由模板签名的JNLP时,java,oracle,jnlp,Java,Oracle,Jnlp,我们决定按照oracle指南对JNLP文件进行签名。因为我们有不同的JNLP,所以我们采用了第二种方法(使用JNLP模板对JAR文件进行签名)以下是我们提取到模板中的代码: *我们决定按照oracle指南对JNLP文件进行签名。因为我们有不同的JNLP,所以我们采用了第二种方法(使用JNLP模板对JAR文件进行签名)

以下是我们提取到模板中的代码:



  
    *
    My vendor
    My description
    
    
    
      
    
  
  
    
  
  
    
    
    
    ...
    
    
    
  
  
  


*
我的卖主
我的描述
...

。。。下面是我们实际使用的JNLP之一:



  
    My App - Production version
    My vendor
    My description
    
    
    
      
    
  
  
    
  
  
    
    
    
    ...
    
    
    
  
  
  


我的应用程序-生产版
我的卖主
我的描述
...

请注意,我使用通配符

*

)用于:

标记jnlp中的codebase属性标签jnlp中的href属性标题标签内的内容jar标记中的属性大小这两个属性的值我将模板放在适当的

JNLP-INF

文件夹中(也有适当的名称)java 验证签名失败,然后我们在JAR上签名。但是,我们不断收到一个带有以下消息的

JNLPSigningException

无法验证启动文件的签名。签名版本与下载的版本不匹配

有人知道我遗漏了什么吗?

我相信它对标签中的通配符不满意。我遇到了这种情况。出于测试目的,我删除了通配符并阻塞了其他值。工作正常——但这是不可接受的解决方案,因为这是该属性的全部要点

我也遇到了同样的问题,但事实证明,签名的

.jar

文件(用作签名的JNLP文件)中包含的

src/JNLP-INF/APPLICATION.JNLP

文件与

中定义的web应用程序中使用的
APPLICATION.JNLP

文件不同我在Java 1.7.0上遇到了这个问题,在一次自签名战争中,解决方案是在没有jnlp的情况下删除属性。前缀在您的情况下,请尝试删除:




作为一个调试技巧,我发现从命令行运行javaws-verbose和jnlp文件的url可以在控制台选项卡中提供额外的详细信息。

谢谢。我会尝试,但是,正如你所说,它失去了意义,因为我需要在配置中保持灵活性。我想知道您是否使用了一个或多个通配符,原因与我使用我的相同。。。也许在解析模板时,一些通配符匹配正常java 验证签名失败,但其他通配符刚好不匹配。我的雁行追逐暂时愉快地结束了。我最初的问题是无法在JNLP中获取属性集。我沿着签名jar的道路前进,创建了愚蠢的JNLP模板。这是一条死胡同——因为显然,通配符在属性中不起作用。我废弃了模板,返回到原始的JNLP文件,将属性名称更改为“JNLP.”前缀,并更改代码以读取这些属性。这对我来说很有效。对于那些正在寻找的人来说,似乎不支持属性值中的通配符,即使是jnlp。前缀我不确定Oracle计划如何允许开发人员安全地向应用程序传递动态参数。它快把我逼疯了!