Skip to content

Commit 230ff4f

Browse files
committed
misc: add provider name to identity provider
1 parent 15cde2a commit 230ff4f

File tree

5 files changed

+35
-1
lines changed

5 files changed

+35
-1
lines changed

runtime/auth/aws-credentials/api/aws-credentials.api

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ public final class aws/smithy/kotlin/runtime/auth/awscredentials/CachedCredentia
22
public synthetic fun <init> (Laws/smithy/kotlin/runtime/auth/awscredentials/CredentialsProvider;JJLaws/smithy/kotlin/runtime/time/Clock;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
33
public synthetic fun <init> (Laws/smithy/kotlin/runtime/auth/awscredentials/CredentialsProvider;JJLaws/smithy/kotlin/runtime/time/Clock;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
44
public fun close ()V
5+
public fun getProviderName ()Ljava/lang/String;
56
public fun resolve (Laws/smithy/kotlin/runtime/collections/Attributes;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
67
}
78

@@ -14,6 +15,10 @@ public final class aws/smithy/kotlin/runtime/auth/awscredentials/CachedCredentia
1415
public abstract interface class aws/smithy/kotlin/runtime/auth/awscredentials/CloseableCredentialsProvider : aws/smithy/kotlin/runtime/auth/awscredentials/CredentialsProvider, java/io/Closeable {
1516
}
1617

18+
public final class aws/smithy/kotlin/runtime/auth/awscredentials/CloseableCredentialsProvider$DefaultImpls {
19+
public static fun getProviderName (Laws/smithy/kotlin/runtime/auth/awscredentials/CloseableCredentialsProvider;)Ljava/lang/String;
20+
}
21+
1722
public abstract interface class aws/smithy/kotlin/runtime/auth/awscredentials/Credentials : aws/smithy/kotlin/runtime/identity/Identity {
1823
public static final field Companion Laws/smithy/kotlin/runtime/auth/awscredentials/Credentials$Companion;
1924
public abstract fun getAccessKeyId ()Ljava/lang/String;
@@ -41,6 +46,10 @@ public abstract interface class aws/smithy/kotlin/runtime/auth/awscredentials/Cr
4146
public abstract fun resolve (Laws/smithy/kotlin/runtime/collections/Attributes;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
4247
}
4348

49+
public final class aws/smithy/kotlin/runtime/auth/awscredentials/CredentialsProvider$DefaultImpls {
50+
public static fun getProviderName (Laws/smithy/kotlin/runtime/auth/awscredentials/CredentialsProvider;)Ljava/lang/String;
51+
}
52+
4453
public final class aws/smithy/kotlin/runtime/auth/awscredentials/CredentialsProviderChain : aws/smithy/kotlin/runtime/identity/IdentityProviderChain, aws/smithy/kotlin/runtime/auth/awscredentials/CredentialsProvider {
4554
public fun <init> (Ljava/util/List;)V
4655
public fun <init> ([Laws/smithy/kotlin/runtime/auth/awscredentials/CredentialsProvider;)V

runtime/auth/http-auth/api/http-auth.api

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ public final class aws/smithy/kotlin/runtime/http/auth/AnonymousIdentity : aws/s
1818

1919
public final class aws/smithy/kotlin/runtime/http/auth/AnonymousIdentityProvider : aws/smithy/kotlin/runtime/identity/IdentityProvider {
2020
public static final field INSTANCE Laws/smithy/kotlin/runtime/http/auth/AnonymousIdentityProvider;
21+
public fun getProviderName ()Ljava/lang/String;
2122
public fun resolve (Laws/smithy/kotlin/runtime/collections/Attributes;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
2223
}
2324

@@ -36,6 +37,10 @@ public abstract interface class aws/smithy/kotlin/runtime/http/auth/BearerTokenP
3637
public abstract fun resolve (Laws/smithy/kotlin/runtime/collections/Attributes;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
3738
}
3839

40+
public final class aws/smithy/kotlin/runtime/http/auth/BearerTokenProvider$DefaultImpls {
41+
public static fun getProviderName (Laws/smithy/kotlin/runtime/http/auth/BearerTokenProvider;)Ljava/lang/String;
42+
}
43+
3944
public final class aws/smithy/kotlin/runtime/http/auth/BearerTokenProviderChain : aws/smithy/kotlin/runtime/identity/IdentityProviderChain, aws/smithy/kotlin/runtime/http/auth/BearerTokenProvider {
4045
public fun <init> (Ljava/util/List;)V
4146
public fun <init> ([Laws/smithy/kotlin/runtime/http/auth/BearerTokenProvider;)V
@@ -59,3 +64,7 @@ public final class aws/smithy/kotlin/runtime/http/auth/BearerTokenSigner : aws/s
5964
public abstract interface class aws/smithy/kotlin/runtime/http/auth/CloseableBearerTokenProvider : aws/smithy/kotlin/runtime/http/auth/BearerTokenProvider, java/io/Closeable {
6065
}
6166

67+
public final class aws/smithy/kotlin/runtime/http/auth/CloseableBearerTokenProvider$DefaultImpls {
68+
public static fun getProviderName (Laws/smithy/kotlin/runtime/http/auth/CloseableBearerTokenProvider;)Ljava/lang/String;
69+
}
70+

runtime/auth/identity-api/api/identity-api.api

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,10 @@ public abstract interface class aws/smithy/kotlin/runtime/auth/AuthSchemeProvide
4040
public abstract interface class aws/smithy/kotlin/runtime/identity/CloseableIdentityProvider : aws/smithy/kotlin/runtime/identity/IdentityProvider, java/io/Closeable {
4141
}
4242

43+
public final class aws/smithy/kotlin/runtime/identity/CloseableIdentityProvider$DefaultImpls {
44+
public static fun getProviderName (Laws/smithy/kotlin/runtime/identity/CloseableIdentityProvider;)Ljava/lang/String;
45+
}
46+
4347
public abstract interface class aws/smithy/kotlin/runtime/identity/Identity {
4448
public abstract fun getAttributes ()Laws/smithy/kotlin/runtime/collections/Attributes;
4549
public abstract fun getExpiration ()Laws/smithy/kotlin/runtime/time/Instant;
@@ -55,16 +59,19 @@ public final class aws/smithy/kotlin/runtime/identity/IdentityAttributesKt {
5559
}
5660

5761
public abstract interface class aws/smithy/kotlin/runtime/identity/IdentityProvider {
62+
public abstract fun getProviderName ()Ljava/lang/String;
5863
public abstract fun resolve (Laws/smithy/kotlin/runtime/collections/Attributes;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
5964
}
6065

6166
public final class aws/smithy/kotlin/runtime/identity/IdentityProvider$DefaultImpls {
67+
public static fun getProviderName (Laws/smithy/kotlin/runtime/identity/IdentityProvider;)Ljava/lang/String;
6268
public static synthetic fun resolve$default (Laws/smithy/kotlin/runtime/identity/IdentityProvider;Laws/smithy/kotlin/runtime/collections/Attributes;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
6369
}
6470

6571
public abstract class aws/smithy/kotlin/runtime/identity/IdentityProviderChain : aws/smithy/kotlin/runtime/identity/CloseableIdentityProvider {
6672
public fun <init> ([Laws/smithy/kotlin/runtime/identity/IdentityProvider;)V
6773
public fun close ()V
74+
public fun getProviderName ()Ljava/lang/String;
6875
protected final fun getProviders ()[Laws/smithy/kotlin/runtime/identity/IdentityProvider;
6976
public fun resolve (Laws/smithy/kotlin/runtime/collections/Attributes;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
7077
public fun toString ()Ljava/lang/String;

runtime/auth/identity-api/common/src/aws/smithy/kotlin/runtime/identity/IdentityProvider.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,15 @@ public interface IdentityProvider {
2020
* @return An [Identity] that can be used to connect to the service
2121
*/
2222
public suspend fun resolve(attributes: Attributes = emptyAttributes()): Identity
23+
24+
/**
25+
* The name of the identity provider.
26+
*
27+
* It ensures that the name is still available even if the identity provider is wrapped or decorated.
28+
* By default, it returns `null`, but implementations can override it to provide a meaningful name.
29+
*/
30+
public val providerName: String?
31+
get() = null
2332
}
2433

2534
/**

runtime/auth/identity-api/common/src/aws/smithy/kotlin/runtime/identity/IdentityProviderChain.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public abstract class IdentityProviderChain<P : IdentityProvider, I : Identity>(
2929
require(providers.isNotEmpty()) { "at least one provider must be in the chain" }
3030
}
3131
override fun toString(): String =
32-
(listOf(this) + providers).map { it::class.simpleName }.joinToString(" -> ")
32+
(listOf(this) + providers).map { it.providerName ?: it::class.simpleName }.joinToString(" -> ")
3333

3434
override suspend fun resolve(attributes: Attributes): I = withSpan<IdentityProviderChain<*, *>, I>("ResolveIdentityChain") {
3535
val logger = coroutineContext.logger<IdentityProviderChain<*, *>>()

0 commit comments

Comments
 (0)