@@ -5,7 +5,9 @@ package software.aws.toolkits.jetbrains.core.credentials.profiles
5
5
6
6
import com.intellij.openapi.actionSystem.ActionManager
7
7
import com.intellij.openapi.actionSystem.AnActionEvent
8
+ import com.intellij.openapi.application.ApplicationManager
8
9
import com.intellij.openapi.project.DumbAwareAction
10
+ import com.intellij.util.messages.Topic
9
11
import software.amazon.awssdk.auth.credentials.AwsBasicCredentials
10
12
import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider
11
13
import software.amazon.awssdk.auth.credentials.AwsCredentialsProviderChain
@@ -27,6 +29,7 @@ import software.aws.toolkits.core.credentials.CredentialsChangeListener
27
29
import software.aws.toolkits.core.region.AwsRegion
28
30
import software.aws.toolkits.core.utils.getLogger
29
31
import software.aws.toolkits.core.utils.warn
32
+ import software.aws.toolkits.jetbrains.core.credentials.ChangeConnectionSettingIfValid
30
33
import software.aws.toolkits.jetbrains.core.credentials.MfaRequiredInteractiveCredentials
31
34
import software.aws.toolkits.jetbrains.core.credentials.SsoRequiredInteractiveCredentials
32
35
import software.aws.toolkits.jetbrains.core.credentials.ToolkitCredentialProcessProvider
@@ -137,6 +140,9 @@ class ProfileCredentialProviderFactory(private val ssoCache: SsoCache = diskCach
137
140
credentialLoadCallback(CredentialsChangeEvent (profilesAdded, profilesModified, profilesRemoved))
138
141
139
142
notifyUserOfResult(newProfiles, initialLoad)
143
+ if (profilesAdded.isNotEmpty() && newProfiles.validProfiles.size == 1 ) {
144
+ ApplicationManager .getApplication().messageBus.syncPublisher(NEW_PROFILE_ADDED ).changeConnection(profilesAdded.first())
145
+ }
140
146
}
141
147
142
148
private fun notifyUserOfLoadFailure (e : Exception ) {
@@ -306,6 +312,11 @@ class ProfileCredentialProviderFactory(private val ssoCache: SsoCache = diskCach
306
312
307
313
companion object {
308
314
private val LOG = getLogger<ProfileCredentialProviderFactory >()
315
+
316
+ val NEW_PROFILE_ADDED : Topic <ChangeConnectionSettingIfValid > = Topic .create(
317
+ " Change to newly added profile" ,
318
+ ChangeConnectionSettingIfValid ::class .java
319
+ )
309
320
}
310
321
}
311
322
0 commit comments