美文网首页
springboot无法获取证书内容

springboot无法获取证书内容

作者: 史迪奇Aloha | 来源:发表于2019-06-02 22:05 被阅读0次

    最近项目里面在接第三方验证的时候,需要用到生成的公钥和私钥证书。在demo测试的时候,发现在resources里面直接建立一个key文件夹放入证书文件,然后使用文件方式去获取,大概代码如下:

    File pfxfile = SpringContextUtils.getApplicationContext().getResource("classpath:key" + File.separatorChar + xinyanProperties.getPfxName()).getFile();
    

    dubug下发现能够正常取到证书的内容,但是将项目打成jar包传输到服务器上之后,发现方法报错,在获取证书内容的时候,报null,也就是说正常的获取在服务器上失败了。


    查找原因

    把jar包反编译之后,发现jar包内的目录结构和springboot项目的目录结构全不一样:对比如下图:


    springboot结构
    jar包结构

    对比发现里面已经没有了对应的文件路径,所以使用上面的方法是获取不到的,经过Google,发现了这种情况下,使用流的方式获取

    InputStream stream = getClass().getClassLoader().getResourceAsStream("key" + File.separatorChar + xinyanProperties.getPfxName());
    

    总结

    getClass().getResource(fileName):表示只会在当前调用类所在的同一路径下查找该fileName文件; .getClass().getClassLoader().getResource(fileName):表示只会在根目录下(/)查找该文件;
    `

    相关文章

      网友评论

          本文标题:springboot无法获取证书内容

          本文链接:https://www.haomeiwen.com/subject/scefxctx.html