Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] Java azure-identity-extensions 1.1.21 - Database Connection - PSQLException: FATAL: The access token does not have a valid audience claim. #42632

Open
3 tasks done
coding-jj opened this issue Oct 28, 2024 · 5 comments
Assignees
Labels
Azure.Identity customer-reported Issues that are reported by GitHub users external to the Azure organization. question The issue doesn't require a change to the product in order to be resolved. Most issues start as that

Comments

@coding-jj
Copy link

coding-jj commented Oct 28, 2024

Describe the bug
We have Database Access with "Managed Identity" and Azure Identity Extention 1.1.21 configured.
The solution worked perfectly with Azure Identity Extention 1.1.20 and in 1.1.21 we get the Error:
"PSQLException: FATAL: The access token does not have a valid audience claim."

Exception or Stack Trace

org.postgresql.util.PSQLException: FATAL: The access token does not have a valid audience claim. Please acquire a new token for the resource "https://ossrdbms-aad.database.windows.net".
	at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:711)
	at org.postgresql.core.v3.ConnectionFactoryImpl.tryConnect(ConnectionFactoryImpl.java:213)
	at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:268)
	at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:54)
	at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:273)
	at org.postgresql.Driver.makeConnection(Driver.java:446)
	at org.postgresql.Driver.connect(Driver.java:298)
	at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:137)
	at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:360)
	at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:202)
	at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:461)
	at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:550)
	at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:98)
	at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:111)
	at org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:160)
	at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:118)
	at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:81)
	... 115 common frames omitted
Wrapped by: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection
	at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:84)
	at org.springframework.jdbc.support.JdbcUtils.extractDatabaseMetaData(JdbcUtils.java:331)
	... 114 common frames omitted
Wrapped by: org.springframework.jdbc.support.MetaDataAccessException: Could not get Connection for extracting meta-data
	at org.springframework.jdbc.support.JdbcUtils.extractDatabaseMetaData(JdbcUtils.java:357)
	at org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration$LocationResolver.getDatabaseDriver(FlywayAutoConfiguration.java:387)
	... 113 common frames omitted
Wrapped by: java.lang.IllegalStateException: org.springframework.jdbc.support.MetaDataAccessException: Could not get Connection for extracting meta-data
	at org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration$LocationResolver.getDatabaseDriver(FlywayAutoConfiguration.java:391)
	at org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration$LocationResolver.resolveLocations(FlywayAutoConfiguration.java:371)
	at org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration$FlywayConfiguration.configureProperties(FlywayAutoConfiguration.java:233)
	at org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration$FlywayConfiguration.flyway(FlywayAutoConfiguration.java:174)
	at jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.lang.reflect.Method.invoke(Method.java:580)
	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:146)
	... 107 common frames omitted
Wrapped by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.flywaydb.core.Flyway]: Factory method 'flyway' threw exception with message: org.springframework.jdbc.support.MetaDataAccessException: Could not get Connection for extracting meta-data
	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:178)
	at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:644)
	... 106 common frames omitted
Wrapped by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'flyway' defined in class path resource [org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration$FlywayConfiguration.class]: Failed to instantiate [org.flywaydb.core.Flyway]: Factory method 'flyway' threw exception with message: org.springframework.jdbc.support.MetaDataAccessException: Could not get Connection for extracting meta-data
	at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:648)
	at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:636)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1355)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1185)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522)
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:313)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)
	at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1443)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1353)
	at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:904)
	at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:782)
	... 90 common frames omitted
Wrapped by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'jdbcDialect' defined in class path resource [<our package name>/cross_cutting_concern/database/JsonJdbcConfiguration.class]: Unsatisfied dependency expressed through method 'jdbcDialect' parameter 0: Error creating bean with name 'flyway' defined in class path resource [org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration$FlywayConfiguration.class]: Failed to instantiate [org.flywaydb.core.Flyway]: Factory method 'flyway' threw exception with message: org.springframework.jdbc.support.MetaDataAccessException: Could not get Connection for extracting meta-data
	at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:795)
	at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:542)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1355)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1185)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522)
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:225)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1323)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1284)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveBean(DefaultListableBeanFactory.java:486)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:341)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:334)
	at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1261)
	at <our package name>.cross_cutting_concern.database.JsonJdbcConfiguration.jdbcCustomConversions(JsonJdbcConfiguration.kt:22)
	at <our package name>.cross_cutting_concern.database.JsonJdbcConfiguration$$SpringCGLIB$$0.CGLIB$jdbcCustomConversions$0(<generated>)
	at <our package name>.cross_cutting_concern.database.JsonJdbcConfiguration$$SpringCGLIB$$FastClass$$0.invoke(<generated>)
	at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:258)
	at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:348)
	at <our package name>.cross_cutting_concern.database.JsonJdbcConfiguration$$SpringCGLIB$$0.jdbcCustomConversions(<generated>)
	at jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.lang.reflect.Method.invoke(Method.java:580)
	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:146)
	... 66 common frames omitted
Wrapped by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.data.jdbc.core.convert.JdbcCustomConversions]: Factory method 'jdbcCustomConversions' threw exception with message: Error creating bean with name 'jdbcDialect' defined in class path resource [<our package name>/cross_cutting_concern/database/JsonJdbcConfiguration.class]: Unsatisfied dependency expressed through method 'jdbcDialect' parameter 0: Error creating bean with name 'flyway' defined in class path resource [org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration$FlywayConfiguration.class]: Failed to instantiate [org.flywaydb.core.Flyway]: Factory method 'flyway' threw exception with message: org.springframework.jdbc.support.MetaDataAccessException: Could not get Connection for extracting meta-data
	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:178)
	at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:644)
	... 65 common frames omitted
