Fala galera.
Estou construindo uma aplicação com Spring Boot consumindo um WS para acessar um endpoint da Prefeitura de Salvador para envio de NFTS.
Eu tenho o certificado digital e com ele, eu consigo acessar a URL via browser, porém via aplicação dá o seguinte erro:
com.sun.xml.internal.ws.client.ClientTransportException: The server sent HTTP status code 403: Forbidden
Meu application.properties:
server.port=8443
security.require-ssl=true
server.ssl.key-store=classpath:meu-arquivo.pfx
server.ssl.key-store-password=minha-senha
server.ssl.key-store-type=PKCS12
server.ssl.key-password=minha-senha
server.ssl.keyAlias=meu-alias
server.ssl.protocol=TLS
private LoteNFTSSoap getPort() {
LoteNFTS loteNFTS = new LoteNFTS();
LoteNFTSSoap port = loteNFTS.getLoteNFTSSoap();
((BindingProvider) port).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "https://nfse.salvador.ba.gov.br/ws/LoteNFTS.asmx");
return port;
}
//Quando faço esta chamada, dá o erro 403
TesteEnvioLoteNFTSResponse response = getPort().testeEnvioLoteNFTS(request);
WSDL: https://nfse.salvador.ba.gov.br/ws/LoteNFTS.asmx?WSDL
Endpoint do serviço: https://nfse.salvador.ba.gov.br/ws/LoteNFTS.asmx
Obs: Meu certificado está na pasta src/main/resources
Aparenta ser algum erro de configuração, mas eu não consegui identificar. Vocês tem ideia do que está errado?