Tenho uma aplicação que usa um Keystore com os certificados dentro, para se comunicar com webservices
a aplicação funciona normalmente, mas me pediram pra fazer a aplicação enviar email,
Comecei desenvolvendo a parte para realizar testes e funcionou perfeitamente usando o yahoo
quando implementei na aplicação, recebi uns erros de que não era possivel encontrar o certificado no caminho especificado
aquele mesmo erro de quando o java não encontra o certificado no Keystore, realizei esse teste com o yahoo
resolvi fazer um teste usando um servidor de email sem autenticação e o email foi enviado normalmente
Então cheguei a conclusão de que essas linhas
System.setProperty("java.protocol.handler.pkgs", "com.sun.net.ssl.internal.www.protocol");
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
System.setProperty("javax.net.ssl.keyStoreType", "PKCS12");
System.setProperty("javax.net.ssl.keyStore", "certificado cliente");
System.setProperty("javax.net.ssl.keyStorePassword", "senha certificado cliente");
System.setProperty("javax.net.ssl.trustStoreType", "JKS");
System.setProperty("javax.net.ssl.trustStore", "caminho do arquivo keystore");
devem sobreescrever algum caminho que fizesse o java procurar o certificado no sistema operacional, no meu caso windows
Para enviar email eu utilizei a API JavaMail
Existe algum modo de eu fazer com o java procure os certificados nos dois lugares (se o erro for esse mesmo)??
ou alguém sabe uma solução alternatina??
não sei se eu vou realmente ter que usar autenticação pra enviar email, mas acho que sim, também pensei em usar uma aplicação separada que ficasse esperando a aplicação principal chama-la através da URL, assim enviando email, mas já fiz quase tudo aqui, só ficou pendente esse negócio do certificado
obs: a aplicação é web e roda no Tomcat