zoukankan      html  css  js  c++  java
  • springboot无法获取证书内容

    最近项目里面在接第三方验证的时候,需要用到生成的公钥和私钥证书。在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):表示只会在根目录下(/)查找该文件;
    `

  • 相关阅读:
    Python基础知识二
    Django1-10-5管理界面中文设置
    人之初
    一句话解释wifi、蓝牙、4g的意思
    如何完美备份旧手机到新手机
    问题解决 --- surface go sd卡槽不识别问题
    反调试技术
    wireshark学习心得
    Socket编程,网络编程
    asm 知识总结
  • 原文地址:https://www.cnblogs.com/yunjiandubu/p/10964759.html
Copyright © 2011-2022 走看看