Sporadic UnknownHostException when getting oauth2 token from azure

79 Views Asked by At

Sometimes during the day, it fails while reaching out for oauth2 token. Other times, it goes well. It is reaching to https://login.microsoftonline.com/TENANT-ID/oauth2/v2.0/token. I am attaching the exception stack trace. One consistent thing that was noted: every time the error happens, it is when this call is made after some time gap. Should we probe any DNS related settings? Or could be the problem with Token service sleeping at times? I am an amateur and not well built on these concepts. Any help is appreciated. Later update: This exception happens at the same time across two different servers.

 private Token getAuthToken() throws JsonProcessingException {
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);

        MultiValueMap<String, String> body = new LinkedMultiValueMap<>(); 
        body.add("client_id", clientId);            
        body.add("client_secret", clientSecret);
        body.add("grant_type", "client_credentials");
        body.add("scope", scope);
        HttpEntity<?> httpEntity = new HttpEntity<>(body, headers);

        ResponseEntity<String> response = restTemplate.exchange(tokenUri, HttpMethod.POST, httpEntity, String.class);
        String jsonResp = response.getBody();

        return objectMapper.readValue(jsonResp, Token.class);
    }

Exception

2023-12-21 08:41:25.826  INFO 3300 --- [tContainer#0-76] c.s.m.import.AttachmentService         : Processing attachment attachments/applications/65843cc3737f1e00713b3f08/Certificates/95b56bfa-4018-4d4c-b1f4-c270850b2aae.pdf for submission OnlineServices-65843cc3737f1e00713b3f08-file-0
2023-12-21 08:41:26.514  WARN 3300 --- [tContainer#0-76] o.s.j.l.DefaultMessageListenerContainer  : Execution of JMS message listener failed, and no ErrorHandler has been set.

org.springframework.jms.listener.adapter.ListenerExecutionFailedException: Listener method 'public void com.autosys.yourlawoffice.import.QueueListener.receiveMessage(com.autosys.yourlawoffice.core.import.message.SubmissionMessage,java.lang.String) throws com.autosys.yourlawoffice.core.ConfigurationException,java.rmi.RemoteException,com.autosys.yourlawoffice.core.NotFoundException,javax.xml.bind.JAXBException,com.fasterxml.jackson.core.JsonProcessingException' threw exception; nested exception is org.springframework.web.client.ResourceAccessException: I/O error on POST request for "https://login.microsoftonline.com/TENANT-ID/oauth2/v2.0/token": login.microsoftonline.com; nested exception is java.net.UnknownHostException: login.microsoftonline.com
    at org.springframework.jms.listener.adapter.MessagingMessageListenerAdapter.invokeHandler(MessagingMessageListenerAdapter.java:122) ~[spring-jms-5.3.14.jar!/:5.3.14]
    at org.springframework.jms.listener.adapter.MessagingMessageListenerAdapter.onMessage(MessagingMessageListenerAdapter.java:77) ~[spring-jms-5.3.14.jar!/:5.3.14]
    at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:736) ~[spring-jms-5.3.14.jar!/:5.3.14]
    at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:696) ~[spring-jms-5.3.14.jar!/:5.3.14]
    at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:674) ~[spring-jms-5.3.14.jar!/:5.3.14]
    at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:318) ~[spring-jms-5.3.14.jar!/:5.3.14]
    at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:257) ~[spring-jms-5.3.14.jar!/:5.3.14]
    at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1237) ~[spring-jms-5.3.14.jar!/:5.3.14]
    at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1227) ~[spring-jms-5.3.14.jar!/:5.3.14]
    at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1120) ~[spring-jms-5.3.14.jar!/:5.3.14]
    at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]

Caused by: org.springframework.web.client.ResourceAccessException: I/O error on POST request for "https://login.microsoftonline.com/TENANT-ID/oauth2/v2.0/token": login.microsoftonline.com; nested exception is java.net.UnknownHostException: login.microsoftonline.com
    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:785) ~[spring-web-5.3.14.jar!/:5.3.14]
    at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:711) ~[spring-web-5.3.14.jar!/:5.3.14]
    at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:602) ~[spring-web-5.3.14.jar!/:5.3.14]
    at com.autosys.yourlawoffice.import.AttachmentService.getAuthToken(AttachmentService.java:252) ~[classes!/:1.26]
    at com.autosys.yourlawoffice.import.AttachmentService.processAttachment(AttachmentService.java:84) ~[classes!/:1.26]
    at com.autosys.yourlawoffice.import.QueueListener.receiveMessage(QueueListener.java:50) ~[classes!/:1.26]
    at jdk.internal.reflect.GeneratedMethodAccessor137.invoke(Unknown Source) ~[na:na]
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
    at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
    at org.springframework.messaging.handler.invocation.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:169) ~[spring-messaging-5.3.14.jar!/:5.3.14]
    at org.springframework.messaging.handler.invocation.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:119) ~[spring-messaging-5.3.14.jar!/:5.3.14]
    at org.springframework.jms.listener.adapter.MessagingMessageListenerAdapter.invokeHandler(MessagingMessageListenerAdapter.java:114) ~[spring-jms-5.3.14.jar!/:5.3.14]
    ... 10 common frames omitted

Caused by: java.net.UnknownHostException: login.microsoftonline.com
    at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:220) ~[na:na]
    at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[na:na]
    at java.base/java.net.Socket.connect(Socket.java:608) ~[na:na]
    at java.base/sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:287) ~[na:na]
    at java.base/sun.security.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:173) ~[na:na]
    at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:182) ~[na:na]
    at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:474) ~[na:na]
    at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:569) ~[na:na]
    at java.base/sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:265) ~[na:na]
    at java.base/sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:372) ~[na:na]
    at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:191) ~[na:na]
    at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1187) ~[na:na]
    at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1081) ~[na:na]
    at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177) ~[na:na]
    at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:168) ~[na:na]
    at org.springframework.http.client.SimpleBufferingClientHttpRequest.executeInternal(SimpleBufferingClientHttpRequest.java:76) ~[spring-web-5.3.14.jar!/:5.3.14]
    at org.springframework.http.client.AbstractBufferingClientHttpRequest.executeInternal(AbstractBufferingClientHttpRequest.java:48) ~[spring-web-5.3.14.jar!/:5.3.14]
    at org.springframework.http.client.AbstractClientHttpRequest.execute(AbstractClientHttpRequest.java:66) ~[spring-web-5.3.14.jar!/:5.3.14]
    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:776) ~[spring-web-5.3.14.jar!/:5.3.14]
    ... 21 common frames omitted
0

There are 0 best solutions below