Skip to content

Commit 77817fa

Browse files
committed
reorder
1 parent 36341b8 commit 77817fa

File tree

1 file changed

+43
-44
lines changed

1 file changed

+43
-44
lines changed

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/auth/DefaultAuthCredentialsService.kt

Lines changed: 43 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.encryption.JwtEncryp
1818
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.credentials.BearerCredentials
1919
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.credentials.UpdateCredentialsPayload
2020
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.credentials.UpdateCredentialsPayloadData
21+
import software.aws.toolkits.jetbrains.utils.isQConnected
22+
import software.aws.toolkits.jetbrains.utils.isQExpired
2123
import java.util.concurrent.CompletableFuture
2224

2325
class DefaultAuthCredentialsService(
@@ -28,55 +30,17 @@ class DefaultAuthCredentialsService(
2830
BearerTokenProviderListener,
2931
ToolkitConnectionManagerListener {
3032

31-
init {
32-
project.messageBus.connect(serverInstance).subscribe(BearerTokenProviderListener.TOPIC, this)
33-
project.messageBus.connect(serverInstance).subscribe(ToolkitConnectionManagerListener.TOPIC, this)
34-
35-
val connection = ToolkitConnectionManager.getInstance(project)
36-
.activeConnectionForFeature(QConnection.getInstance())
37-
38-
val provider = (connection?.getConnectionSettings() as? TokenConnectionSettings)
39-
?.tokenProvider
40-
?.delegate as? BearerTokenProvider
41-
42-
provider?.currentToken()?.accessToken?.let { token ->
43-
updateTokenCredentials(token, true)
44-
}
45-
}
46-
47-
override fun onChange(providerId: String, newScopes: List<String>?) {
48-
val connection = ToolkitConnectionManager.getInstance(project).activeConnectionForFeature(QConnection.getInstance())
49-
?: return
50-
val provider = (connection.getConnectionSettings() as? TokenConnectionSettings)
51-
?.tokenProvider
52-
?.delegate as? BearerTokenProvider
53-
?: return
54-
55-
provider.currentToken()?.accessToken?.let { token ->
56-
updateTokenCredentials(token, true)
33+
init {
34+
project.messageBus.connect(serverInstance).apply {
35+
subscribe(BearerTokenProviderListener.TOPIC, this@DefaultAuthCredentialsService)
36+
subscribe(ToolkitConnectionManagerListener.TOPIC, this@DefaultAuthCredentialsService)
5737
}
58-
}
5938

60-
override fun activeConnectionChanged(newConnection: ToolkitConnection?) {
61-
val qConnection = ToolkitConnectionManager.getInstance(project)
62-
.activeConnectionForFeature(QConnection.getInstance())
63-
?: return
64-
if (newConnection?.id != qConnection.id) return
65-
// Handle new connection
66-
val provider = (newConnection.getConnectionSettings() as? TokenConnectionSettings)
67-
?.tokenProvider
68-
?.delegate as? BearerTokenProvider
69-
?: return
70-
71-
provider.currentToken()?.accessToken?.let { token ->
72-
updateTokenCredentials(token, true)
39+
if(isQConnected(project) && !isQExpired(project)) {
40+
updateTokenFromActiveConnection()
7341
}
7442
}
7543

76-
override fun invalidate(providerId: String) {
77-
deleteTokenCredentials()
78-
}
79-
8044
override fun updateTokenCredentials(accessToken: String, encrypted: Boolean): CompletableFuture<ResponseMessage> {
8145
val payload = createUpdateCredentialsPayload(accessToken, encrypted)
8246

@@ -93,6 +57,41 @@ class DefaultAuthCredentialsService(
9357
} ?: completableFuture.completeExceptionally(IllegalStateException("LSP Server not running"))
9458
}
9559

60+
override fun onChange(providerId: String, newScopes: List<String>?) {
61+
updateTokenFromActiveConnection()
62+
}
63+
64+
override fun activeConnectionChanged(newConnection: ToolkitConnection?) {
65+
val qConnection = ToolkitConnectionManager.getInstance(project)
66+
.activeConnectionForFeature(QConnection.getInstance())
67+
?: return
68+
if (newConnection?.id != qConnection.id) return
69+
70+
updateTokenFromConnection(newConnection)
71+
}
72+
73+
private fun updateTokenFromActiveConnection() {
74+
val connection = ToolkitConnectionManager.getInstance(project)
75+
.activeConnectionForFeature(QConnection.getInstance())
76+
?: return
77+
78+
updateTokenFromConnection(connection)
79+
}
80+
81+
private fun updateTokenFromConnection(connection: ToolkitConnection) {
82+
(connection.getConnectionSettings() as? TokenConnectionSettings)
83+
?.tokenProvider
84+
?.delegate
85+
?.let { it as? BearerTokenProvider }
86+
?.currentToken()
87+
?.accessToken
88+
?.let { token -> updateTokenCredentials(token, true) }
89+
}
90+
91+
override fun invalidate(providerId: String) {
92+
deleteTokenCredentials()
93+
}
94+
9695
private fun createUpdateCredentialsPayload(token: String, encrypted: Boolean): UpdateCredentialsPayload =
9796
if (encrypted) {
9897
UpdateCredentialsPayload(

0 commit comments

Comments
 (0)