keycloak
公開メンバ関数 | 限定公開メンバ関数 | 関数 | 非公開変数類 | 静的非公開変数類 | 全メンバ一覧
org.keycloak.authorization.client.util.TokenCallable クラス
org.keycloak.authorization.client.util.TokenCallable の継承関係図
Inheritance graph
org.keycloak.authorization.client.util.TokenCallable 連携図
Collaboration graph

公開メンバ関数

 TokenCallable (String userName, String password, Http http, Configuration configuration, ServerConfiguration serverConfiguration)
 
 TokenCallable (Http http, Configuration configuration, ServerConfiguration serverConfiguration)
 
String call ()
 
boolean isTokenTimeToLiveSufficient (AccessToken token)
 

限定公開メンバ関数

boolean isRetry ()
 

関数

AccessTokenResponse obtainAccessToken ()
 
AccessTokenResponse obtainAccessToken (String userName, String password)
 
Http getHttp ()
 
Configuration getConfiguration ()
 
ServerConfiguration getServerConfiguration ()
 
void clearToken ()
 

非公開変数類

final String userName
 
final String password
 
final Http http
 
final Configuration configuration
 
final ServerConfiguration serverConfiguration
 
AccessTokenResponse clientToken
 

静的非公開変数類

static Logger log = Logger.getLogger(TokenCallable.class)
 

詳解

構築子と解体子

◆ TokenCallable() [1/2]

org.keycloak.authorization.client.util.TokenCallable.TokenCallable ( String  userName,
String  password,
Http  http,
Configuration  configuration,
ServerConfiguration  serverConfiguration 
)
inline
41  {
42  this.userName = userName;
43  this.password = password;
44  this.http = http;
47  }
final String password
Definition: TokenCallable.java:35
final ServerConfiguration serverConfiguration
Definition: TokenCallable.java:38
final String userName
Definition: TokenCallable.java:34
final Http http
Definition: TokenCallable.java:36
final Configuration configuration
Definition: TokenCallable.java:37

◆ TokenCallable() [2/2]

org.keycloak.authorization.client.util.TokenCallable.TokenCallable ( Http  http,
Configuration  configuration,
ServerConfiguration  serverConfiguration 
)
inline
49  {
50  this(null, null, http, configuration, serverConfiguration);
51  }
final ServerConfiguration serverConfiguration
Definition: TokenCallable.java:38
final Http http
Definition: TokenCallable.java:36
final Configuration configuration
Definition: TokenCallable.java:37

関数詳解

◆ call()

String org.keycloak.authorization.client.util.TokenCallable.call ( )
inline
54  {
55  if (clientToken == null) {
56  if (userName == null || password == null) {
58  } else {
60  }
61  } else {
62  String refreshTokenValue = clientToken.getRefreshToken();
63  try {
64  RefreshToken refreshToken = JsonSerialization.readValue(new JWSInput(refreshTokenValue).getContent(), RefreshToken.class);
65  if (!refreshToken.isActive() || !isTokenTimeToLiveSufficient(refreshToken)) {
66  log.debug("Refresh token is expired.");
67  if (userName == null || password == null) {
69  } else {
71  }
72  }
73  } catch (Exception e) {
74  clientToken = null;
75  throw new RuntimeException(e);
76  }
77  }
78 
79  String token = clientToken.getToken();
80 
81  try {
82  AccessToken accessToken = JsonSerialization.readValue(new JWSInput(token).getContent(), AccessToken.class);
83 
84  if (accessToken.isActive() && this.isTokenTimeToLiveSufficient(accessToken)) {
85  return token;
86  } else {
87  log.debug("Access token is expired.");
88  }
89 
90  clientToken = http.<AccessTokenResponse>post(serverConfiguration.getTokenEndpoint())
91  .authentication().client()
92  .form()
93  .param("grant_type", "refresh_token")
94  .param("refresh_token", clientToken.getRefreshToken())
95  .response()
96  .json(AccessTokenResponse.class)
97  .execute();
98  } catch (Exception e) {
99  clientToken = null;
100  throw new RuntimeException(e);
101  }
102 
103  return clientToken.getToken();
104  }
String getToken()
Definition: AccessTokenResponse.java:72
final String password
Definition: TokenCallable.java:35
final ServerConfiguration serverConfiguration
Definition: TokenCallable.java:38
boolean isTokenTimeToLiveSufficient(AccessToken token)
Definition: TokenCallable.java:106
final String userName
Definition: TokenCallable.java:34
AccessTokenResponse obtainAccessToken()
Definition: TokenCallable.java:115
String getRefreshToken()
Definition: AccessTokenResponse.java:96
static Logger log
Definition: TokenCallable.java:33
AccessTokenResponse clientToken
Definition: TokenCallable.java:39
final Http http
Definition: TokenCallable.java:36
String getTokenEndpoint()
Definition: ServerConfiguration.java:117