Wrapped by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jdbcCustomConversions' defined in class path resource [<our package name>/cross_cutting_concern/database/JsonJdbcConfiguration.class]: Failed to instantiate [org.springframework.data.jdbc.core.convert.JdbcCustomConversions]: Factory method 'jdbcCustomConversions' threw exception with message: Error creating bean with name 'jdbcDialect' defined in class path resource [<our package name>/cross_cutting_concern/database/JsonJdbcConfiguration.class]: Unsatisfied dependency expressed through method 'jdbcDialect' parameter 0: Error creating bean with name 'flyway' defined in class path resource [org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration$FlywayConfiguration.class]: Failed to instantiate [org.flywaydb.core.Flyway]: Factory method 'flyway' threw exception with message: org.springframework.jdbc.support.MetaDataAccessException: Could not get Connection for extracting meta-data
	at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:648)
	at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:485)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1355)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1185)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522)
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)
	at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1443)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactor...

To Reproduce
Use Azure Postgres Database with Managed Identity and Postgres AuthenticationPluginClassName
jdbc:postgresql://<Azure Porstgres flex Server>:5432/postgres?sslmode=require&authenticationPluginClassName=com.azure.identity.extensions.jdbc.postgresql.AzurePostgresqlAuthenticationPlugin

Code Snippet
Use jdbc String for Database: jdbc:postgresql://<Azure Porstgres flex Server>:5432/postgres?sslmode=require&authenticationPluginClassName=com.azure.identity.extensions.jdbc.postgresql.AzurePostgresqlAuthenticationPlugin

Expected behavior
Authetication is possible

Setup (please complete the following information):

  • OS: Docker Container: azul/zulu-openjdk-alpine:21-jre
  • IDE: IntelliJ IDEA 2024.2.4
  • Library/Libraries: "com.azure:azure-identity-extensions:1.1.21"
  • Java version:
    openjdk 21.0.5 2024-10-15 LTS
    OpenJDK Runtime Environment Zulu21.38+21-CA (build 21.0.5+11-LTS)
    OpenJDK 64-Bit Server VM Zulu21.38+21-CA (build 21.0.5+11-LTS, mixed mode, sharing)
  • App Server/Environment: Spring Boot 3.3.5
  • Frameworks: Spring Boot 3.3.5

Information Checklist
Kindly make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report

  • Bug Description Added
  • Repro Steps Added
  • Setup information Added
@github-actions github-actions bot added customer-reported Issues that are reported by GitHub users external to the Azure organization. needs-triage Workflow: This is a new issue that needs to be triaged to the appropriate team. question The issue doesn't require a change to the product in order to be resolved. Most issues start as that labels Oct 28, 2024
@github-actions github-actions bot removed the needs-triage Workflow: This is a new issue that needs to be triaged to the appropriate team. label Oct 28, 2024
@joshfree
Copy link
Member

@billwert could you follow up with @coding-jj

@billwert
Copy link
Contributor

@coding-jj Hello! Is it possible for you to collect a log for me? Enable the default logger as described here. Use DEBUG level.

@coding-jj
Copy link
Author

@coding-jj Hello! Is it possible for you to collect a log for me? Enable the default logger as described here. Use DEBUG level.

We analyzed the JWT and found out, the the audience in the JWT for my admin user to access the database is https://ossrdbms-aad.database.windows.net. Where as the audience for the managed identity is https://ossrdbms-aad.database.windows.net/ with an extra slash added at the end.

The error message FATAL: The access token does not have a valid audience claim. is directly returned by the Postgresql database.

We assume that the audience in azure-identity-extension 1.1.21 has an extra slash and so the audience can't be verified.

2024-11-04T12:35:26.816031585Z 
2024-11-04T12:35:26.816094091Z   .   ____          _            __ _ _
2024-11-04T12:35:26.816100991Z  /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
2024-11-04T12:35:26.816105992Z ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
2024-11-04T12:35:26.816110992Z  \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
2024-11-04T12:35:26.816115693Z   '  |____| .__|_| |_|_| |_\__, | / / / /
2024-11-04T12:35:26.816120493Z  =========|_|==============|___/=/_/_/_/
2024-11-04T12:35:26.816135095Z 
2024-11-04T12:35:26.844347263Z  :: Spring Boot ::                (v3.3.5)
2024-11-04T12:35:26.844391667Z 
2024-11-04T12:35:27.624116149Z {"timestamp":"2024-11-04T12:35:27.547916612Z","logger":"<our-package>.OurApplicationKt","level":"INFO","thread":"main","mdc":{},"message":"Starting OurApplicationKt v1.0.28-SNAPSHOT using Java 21.0.5 with PID 6 (/app.jar started by root in /)"}
2024-11-04T12:35:27.632725833Z {"timestamp":"2024-11-04T12:35:27.624294465Z","logger":"<our-package>.OurApplicationKt","level":"DEBUG","thread":"main","mdc":{},"message":"Running with Spring Boot v3.3.5, Spring v6.1.14"}
2024-11-04T12:35:27.634159563Z {"timestamp":"2024-11-04T12:35:27.63301966Z","logger":"<our-package>.OurApplicationKt","level":"INFO","thread":"main","mdc":{},"message":"The following 1 profile is active: \"dev\""}
2024-11-04T12:35:41.120141450Z {"timestamp":"2024-11-04T12:35:41.114301719Z","logger":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","level":"INFO","thread":"main","mdc":{},"message":"Bootstrapping Spring Data JDBC repositories in DEFAULT mode."}
2024-11-04T12:35:42.532533354Z {"timestamp":"2024-11-04T12:35:42.532203224Z","logger":"org.springframework.data.repository.config.RepositoryConfigurationDelegate","level":"INFO","thread":"main","mdc":{},"message":"Finished Spring Data repository scanning in 1397 ms. Found 24 JDBC repository interfaces."}
2024-11-04T12:35:47.764209687Z {"timestamp":"2024-11-04T12:35:47.75615331Z","logger":"org.springframework.boot.web.embedded.tomcat.TomcatWebServer","level":"INFO","thread":"main","mdc":{},"message":"Tomcat initialized with port 8080 (http)"}
2024-11-04T12:35:47.824822176Z {"timestamp":"2024-11-04T12:35:47.822227558Z","logger":"org.apache.coyote.http11.Http11NioProtocol","level":"INFO","thread":"main","mdc":{},"message":"Initializing ProtocolHandler [\"http-nio-8080\"]"}
2024-11-04T12:35:47.854575274Z {"timestamp":"2024-11-04T12:35:47.853634395Z","logger":"org.apache.catalina.core.StandardService","level":"INFO","thread":"main","mdc":{},"message":"Starting service [Tomcat]"}
2024-11-04T12:35:47.854620878Z {"timestamp":"2024-11-04T12:35:47.854143738Z","logger":"org.apache.catalina.core.StandardEngine","level":"INFO","thread":"main","mdc":{},"message":"Starting Servlet engine: [Apache Tomcat/10.1.31]"}
2024-11-04T12:35:48.158490090Z {"timestamp":"2024-11-04T12:35:48.155171312Z","logger":"org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/]","level":"INFO","thread":"main","mdc":{},"message":"Initializing Spring embedded WebApplicationContext"}
2024-11-04T12:35:48.158649504Z {"timestamp":"2024-11-04T12:35:48.157168079Z","logger":"org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext","level":"INFO","thread":"main","mdc":{},"message":"Root WebApplicationContext: initialization completed in 19991 ms"}
2024-11-04T12:35:50.589725938Z {"timestamp":"2024-11-04T12:35:50.584776988Z","logger":"io.micrometer.core.instrument.push.PushMeterRegistry","level":"INFO","thread":"main","mdc":{},"message":"publishing metrics for AzureMonitorMeterRegistry every 5m"}
2024-11-04T12:35:53.524124617Z {"timestamp":"2024-11-04T12:35:53.511411163Z","logger":"com.zaxxer.hikari.HikariDataSource","level":"INFO","thread":"main","mdc":{},"message":"HikariPool-1 - Starting..."}
2024-11-04T12:35:55.326136051Z {"timestamp":"2024-11-04T12:35:55.325750216Z","logger":"com.azure.identity.extensions.implementation.template.AzureAuthenticationTemplate","level":"DEBUG","thread":"main","mdc":{},"message":"Initializing AzureAuthenticationTemplate."}
2024-11-04T12:35:55.508689628Z {"timestamp":"2024-11-04T12:35:55.500308367Z","logger":"com.azure.identity.EnvironmentCredential","level":"DEBUG","thread":"main","mdc":{},"message":"Azure Identity => Found the following environment variables: MSI_ENDPOINT, MSI_SECRET, AZURE_CLIENT_ID"}
2024-11-04T12:35:55.508738932Z {"timestamp":"2024-11-04T12:35:55.501305057Z","logger":"com.azure.identity.EnvironmentCredential","level":"DEBUG","thread":"main","mdc":{},"message":"Azure Identity => ERROR in EnvironmentCredential: Failed to determine an authentication scheme based on the available environment variables. Please specify AZURE_TENANT_ID and AZURE_CLIENT_SECRET to authenticate through a ClientSecretCredential; AZURE_TENANT_ID and AZURE_CLIENT_CERTIFICATE_PATH to authenticate through a ClientCertificateCredential; or AZURE_USERNAME and AZURE_PASSWORD to authenticate through a UserPasswordCredential."}
2024-11-04T12:35:55.767406820Z {"timestamp":"2024-11-04T12:35:55.764413949Z","logger":"com.azure.identity.ManagedIdentityCredential","level":"DEBUG","thread":"main","mdc":{},"message":"Azure Identity => Found the following environment variables: MSI_ENDPOINT, MSI_SECRET, AZURE_CLIENT_ID"}
2024-11-04T12:35:55.767454125Z {"timestamp":"2024-11-04T12:35:55.766481836Z","logger":"com.azure.identity.SharedTokenCacheCredential","level":"DEBUG","thread":"main","mdc":{},"message":"Azure Identity => Found the following environment variables: MSI_ENDPOINT, MSI_SECRET, AZURE_CLIENT_ID"}
2024-11-04T12:35:55.839171637Z {"timestamp":"2024-11-04T12:35:55.832761555Z","logger":"com.azure.identity.extensions.implementation.token.AccessTokenResolverOptions","level":"INFO","thread":"main","mdc":{},"message":"Ossrdbms scope set to https://ossrdbms-aad.database.windows.net/.default."}
2024-11-04T12:35:55.841884683Z {"timestamp":"2024-11-04T12:35:55.840005213Z","logger":"com.azure.identity.extensions.implementation.template.AzureAuthenticationTemplate","level":"DEBUG","thread":"main","mdc":{},"message":"Initialized AzureAuthenticationTemplate."}
2024-11-04T12:35:56.097908831Z {"timestamp":"2024-11-04T12:35:56.071566339Z","logger":"com.azure.identity.EnvironmentCredential","level":"DEBUG","thread":"main","mdc":{},"stackTrace":"com.azure.identity.CredentialUnavailableException: EnvironmentCredential authentication unavailable. Environment variables are not fully configured.To mitigate this issue, please refer to the troubleshooting guidelines here at https://aka.ms/azsdk/java/identity/environmentcredential/troubleshoot\n\tat com.azure.identity.EnvironmentCredential.getToken(EnvironmentCredential.java:170)\n\tat com.azure.identity.ChainedTokenCredential.lambda$getToken$3(ChainedTokenCredential.java:93)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:388)\n\tat reactor.core.publisher.FluxIterable$IterableSubscription.slowPath(FluxIterable.java:335)\n\tat reactor.core.publisher.FluxIterable$IterableSubscription.request(FluxIterable.java:294)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.onSubscribe(FluxFlatMap.java:373)\n\tat reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201)\n\tat reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83)\n\tat reactor.core.publisher.Mono.subscribe(Mono.java:4576)\n\tat reactor.core.publisher.FluxFlatMap.trySubscribeScalarMap(FluxFlatMap.java:205)\n\tat reactor.core.publisher.MonoFlatMap.subscribeOrReturn(MonoFlatMap.java:53)\n\tat reactor.core.publisher.Mono.subscribe(Mono.java:4560)\n\tat reactor.core.publisher.Mono.block(Mono.java:1806)\n\tat com.azure.identity.extensions.implementation.template.AzureAuthenticationTemplate.getTokenAsPassword(AzureAuthenticationTemplate.java:102)\n\tat com.azure.identity.extensions.jdbc.postgresql.AzurePostgresqlAuthenticationPlugin.getPassword(AzurePostgresqlAuthenticationPlugin.java:54)\n\tat com.azure.identity.extensions.jdbc.postgresql.kotlin.AzurePostgresqlAuthenticationKotlinPlugin.getPassword(AzurePostgresqlAuthenticationKotlinPlugin.kt:36)\n\tat org.postgresql.core.v3.AuthenticationPluginManager.withPassword(AuthenticationPluginManager.java:78)\n\tat org.postgresql.core.v3.AuthenticationPluginManager.withEncodedPassword(AuthenticationPluginManager.java:108)\n\tat org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:756)\n\tat org.postgresql.core.v3.ConnectionFactoryImpl.tryConnect(ConnectionFactoryImpl.java:213)\n\tat org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:268)\n\tat org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:54)\n\tat org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:273)\n\tat org.postgresql.Driver.makeConnection(Driver.java:446)\n\tat org.postgresql.Driver.connect(Driver.java:298)\n\tat com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:137)\n\tat com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:360)\n\tat com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:202)\n\tat com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:461)\n\tat com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:550)\n\tat com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:98)\n\tat com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:111)\n\tat org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:160)\n\tat org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:118)\n\tat org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:81)\n\tat org.springframework.jdbc.support.JdbcUtils.extractDatabaseMetaData(JdbcUtils.java:331)\n\tat org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration$LocationResolver.getDatabaseDriver(FlywayAutoConfiguration.java:387)\n\tat org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration$LocationResolver.resolveLocations(FlywayAutoConfiguration.java:371)\n\tat org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration$FlywayConfiguration.configureProperties(FlywayAutoConfiguration.java:233)\n\tat org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration$FlywayConfiguration.flyway(FlywayAutoConfiguration.java:174)\n\tat jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)\n\tat java.lang.reflect.Method.invoke(Method.java:580)\n\tat org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:146)\n\tat org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:644)\n\tat org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:636)\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1355)\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1185)\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562)\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522)\n\tat org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337)\n\tat org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)\n\tat org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335)\n\tat org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)\n\tat org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:313)\n\tat org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)\n\tat org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254)\n\tat org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1443)\n\tat org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1353)\n\tat org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:904)\n\tat org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:782)\n\tat org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:542)\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1355)\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1185)\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562)\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522)\n\tat org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337)\n\tat org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)\n\tat org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335)\n\tat org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:225)\n\tat org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1323)\n\tat org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1284)\n\tat org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveBean(DefaultListableBeanFactory.java:486)\n\tat org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:341)\n\tat org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:334)\n\tat org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1261)\n\tat <our-package>.cross_cutting_concern.database.JsonJdbcConfiguration.jdbcCustomConversions(JsonJdbcConfiguration.kt:22)\n\tat <our-package>.cross_cutting_concern.database.JsonJdbcConfiguration$$SpringCGLIB$$0.CGLIB$jdbcCustomConversions$0(<generated>)\n\tat <our-package>.cross_cutting_concern.database.JsonJdbcConfiguration$$SpringCGLIB$$FastClass$$0.invoke(<generated>)\n\tat org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:258)\n\tat org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:348)\n\tat <our-package>.cross_cutting_concern.database.JsonJdbcConfiguration$$SpringCGLIB$$0.jdbcCustomConversions(<generated>)\n\tat jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)\n\tat java.lang.reflect.Method.invoke(Method.java:580)\n\tat org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:146)\n\tat org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:644)\n\tat org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:485)\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1355)\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1185)\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562)\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522)\n\tat org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337)\n\tat org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)\n\tat org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335)\n\tat org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)\n\tat org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254)\n\tat org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1443)\n\tat org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1353)\n\tat org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:904)\n\tat org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:782)\n\tat org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:542)\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1355)\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1185)\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562)\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522)\n\tat org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337)\n\tat org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)\n\tat org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335)\n\tat org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:225)\n\tat org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1323)\n\tat org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1284)\n\tat org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1252)\n\tat org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:359)\n\tat org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:135)\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1705)\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1454)\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:599)\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522)\n\tat org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337)\n\tat org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)\n\tat org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335)\n\tat org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)\n\ta...\n","message":"EnvironmentCredential authentication unavailable. Environment variables are not fully configured.To mitigate this issue, please refer to the troubleshooting guidelines here at https://aka.ms/azsdk/java/identity/environmentcredential/troubleshoot","exceptionClass":"CredentialUnavailableException"}
2024-11-04T12:35:56.119986236Z {"timestamp":"2024-11-04T12:35:56.117334995Z","logger":"com.azure.identity.ChainedTokenCredential","level":"INFO","thread":"main","mdc":{},"message":"Azure Identity => Attempted credential EnvironmentCredential is unavailable."}
2024-11-04T12:35:56.130334675Z {"timestamp":"2024-11-04T12:35:56.117752033Z","logger":"com.azure.identity.WorkloadIdentityCredential","level":"DEBUG","thread":"main","mdc":{},"stackTrace":"com.azure.identity.CredentialUnavailableException: WorkloadIdentityCredential authentication unavailable. The workload options are not fully configured. See the troubleshooting guide for more information. https://aka.ms/azsdk/java/identity/workloadidentitycredential/troubleshoot\n\tat com.azure.identity.WorkloadIdentityCredential.getToken(WorkloadIdentityCredential.java:106)\n\tat com.azure.identity.ChainedTokenCredential.lambda$getToken$3(ChainedTokenCredential.java:93)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:388)\n\tat reactor.core.publisher.FluxIterable$IterableSubscription.slowPath(FluxIterable.java:335)\n\tat reactor.core.publisher.FluxIterable$IterableSubscription.request(FluxIterable.java:294)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.onSubscribe(FluxFlatMap.java:373)\n\tat reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201)\n\tat reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83)\n\tat reactor.core.publisher.Mono.subscribe(Mono.java:4576)\n\tat reactor.core.publisher.FluxFlatMap.trySubscribeScalarMap(FluxFlatMap.java:205)\n\tat reactor.core.publisher.MonoFlatMap.subscribeOrReturn(MonoFlatMap.java:53)\n\tat reactor.core.publisher.Mono.subscribe(Mono.java:4560)\n\tat reactor.core.publisher.Mono.block(Mono.java:1806)\n\tat com.azure.identity.extensions.implementation.template.AzureAuthenticationTemplate.getTokenAsPassword(AzureAuthenticationTemplate.java:102)\n\tat com.azure.identity.extensions.jdbc.postgresql.AzurePostgresqlAuthenticationPlugin.getPassword(AzurePostgresqlAuthenticationPlugin.java:54)\n\tat com.azure.identity.extensions.jdbc.postgresql.kotlin.AzurePostgresqlAuthenticationKotlinPlugin.getPassword(AzurePostgresqlAuthenticationKotlinPlugin.kt:36)\n\tat org.postgresql.core.v3.AuthenticationPluginManager.withPassword(AuthenticationPluginManager.java:78)\n\tat org.postgresql.core.v3.AuthenticationPluginManager.withEncodedPassword(AuthenticationPluginManager.java:108)\n\tat org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:756)\n\tat org.postgresql.core.v3.ConnectionFactoryImpl.tryConnect(ConnectionFactoryImpl.java:213)\n\tat org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:268)\n\tat org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:54)\n\tat org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:273)\n\tat org.postgresql.Driver.makeConnection(Driver.java:446)\n\tat org.postgresql.Driver.connect(Driver.java:298)\n\tat com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:137)\n\tat com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:360)\n\tat com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:202)\n\tat com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:461)\n\tat com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:550)\n\tat com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:98)\n\tat com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:111)\n\tat org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:160)\n\tat org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:118)\n\tat org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:81)\n\tat org.springframework.jdbc.support.JdbcUtils.extractDatabaseMetaData(JdbcUtils.java:331)\n\tat org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration$LocationResolver.getDatabaseDriver(FlywayAutoConfiguration.java:387)\n\tat org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration$LocationResolver.resolveLocations(FlywayAutoConfiguration.java:371)\n\tat org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration$FlywayConfiguration.configureProperties(FlywayAutoConfiguration.java:233)\n\tat org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration$FlywayConfiguration.flyway(FlywayAutoConfiguration.java:174)\n\tat jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)\n\tat java.lang.reflect.Method.invoke(Method.java:580)\n\tat org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:146)\n\tat org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:644)\n\tat org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:636)\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1355)\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1185)\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562)\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522)\n\tat org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337)\n\tat org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)\n\tat org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335)\n\tat org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)\n\tat org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:313)\n\tat org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)\n\tat org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254)\n\tat org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1443)\n\tat org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1353)\n\tat org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:904)\n\tat org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:782)\n\tat org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:542)\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1355)\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1185)\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562)\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522)\n\tat org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337)\n\tat org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)\n\tat org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335)\n\tat org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:225)\n\tat org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1323)\n\tat org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1284)\n\tat org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveBean(DefaultListableBeanFactory.java:486)\n\tat org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:341)\n\tat org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:334)\n\tat org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1261)\n\tat <our-package>.cross_cutting_concern.database.JsonJdbcConfiguration.jdbcCustomConversions(JsonJdbcConfiguration.kt:22)\n\tat <our-package>.cross_cutting_concern.database.JsonJdbcConfiguration$$SpringCGLIB$$0.CGLIB$jdbcCustomConversions$0(<generated>)\n\tat <our-package>.cross_cutting_concern.database.JsonJdbcConfiguration$$SpringCGLIB$$FastClass$$0.invoke(<generated>)\n\tat org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:258)\n\tat org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:348)\n\tat <our-package>.cross_cutting_concern.database.JsonJdbcConfiguration$$SpringCGLIB$$0.jdbcCustomConversions(<generated>)\n\tat jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)\n\tat java.lang.reflect.Method.invoke(Method.java:580)\n\tat org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:146)\n\tat org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:644)\n\tat org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:485)\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1355)\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1185)\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562)\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522)\n\tat org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337)\n\tat org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)\n\tat org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335)\n\tat org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)\n\tat org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254)\n\tat org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1443)\n\tat org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1353)\n\tat org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:904)\n\tat org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:782)\n\tat org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:542)\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1355)\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1185)\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562)\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522)\n\tat org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337)\n\tat org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)\n\tat org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335)\n\tat org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:225)\n\tat org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1323)\n\tat org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1284)\n\tat org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1252)\n\tat org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:359)\n\tat org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:135)\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1705)\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1454)\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:599)\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522)\n\tat org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337)\n\tat org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)\n\tat org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335)\n\tat org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)\n\tat org.s...\n","message":"WorkloadIdentityCredential authentication unavailable. The workload options are not fully configured. See the troubleshooting guide for more information. https://aka.ms/azsdk/java/identity/workloadidentitycredential/troubleshoot","exceptionClass":"CredentialUnavailableException"}
2024-11-04T12:35:56.147344120Z {"timestamp":"2024-11-04T12:35:56.12752472Z","logger":"com.azure.identity.ChainedTokenCredential","level":"INFO","thread":"main","mdc":{},"message":"Azure Identity => Attempted credential WorkloadIdentityCredential is unavailable."}
2024-11-04T12:35:57.138589126Z {"timestamp":"2024-11-04T12:35:57.137340813Z","logger":"com.azure.core.http.netty.implementation.NettyUtility","level":"INFO","thread":"main","mdc":{},"message":"{\"az.sdk.message\":\"The following Netty versions were found on the classpath and have a mismatch with the versions used by azure-core-http-netty. If your application runs without issue this message can be ignored, otherwise please align the Netty versions used in your application. For more information, see https://aka.ms/azsdk/java/dependency/troubleshoot.\",\"azure-netty-version\":\"4.1.110.Final\",\"azure-netty-native-version\":\"2.0.65.Final\",\"classpath-netty-version-io.netty:netty-common\":\"4.1.114.Final\",\"classpath-netty-version-io.netty:netty-handler\":\"4.1.114.Final\",\"classpath-netty-version-io.netty:netty-handler-proxy\":\"4.1.114.Final\",\"classpath-netty-version-io.netty:netty-buffer\":\"4.1.114.Final\",\"classpath-netty-version-io.netty:netty-codec\":\"4.1.114.Final\",\"classpath-netty-version-io.netty:netty-codec-http\":\"4.1.114.Final\",\"classpath-netty-version-io.netty:netty-codec-http2\":\"4.1.114.Final\",\"classpath-netty-version-io.netty:netty-transport-native-unix-common\":\"4.1.114.Final\",\"classpath-netty-version-io.netty:netty-transport-native-epoll\":\"4.1.114.Final\",\"classpath-netty-version-io.netty:netty-transport-native-kqueue\":\"4.1.114.Final\",\"classpath-native-netty-version-io.netty:netty-tcnative-boringssl-static\":\"2.0.66.Final\"}"}
2024-11-04T12:35:58.080104414Z {"timestamp":"2024-11-04T12:35:58.07421658Z","logger":"com.microsoft.aad.msal4j.AppServiceManagedIdentitySource","level":"INFO","thread":"Thread-5","mdc":{},"message":"[Managed Identity] Environment variables validation passed for app service managed identity. Endpoint URI: {endpointUri}. Creating App Service managed identity."}
2024-11-04T12:35:58.080157019Z {"timestamp":"2024-11-04T12:35:58.075753619Z","logger":"com.microsoft.aad.msal4j.AppServiceManagedIdentitySource","level":"INFO","thread":"Thread-5","mdc":{},"message":"[Managed Identity] Adding user assigned ID to the request for App Service Managed Identity."}
2024-11-04T12:35:58.080167220Z {"timestamp":"2024-11-04T12:35:58.07630517Z","logger":"com.microsoft.aad.msal4j.ManagedIdentityRequest","level":"INFO","thread":"Thread-5","mdc":{},"message":"[Managed Identity] Adding user assigned client id to the request."}
2024-11-04T12:36:05.270547671Z {"timestamp":"2024-11-04T12:36:05.260500978Z","logger":"com.microsoft.aad.msal4j.HttpHelper","level":"INFO","thread":"Thread-5","mdc":{},"message":"[Correlation ID: null] Sent (null) Correlation Id is not same as received (null)."}
2024-11-04T12:36:05.270593075Z {"timestamp":"2024-11-04T12:36:05.26108023Z","logger":"com.microsoft.aad.msal4j.AbstractManagedIdentitySource","level":"INFO","thread":"Thread-5","mdc":{},"message":"[Managed Identity] Successful response received."}
2024-11-04T12:36:05.492041957Z {"timestamp":"2024-11-04T12:36:05.490685136Z","logger":"com.azure.identity.ManagedIdentityCredential","level":"INFO","thread":"Thread-5","mdc":{},"message":"Azure Identity => Managed Identity environment: Managed Identity"}
2024-11-04T12:36:05.492079960Z {"timestamp":"2024-11-04T12:36:05.491225484Z","logger":"com.azure.identity.ManagedIdentityCredential","level":"DEBUG","thread":"Thread-5","mdc":{},"message":"Azure Identity => getToken() result for scopes [https://ossrdbms-aad.database.windows.net/.default]: SUCCESS"}
2024-11-04T12:36:05.492088261Z {"timestamp":"2024-11-04T12:36:05.4914009Z","logger":"com.azure.identity.ChainedTokenCredential","level":"INFO","thread":"Thread-5","mdc":{},"message":"Azure Identity => Attempted credential ManagedIdentityCredential returns a token"}
2024-11-04T12:36:06.565594068Z {"timestamp":"2024-11-04T12:36:06.561893539Z","logger":"org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext","level":"WARN","thread":"main","mdc":{},"message":"Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name <spring data jdbc repsitory>"}
2024-11-04T12:36:06.586612136Z {"timestamp":"2024-11-04T12:36:06.586298608Z","logger":"org.apache.catalina.core.StandardService","level":"INFO","thread":"main","mdc":{},"message":"Stopping service [Tomcat]"}
2024-11-04T12:36:06.604811254Z {"timestamp":"2024-11-04T12:36:06.604366414Z","logger":"org.apache.catalina.loader.WebappClassLoaderBase","level":"WARN","thread":"main","mdc":{},"message":"The web application [ROOT] appears to have started a thread named [ActiveTransmissionLoader-worker-0] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:\n java.base/java.lang.Thread.sleep0(Native Method)\n java.base/java.lang.Thread.sleep(Thread.java:509)\n com.microsoft.applicationinsights.internal.channel.common.ActiveTransmissionLoader.fetchNext(ActiveTransmissionLoader.java:183)\n com.microsoft.applicationinsights.internal.channel.common.ActiveTransmissionLoader.access$300(ActiveTransmissionLoader.java:40)\n com.microsoft.applicationinsights.internal.channel.common.ActiveTransmissionLoader$1.run(ActiveTransmissionLoader.java:102)\n java.base/java.lang.Thread.run(Thread.java:1583)"}
2024-11-04T12:36:06.605750337Z {"timestamp":"2024-11-04T12:36:06.605484414Z","logger":"org.apache.catalina.loader.WebappClassLoaderBase","level":"WARN","thread":"main","mdc":{},"message":"The web application [ROOT] appears to have started a thread named [HeartBeatProvider_propertyUpdateService-0] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:\n java.base/jdk.internal.misc.Unsafe.park(Native Method)\n java.base/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:410)\n java.base/java.util.concurrent.LinkedTransferQueue$DualNode.await(LinkedTransferQueue.java:452)\n java.base/java.util.concurrent.SynchronousQueue$Transferer.xferLifo(SynchronousQueue.java:194)\n java.base/java.util.concurrent.SynchronousQueue.xfer(SynchronousQueue.java:235)\n java.base/java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:338)\n java.base/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1069)\n java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)\n java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)\n java.base/java.lang.Thread.run(Thread.java:1583)"}
2024-11-04T12:36:06.606766327Z {"timestamp":"2024-11-04T12:36:06.606144972Z","logger":"org.apache.catalina.loader.WebappClassLoaderBase","level":"WARN","thread":"main","mdc":{},"message":"The web application [ROOT] appears to have started a thread named [HeartBeatProvider_heartBeatSenderService-0] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:\n java.base/jdk.internal.misc.Unsafe.park(Native Method)\n java.base/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:269)\n java.base/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1763)\n java.base/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1182)\n java.base/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)\n java.base/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1070)\n java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)\n java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)\n java.base/java.lang.Thread.run(Thread.java:1583)"}
2024-11-04T12:36:06.693266315Z {"timestamp":"2024-11-04T12:36:06.692778272Z","logger":"org.springframework.boot.autoconfigure.logging.ConditionEvaluationReportLogger","level":"INFO","thread":"main","mdc":{},"message":"\n\nError starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled."}
2024-11-04T12:36:06.835796494Z {"timestamp":"2024-11-04T12:36:06.826434768Z","logger":"org.springframework.boot.SpringApplication","level":"ERROR","thread":"main","mdc":{},"stackTrace":"org.postgresql.util.PSQLException: FATAL: The access token does not have a valid audience claim. Please acquire a new token for the resource \"https://ossrdbms-aad.database.windows.net\".\n\tat org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:711)\n\tat org.postgresql.core.v3.ConnectionFactoryImpl.tryConnect(ConnectionFactoryImpl.java:213)\n\tat org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:268)\n\tat org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:54)\n\tat org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:273)\n\tat org.postgresql.Driver.makeConnection(Driver.java:446)\n\tat org.postgresql.Driver.connect(Driver.java:298)\n\tat com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:137)\n\tat com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:360)\n\tat com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:202)\n\tat com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:461)\n\tat com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:550)\n\tat com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:98)\n\tat com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:111)\n\tat org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:160)\n\tat org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:118)\n\tat org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:81)\n\t... 115 common frames omitted\nWrapped by: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection\n\tat org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:84)\n\tat org.springframework.jdbc.support.JdbcUtils.extractDatabaseMetaData(JdbcUtils.java:331)\n\t... 114 common frames omitted\nWrapped by: org.springframework.jdbc.support.MetaDataAccessException: Could not get Connection for extracting meta-data\n\tat org.springframework.jdbc.support.JdbcUtils.extractDatabaseMetaData(JdbcUtils.java:357)\n\tat org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration$LocationResolver.getDatabaseDriver(FlywayAutoConfiguration.java:387)\n\t... 113 common frames omitted\nWrapped by: java.lang.IllegalStateException: org.springframework.jdbc.support.MetaDataAccessException: Could not get Connection for extracting meta-data\n\tat org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration$LocationResolver.getDatabaseDriver(FlywayAutoConfiguration.java:391)\n\tat org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration$LocationResolver.resolveLocations(FlywayAutoConfiguration.java:371)\n\tat org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration$FlywayConfiguration.configureProperties(FlywayAutoConfiguration.java:233)\n\tat org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration$FlywayConfiguration.flyway(FlywayAutoConfiguration.java:174)\n\tat jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)\n\tat java.lang.reflect.Method.invoke(Method.java:580)\n\tat org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:146)\n\t...","message":"Application run failed","exceptionClass":"UnsatisfiedDependencyException"}

@coding-jj
Copy link
Author

coding-jj commented Nov 4, 2024

The difference with com.azure:azure-identity-extensions between version 1.1.20 and 1.1.21is definitly the slash at the end of the audience.

JWT Version 1.1.20

{
  "typ": "JWT",
  "alg": "RS256",
  "x5t": "3PaK4EfyBNQu3CtjYsa3YmhQ5E0",
  "kid": "3PaK4EfyBNQu3CtjYsa3YmhQ5E0"
}.{
  "aud": "https://ossrdbms-aad.database.windows.net",
  "iss": "https://sts.windows.net/xxxx-xxxx-xxxx-xxxx-xxxx/",
  "iat": 1730728195,
  "nbf": 1730728195,
  "exp": 1730814895,
  "aio": "xxxx",
  "appid": "be3c226c-xxxx-xxxx-xxxx-xxxx",
  "appidacr": "2",
  "idp": "https://sts.windows.net/xxxx-xxxx-xxxx-xxxx-xxxx/",
  "idtyp": "app",
  "oid": "xxxx-xxxx-xxxx-xxxx-xxxx",
  "rh": "xxx",
  "sub": "xxxx-xxxx-xxxx-xxxx-xxxx",
  "tid": "xxxx-xxxx-xxxx-xxxx-xxxx",
  "uti": "xxx",
  "ver": "1.0",
  "xms_idrel": "26 7"
}.[Signature]

JWT Version 1.1.21

{
  "typ": "JWT",
  "alg": "RS256",
  "x5t": "3PaK4EfyBNQu3CtjYsa3YmhQ5E0",
  "kid": "3PaK4EfyBNQu3CtjYsa3YmhQ5E0"
}.{
  "aud": "https://ossrdbms-aad.database.windows.net/",
  "iss": "https://sts.windows.net/xxxx-xxxx-xxxx-xxxx-xxxx/",
  "iat": 1730723464,
  "nbf": 1730723464,
  "exp": 1730810164,
  "aio": "xxxx",
  "appid": "be3c226c-xxxx-xxxx-xxxx-xxxx",
  "appidacr": "2",
  "idp": "https://sts.windows.net/xxxx-xxxx-xxxx-xxxx-xxxx/",
  "idtyp": "app",
  "oid": "xxxx-xxxx-xxxx-xxxx-xxxx",
  "rh": "xxxx",
  "sub": "xxxx-xxxx-xxxx-xxxx-xxxx",
  "tid": "xxxx-xxxx-xxxx-xxxx-xxxx",
  "uti": "xxxx",
  "ver": "1.0",
  "xms_idrel": "10 7"
}.[Signature]

@billwert
Copy link
Contributor

Thank you so much for the analysis here! I'll dig in and get back to you shortly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Azure.Identity customer-reported Issues that are reported by GitHub users external to the Azure organization. question The issue doesn't require a change to the product in order to be resolved. Most issues start as that
Projects
Status: Untriaged
Development

No branches or pull requests

3 participants