THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
If the OP issues a refresh token, Pulse attempts to refresh the user's access token when it expires.
PlantUML | ||
---|---|---|
| ||
@startuml
title Pulse Refreshes an Expired Access Token and Reconnects to Geode JMX
participant "Pulse Page\nJavascript" as page
participant "Pulse\nController" as pulse
participant Repository as repository
participant Spring as spring
participant Cluster as cluster
participant OP as op
participant "Geode JMX" as jmx
participant "Custom\nSecurity\nManager" as sm
page -> pulse +: /<some-data-url>
pulse -> repository +: getCluster()
repository -> spring +: get authenticated user details
return sub, accessToken, refreshToken
alt if accessToken has expired but refreshToken has not expired
repository -> op +: refresh(accessToken, refreshToken)
return newAccessToken, newRefreshToken
repository -> spring : save newAccessToken, newRefreshToken
repository -> repository : clusterMap.get(sub)
repository -> cluster +: disconnect
cluster -> jmx +: disconnect
return
return
repository -> cluster +:connect(newAccessToken)
cluster -> jmx +:connect(newAccessToken)
jmx -> sm +: authenticate(newAccessToken)
return principal
return connection
return
end
return cluster
pulse -> cluster +: get data
cluster -> jmx +: get data
jmx -> sm +: authorize(principal, operation)
return true
return data
return data
return data
@enduml
|
Automatic Disconnect and Logout When Unable to Refresh
...