◆ clearToken()

void org.keycloak.authorization.client.util.TokenCallable.clearToken ( )
inlinepackage
154  {
155  clientToken = null;
156  }
AccessTokenResponse clientToken
Definition: TokenCallable.java:39

◆ getConfiguration()

Configuration org.keycloak.authorization.client.util.TokenCallable.getConfiguration ( )
inlinepackage
146  {
147  return configuration;
148  }
final Configuration configuration
Definition: TokenCallable.java:37

◆ getHttp()

Http org.keycloak.authorization.client.util.TokenCallable.getHttp ( )
inlinepackage
138  {
139  return http;
140  }
final Http http
Definition: TokenCallable.java:36

◆ getServerConfiguration()

ServerConfiguration org.keycloak.authorization.client.util.TokenCallable.getServerConfiguration ( )
inlinepackage
150  {
151  return serverConfiguration;
152  }
final ServerConfiguration serverConfiguration
Definition: TokenCallable.java:38

◆ isRetry()

boolean org.keycloak.authorization.client.util.TokenCallable.isRetry ( )
inlineprotected
142  {
143  return true;
144  }

◆ isTokenTimeToLiveSufficient()

boolean org.keycloak.authorization.client.util.TokenCallable.isTokenTimeToLiveSufficient ( AccessToken  token)
inline
106  {
107  return token != null && (token.getExpiration() - getConfiguration().getTokenMinimumTimeToLive()) > Time.currentTime();
108  }
int getTokenMinimumTimeToLive()
Definition: AdapterConfig.java:231
Configuration getConfiguration()
Definition: TokenCallable.java:146

◆ obtainAccessToken() [1/2]

AccessTokenResponse org.keycloak.authorization.client.util.TokenCallable.obtainAccessToken ( )
inlinepackage

Obtains an access token using the client credentials.

戻り値
an AccessTokenResponse
115  {
116  return this.http.<AccessTokenResponse>post(this.serverConfiguration.getTokenEndpoint())
117  .authentication()
118  .client()
119  .response()
120  .json(AccessTokenResponse.class)
121  .execute();
122  }
final ServerConfiguration serverConfiguration
Definition: TokenCallable.java:38
final Http http
Definition: TokenCallable.java:36
String getTokenEndpoint()
Definition: ServerConfiguration.java:117

◆ obtainAccessToken() [2/2]

AccessTokenResponse org.keycloak.authorization.client.util.TokenCallable.obtainAccessToken ( String  userName,
String  password 
)
inlinepackage

Obtains an access token using the resource owner credentials.

戻り値
an AccessTokenResponse
129  {
130  return this.http.<AccessTokenResponse>post(this.serverConfiguration.getTokenEndpoint())
131  .authentication()
132  .oauth2ResourceOwnerPassword(userName, password)
133  .response()
134  .json(AccessTokenResponse.class)
135  .execute();
136  }
final String password
Definition: TokenCallable.java:35
final ServerConfiguration serverConfiguration
Definition: TokenCallable.java:38
final String userName
Definition: TokenCallable.java:34
final Http http
Definition: TokenCallable.java:36
String getTokenEndpoint()
Definition: ServerConfiguration.java:117

メンバ詳解

◆ clientToken

AccessTokenResponse org.keycloak.authorization.client.util.TokenCallable.clientToken
private

◆ configuration

final Configuration org.keycloak.authorization.client.util.TokenCallable.configuration
private

◆ http

final Http org.keycloak.authorization.client.util.TokenCallable.http
private

◆ log

Logger org.keycloak.authorization.client.util.TokenCallable.log = Logger.getLogger(TokenCallable.class)
staticprivate

◆ password

final String org.keycloak.authorization.client.util.TokenCallable.password
private

◆ serverConfiguration

final ServerConfiguration org.keycloak.authorization.client.util.TokenCallable.serverConfiguration
private

◆ userName

final String org.keycloak.authorization.client.util.TokenCallable.userName
private

このクラス詳解は次のファイルから抽出されました: