Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

If the OP issues a refresh token, Pulse attempts to refresh the user's access token when it expires.

PlantUML
titlePulse Refreshes an Expired Access Token and Reconnects to Geode JMX
@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

...