我编写了一个双向自动验证restful service cleint来通过HTTPS在端口8443上使用安全的restful web服务。以下是application.properties的部分内容:
trust.store=classpath:truststore.jks
key.store=类路径:keystore.jks
key.store.password=xyz123
下面是配置RestTemplate的两种方法
@Configuration
public class SSLTemplate {
@Value("${key.store}")
private String keyStore;
@Value("${key.store.password}")
private String keyStorePassword;
@Value("${trust.store}")
private String trustStore;
@Value("${trust.store.password}")
private String trustStorePassword;
@Bean
public RestTemplate restTemplate(RestTemplateBuilder builder) throws Exception {
SSLContext sslContext = SSLContextBuilder.create()
.loadKeyMaterial(ResourceUtils.getFile(keyStore), keyStorePassword.toCharArray(), keyStorePassword.toCharArray())
.loadTrustMaterial(ResourceUtils.getFile(trustStoreF), trustStorePassword.toCharArray())
.build();
...
}
@Configuration
public class SSLTemplate {
@Value("${key.store}")
private Resource keyStoreR;
@Value("${key.store.password}")
private String keyStorePassword;
@Value("${trust.store}")
private Resource trustStoreR;
@Value("${trust.store.password}")
private String trustStorePassword;
@Bean
public RestTemplate restTemplate(RestTemplateBuilder builder) throws Exception {
SSLContext sslContext = SSLContextBuilder.create()
.loadKeyMaterial(keyStoreR.getURL(), keyStorePassword.toCharArray(), keyStorePassword.toCharArray())
.loadTrustMaterial(trustStoreR.getURL(), trustStorePassword.toCharArray())
.build();
...
}
但当我使用罐子发射器时
java-jar app.jar
我得到了以下例外情况。
我也试过
java-djavax.net.ssl.truststore=truststore.jks-djavax.net.ssl.truststorePassword=xyz123-djavax.net.ssl.keystore=keystore.jks-djavax.net.ssl.keystorePassword=xyz123-jar app.jar
得到了同样的例外。任何帮助都将非常感激。
尝试使用resource.getInputStream()而不是resource.getFile(),因为Spring中的resource.getFile()试图访问文件系统路径,但无法访问JAR中的路径
这个链接有一个丰富的内容,请看Andy的回答
示例示例:
Resource resource = resourceLoader.getResource("classpath:GeoLite2-Country.mmdb");
InputStream dbAsStream = resource.getInputStream();
你有使用完整路径吗
-Djavax.net.ssl.trustStore=something/like/this/truststore.jks
我正在按照本指南将MySql添加到一个已经存在的SpringBoot项目中,该项目的依赖关系管理是在Graddle上。就在我添加教程中使用的这三个类时,如下所示 main/java/net/code/model/users.java 我的类使用@SpringBoot main/java/net/code/app.java 但每当我运行该应用程序时,我总是收到下面的消息 我搜索了一些相关问题,比如S
当我调用服务时,它会给出以下错误:- 我已经基于相同的设计模式构建了REST API,它对我来说工作得很好。我没有得到的东西,为什么它说“没有财产日期找到类型现金流!”?实体中没有日期属性。我尝试删除数据库并重新启动,但没有成功。我错过了什么?
我已经为Postgresql启用了复制,并且正在使用PGPool进行负载平衡。 我在使用HikariCP甚至Apache DBCP连接到Postgres时遇到了问题。 在SpringBoot应用程序中有没有使用PGPool的方法? 请查找堆栈跟踪: 2018-08-10 10:20:19.124信息37879----[main]com.zaxxer.hikari.hikaridatasource:
我试图在SpringMVC中运行SpringBoot应用程序,在SpringMVCPOM中添加SpringBoot应用程序依赖项,并扫描SpringBoot包,但我面临以下问题
我目前正在学习springboot。通过选择spring starter project,我在STS中创建了一个项目。spring boot版本2.2.2和已导入JPA、H2和RestRepository。 下面是我的领域类, 应用属性 存储库类 在波姆。xml显示了下面提到的错误。不确定,因为这一点,我得到了错误,但我没有在pom的任何变化。xml 在运行项目时,我得到了以下错误,不知道为什么整
我刚刚在Intellij中设置了Scala(以及SDK和JDK) 文件- 创建了一个项目。 项目名称src下-- 我做错了什么。请帮忙