proprietà java "javax.net.ssl.trustStore" e "javax.net.ssl.trustStorePassword" non corrispondono a "server.ssl.trust-store" e "server.ssl.trust-store -password "da Spring boot" application.properties "(" application.yml ")
quindi non è possibile impostare" javax.net.ssl.trustStore "e" javax.net.ssl.trustStorePassword "semplicemente impostando" server.ssl.trust-store "e" server.ssl.trust-store-password "in" application.properties "(" application.yml ")
un'alternativa dell'impostazione" javax.net.ssl.trustStore "e" javax.net.ssl.trustStorePassword "è di avvio Primavera Externalized Configuration
sotto sono i brani della mia realizzazione:
classe Parametri contiene le impostazioni esterni
@Component
@ConfigurationProperties("params")
public class Params{
//default values, can be override by external settings
public static String trustStorePath = "config/client-truststore.jks";
public static String trustStorePassword = "wso2carbon";
public static String keyStorePath = "config/wso2carbon.jks";
public static String keyStorePassword = "wso2carbon";
public static String defaultType = "JKS";
public void setTrustStorePath(String trustStorePath){
Params.trustStorePath = trustStorePath;
}
public void settrustStorePassword(String trustStorePassword){
Params.trustStorePassword=trustStorePassword;
}
public void setKeyStorePath(String keyStorePath){
Params.keyStorePath = keyStorePath;
}
public void setkeyStorePassword(String keyStorePassword){
Params.keyStorePassword = keyStorePassword;
}
public void setDefaultType(String defaultType){
Params.defaultType = defaultType;
}
classe KeyStoreUtil impegna le impostazioni di" javax. net.ssl.trustStore "e" javax.net.ssl. trustStorePassword"
public class KeyStoreUtil {
public static void setTrustStoreParams() {
File filePath = new File(Params.trustStorePath);
String tsp = filePath.getAbsolutePath();
System.setProperty("javax.net.ssl.trustStore", tsp);
System.setProperty("javax.net.ssl.trustStorePassword", Params.trustStorePassword);
System.setProperty("javax.net.ssl.keyStoreType", Params.defaultType);
}
public static void setKeyStoreParams() {
File filePath = new File(Params.keyStorePath);
String ksp = filePath.getAbsolutePath();
System.setProperty("Security.KeyStore.Location", ksp);
System.setProperty("Security.KeyStore.Password", Params.keyStorePassword);
}
}
si ottiene il setter eseguiti all'interno della funzione di avvio
@SpringBootApplication
@ComponentScan("com.myapp.profiles")
public class ProfilesApplication {
public static void main(String[] args) {
KeyStoreUtil.setKeyStoreParams();
KeyStoreUtil.setTrustStoreParams();
SpringApplication.run(ProfilesApplication.class, args);
}
}
l'application.yml
---
params:
trustStorePath: config/client-truststore.jks
trustStorePassword: wso2carbon
keyStorePath: config/wso2carbon.jks
keyStorePassword: wso2carbon
defaultType: JKS
---
infine, all'interno dell'ambiente in esecuzione (server di distribuzione), si crea una cartella denominata "config" nella stessa cartella in cui è archiviato l'archivio jar.
all'interno della cartella "config", si memorizzano "application.yml", "client-truststore.jks" e "wso2carbon.jks". fatto!
Quali incorporato contenitore stai usando e come hai deciso che non funziona? –