gluu
公開メンバ関数 | 非公開変数類 | 全メンバ一覧
org.xdi.oxauth.model.common.AuthorizationGrantList クラス
org.xdi.oxauth.model.common.AuthorizationGrantList の継承関係図
Inheritance graph
org.xdi.oxauth.model.common.AuthorizationGrantList 連携図
Collaboration graph

公開メンバ関数

void removeAuthorizationGrants (List< AuthorizationGrant > authorizationGrants)
 
AuthorizationGrant createAuthorizationGrant (User user, Client client, Date authenticationTime)
 
AuthorizationCodeGrant createAuthorizationCodeGrant (User user, Client client, Date authenticationTime)
 
ImplicitGrant createImplicitGrant (User user, Client client, Date authenticationTime)
 
ClientCredentialsGrant createClientCredentialsGrant (User user, Client client)
 
ResourceOwnerPasswordCredentialsGrant createResourceOwnerPasswordCredentialsGrant (User user, Client client)
 
AuthorizationCodeGrant getAuthorizationCodeGrant (String clientId, String authorizationCode)
 
AuthorizationGrant getAuthorizationGrantByRefreshToken (String clientId, String refreshTokenCode)
 
AuthorizationGrant assertTokenType (TokenLdap tokenLdap, TokenType tokenType)
 
List< AuthorizationGrantgetAuthorizationGrant (String clientId)
 
AuthorizationGrant getAuthorizationGrantByAccessToken (String accessToken)
 
AuthorizationGrant getAuthorizationGrantByAccessToken (String accessToken, boolean onlyFromCache)
 
AuthorizationGrant getAuthorizationGrantByIdToken (String idToken)
 
AuthorizationGrant load (String clientId, String p_code)
 
String extractClientIdFromTokenDn (String p_dn)
 
AuthorizationGrant asGrant (TokenLdap tokenLdap)
 

非公開変数類

Logger log
 
Instance< AbstractAuthorizationGrantgrantInstance
 
GrantService grantService
 
UserService userService
 
ClientService clientService
 
AppConfiguration appConfiguration
 
CacheService cacheService
 
final Pattern clientInumPattern = Pattern.compile(".+inum=([\\w\\!\\@\\.]+).+")
 

詳解

Component to hold in memory authorization grant objects.

著者
Javier Rojas Blum
バージョン
September 6, 2017

関数詳解

◆ asGrant()

AuthorizationGrant org.xdi.oxauth.model.common.AuthorizationGrantList.asGrant ( TokenLdap  tokenLdap)
inline
200  {
201  if (tokenLdap != null) {
202  final AuthorizationGrantType grantType = AuthorizationGrantType.fromString(tokenLdap.getGrantType());
203  if (grantType != null) {
204  final User user = userService.getUser(tokenLdap.getUserId());
205  final Client client = clientService.getClient(extractClientIdFromTokenDn(tokenLdap.getDn()));
206  final Date authenticationTime = tokenLdap.getAuthenticationTime();
207  final String nonce = tokenLdap.getNonce();
208 
209  AuthorizationGrant result;
210  switch (grantType) {
211  case AUTHORIZATION_CODE:
212  AuthorizationCodeGrant authorizationCodeGrant = grantInstance.select(AuthorizationCodeGrant.class).get();
213  authorizationCodeGrant.init(user, client, authenticationTime);
214 
215  result = authorizationCodeGrant;
216  break;
217  case CLIENT_CREDENTIALS:
218  ClientCredentialsGrant clientCredentialsGrant = grantInstance.select(ClientCredentialsGrant.class).get();
219  clientCredentialsGrant.init(user, client);
220 
221  result = clientCredentialsGrant;
222  break;
223  case IMPLICIT:
224  ImplicitGrant implicitGrant = grantInstance.select(ImplicitGrant.class).get();
225  implicitGrant.init(user, client, authenticationTime);
226 
227  result = implicitGrant;
228  break;
229  case RESOURCE_OWNER_PASSWORD_CREDENTIALS:
230  ResourceOwnerPasswordCredentialsGrant resourceOwnerPasswordCredentialsGrant = grantInstance.select(ResourceOwnerPasswordCredentialsGrant.class).get();
231  resourceOwnerPasswordCredentialsGrant.init(user, client);
232 
233  result = resourceOwnerPasswordCredentialsGrant;
234  break;
235  default:
236  return null;
237  }
238 
239  final String grantId = tokenLdap.getGrantId();
240  final String jwtRequest = tokenLdap.getJwtRequest();
241  final String authMode = tokenLdap.getAuthMode();
242  final String sessionDn = tokenLdap.getSessionDn();
243  final String claims = tokenLdap.getClaims();
244 
245  result.setTokenBindingHash(tokenLdap.getTokenBindingHash());
246  result.setNonce(nonce);
247  result.setTokenLdap(tokenLdap);
248  if (StringUtils.isNotBlank(grantId)) {
249  result.setGrantId(grantId);
250  }
251  result.setScopes(Util.splittedStringAsList(tokenLdap.getScope(), " "));
252 
253  result.setCodeChallenge(tokenLdap.getCodeChallenge());
254  result.setCodeChallengeMethod(tokenLdap.getCodeChallengeMethod());
255 
256  if (StringUtils.isNotBlank(jwtRequest)) {
257  try {
258  result.setJwtAuthorizationRequest(new JwtAuthorizationRequest(appConfiguration, jwtRequest, client));
259  } catch (Exception e) {
260  log.trace(e.getMessage(), e);
261  }
262  }
263 
264  result.setAcrValues(authMode);
265  result.setSessionDn(sessionDn);
266  result.setClaims(claims);
267 
268  if (tokenLdap.getTokenTypeEnum() != null) {
269  switch (tokenLdap.getTokenTypeEnum()) {
270  case AUTHORIZATION_CODE:
271  if (result instanceof AuthorizationCodeGrant) {
272  final AuthorizationCode code = new AuthorizationCode(tokenLdap.getTokenCode(), tokenLdap.getCreationDate(), tokenLdap.getExpirationDate());
273  final AuthorizationCodeGrant g = (AuthorizationCodeGrant) result;
274  g.setAuthorizationCode(code);
275  }
276  break;
277  case REFRESH_TOKEN:
278  final RefreshToken refreshToken = new RefreshToken(tokenLdap.getTokenCode(), tokenLdap.getCreationDate(), tokenLdap.getExpirationDate());
279  result.setRefreshTokens(Arrays.asList(refreshToken));
280  break;
281  case ACCESS_TOKEN:
282  final AccessToken accessToken = new AccessToken(tokenLdap.getTokenCode(), tokenLdap.getCreationDate(), tokenLdap.getExpirationDate());
283  result.setAccessTokens(Arrays.asList(accessToken));
284  break;
285  case ID_TOKEN:
286  final IdToken idToken = new IdToken(tokenLdap.getTokenCode(), tokenLdap.getCreationDate(), tokenLdap.getExpirationDate());
287  result.setIdToken(idToken);
288  break;
289  case LONG_LIVED_ACCESS_TOKEN:
290  final AccessToken longLivedAccessToken = new AccessToken(tokenLdap.getTokenCode(), tokenLdap.getCreationDate(), tokenLdap.getExpirationDate());
291  result.setLongLivedAccessToken(longLivedAccessToken);
292  break;
293  }
294  }
295  return result;
296  }
297  }
298  return null;
299  }
UserService userService
Definition: AuthorizationGrantList.java:54
User getUser(String userId, String... returnAttributes)
Definition: UserService.java:87
Logger log
Definition: AuthorizationGrantList.java:45
AppConfiguration appConfiguration
Definition: AuthorizationGrantList.java:60
Instance< AbstractAuthorizationGrant > grantInstance
Definition: AuthorizationGrantList.java:48
Set< Client > getClient(Collection< String > clientIds, boolean silent)
Definition: ClientService.java:123
ClientService clientService
Definition: AuthorizationGrantList.java:57
String extractClientIdFromTokenDn(String p_dn)
Definition: AuthorizationGrantList.java:191

◆ assertTokenType()

AuthorizationGrant org.xdi.oxauth.model.common.AuthorizationGrantList.assertTokenType ( TokenLdap  tokenLdap,
TokenType  tokenType 
)
inline
138  {
139  if (tokenLdap != null && tokenLdap.getTokenTypeEnum() == tokenType) {
140  return asGrant(tokenLdap);
141  }
142  return null;
143  }
AuthorizationGrant asGrant(TokenLdap tokenLdap)
Definition: AuthorizationGrantList.java:200

◆ createAuthorizationCodeGrant()

AuthorizationCodeGrant org.xdi.oxauth.model.common.AuthorizationGrantList.createAuthorizationCodeGrant ( User  user,
Client  client,
Date  authenticationTime 
)
inline

org.xdi.oxauth.model.common.IAuthorizationGrantListを実装しています。

85  {
86  AuthorizationCodeGrant grant = grantInstance.select(AuthorizationCodeGrant.class).get();
87  grant.init(user, client, authenticationTime);
88 
89  CacheGrant memcachedGrant = new CacheGrant(grant, appConfiguration);
90  cacheService.put(Integer.toString(grant.getAuthorizationCode().getExpiresIn()), memcachedGrant.cacheKey(), memcachedGrant);
91  log.trace("Put authorization grant in cache, code: " + grant.getAuthorizationCode().getCode() + ", clientId: " + grant.getClientId());
92  return grant;
93  }
Logger log
Definition: AuthorizationGrantList.java:45
AppConfiguration appConfiguration
Definition: AuthorizationGrantList.java:60
Instance< AbstractAuthorizationGrant > grantInstance
Definition: AuthorizationGrantList.java:48
CacheService cacheService
Definition: AuthorizationGrantList.java:63

◆ createAuthorizationGrant()

AuthorizationGrant org.xdi.oxauth.model.common.AuthorizationGrantList.createAuthorizationGrant ( User  user,
Client  client,
Date  authenticationTime 
)
inline

org.xdi.oxauth.model.common.IAuthorizationGrantListを実装しています。

77  {
78  AuthorizationGrant grant = grantInstance.select(SimpleAuthorizationGrant.class).get();
79  grant.init(user, null, client, authenticationTime);
80 
81  return grant;
82  }
Instance< AbstractAuthorizationGrant > grantInstance
Definition: AuthorizationGrantList.java:48

◆ createClientCredentialsGrant()

ClientCredentialsGrant org.xdi.oxauth.model.common.AuthorizationGrantList.createClientCredentialsGrant ( User  user,
Client  client 
)
inline

org.xdi.oxauth.model.common.IAuthorizationGrantListを実装しています。

104  {
105  ClientCredentialsGrant grant = grantInstance.select(ClientCredentialsGrant.class).get();
106  grant.init(user, client);
107 
108  return grant;
109  }
Instance< AbstractAuthorizationGrant > grantInstance
Definition: AuthorizationGrantList.java:48

◆ createImplicitGrant()

ImplicitGrant org.xdi.oxauth.model.common.AuthorizationGrantList.createImplicitGrant ( User  user,
Client  client,
Date  authenticationTime 
)
inline

org.xdi.oxauth.model.common.IAuthorizationGrantListを実装しています。

96  {
97  ImplicitGrant grant = grantInstance.select(ImplicitGrant.class).get();
98  grant.init(user, client, authenticationTime);
99 
100  return grant;
101  }
Instance< AbstractAuthorizationGrant > grantInstance
Definition: AuthorizationGrantList.java:48

◆ createResourceOwnerPasswordCredentialsGrant()

ResourceOwnerPasswordCredentialsGrant org.xdi.oxauth.model.common.AuthorizationGrantList.createResourceOwnerPasswordCredentialsGrant ( User  user,
Client  client 
)
inline

org.xdi.oxauth.model.common.IAuthorizationGrantListを実装しています。

112  {
113  ResourceOwnerPasswordCredentialsGrant grant = grantInstance.select(ResourceOwnerPasswordCredentialsGrant.class).get();
114  grant.init(user, client);
115 
116  return grant;
117  }
Instance< AbstractAuthorizationGrant > grantInstance
Definition: AuthorizationGrantList.java:48

◆ extractClientIdFromTokenDn()

String org.xdi.oxauth.model.common.AuthorizationGrantList.extractClientIdFromTokenDn ( String  p_dn)
inline
191  {
192  Matcher m = clientInumPattern.matcher(p_dn);
193  if (m.matches()) {
194  return m.group(1);
195  }
196 
197  return "";
198  }
final Pattern clientInumPattern
Definition: AuthorizationGrantList.java:65

◆ getAuthorizationCodeGrant()

AuthorizationCodeGrant org.xdi.oxauth.model.common.AuthorizationGrantList.getAuthorizationCodeGrant ( String  clientId,
String  authorizationCode 
)
inline

org.xdi.oxauth.model.common.IAuthorizationGrantListを実装しています。

120  {
121  Object cachedGrant = cacheService.get(null, CacheGrant.cacheKey(clientId, authorizationCode, null));
122  if (cachedGrant == null) {
123  // retry one time : sometimes during high load cache client may be not fast enough
124  cachedGrant = cacheService.get(null, CacheGrant.cacheKey(clientId, authorizationCode, null));
125  log.trace("Failed to fetch authorization grant from cache, code: " + authorizationCode + ", clientId: " + clientId);
126  }
127  return cachedGrant instanceof CacheGrant ? ((CacheGrant) cachedGrant).asCodeGrant(grantInstance) : null;
128  }
Logger log
Definition: AuthorizationGrantList.java:45
Instance< AbstractAuthorizationGrant > grantInstance
Definition: AuthorizationGrantList.java:48
CacheService cacheService
Definition: AuthorizationGrantList.java:63

◆ getAuthorizationGrant()

List<AuthorizationGrant> org.xdi.oxauth.model.common.AuthorizationGrantList.getAuthorizationGrant ( String  clientId)
inline

org.xdi.oxauth.model.common.IAuthorizationGrantListを実装しています。

146  {
147  final List<AuthorizationGrant> result = new ArrayList<AuthorizationGrant>();
148  try {
149  final List<TokenLdap> entries = new ArrayList<TokenLdap>();
150  entries.addAll(grantService.getGrantsOfClient(clientId));
151  entries.addAll(grantService.getCacheClientTokensEntries(clientId));
152 
153  for (TokenLdap t : entries) {
154  final AuthorizationGrant grant = asGrant(t);
155  if (grant != null) {
156  result.add(grant);
157  }
158  }
159  } catch (Exception e) {
160  log.trace(e.getMessage(), e);
161  }
162  return result;
163  }
List< TokenLdap > getGrantsOfClient(String p_clientId)
Definition: GrantService.java:249
List< TokenLdap > getCacheClientTokensEntries(String clientId)
Definition: GrantService.java:331
GrantService grantService
Definition: AuthorizationGrantList.java:51
Logger log
Definition: AuthorizationGrantList.java:45
AuthorizationGrant asGrant(TokenLdap tokenLdap)
Definition: AuthorizationGrantList.java:200

◆ getAuthorizationGrantByAccessToken() [1/2]

AuthorizationGrant org.xdi.oxauth.model.common.AuthorizationGrantList.getAuthorizationGrantByAccessToken ( String  accessToken)
inline

org.xdi.oxauth.model.common.IAuthorizationGrantListを実装しています。

166  {
167  return getAuthorizationGrantByAccessToken(accessToken, false);
168  }
AuthorizationGrant getAuthorizationGrantByAccessToken(String accessToken)
Definition: AuthorizationGrantList.java:166

◆ getAuthorizationGrantByAccessToken() [2/2]

AuthorizationGrant org.xdi.oxauth.model.common.AuthorizationGrantList.getAuthorizationGrantByAccessToken ( String  accessToken,
boolean  onlyFromCache 
)
inline
170  {
171  final TokenLdap tokenLdap = grantService.getGrantsByCode(accessToken, onlyFromCache);
172  if (tokenLdap != null && (tokenLdap.getTokenTypeEnum() == org.xdi.oxauth.model.ldap.TokenType.ACCESS_TOKEN || tokenLdap.getTokenTypeEnum() == org.xdi.oxauth.model.ldap.TokenType.LONG_LIVED_ACCESS_TOKEN)) {
173  return asGrant(tokenLdap);
174  }
175  return null;
176  }
LONG_LIVED_ACCESS_TOKEN
Definition: TokenType.java:18
GrantService grantService
Definition: AuthorizationGrantList.java:51
ACCESS_TOKEN
Definition: TokenType.java:17
Definition: ClientAuthorizations.java:1
Definition: TokenType.java:15
TokenLdap getGrantsByCode(String p_code)
Definition: GrantService.java:263
AuthorizationGrant asGrant(TokenLdap tokenLdap)
Definition: AuthorizationGrantList.java:200

◆ getAuthorizationGrantByIdToken()

AuthorizationGrant org.xdi.oxauth.model.common.AuthorizationGrantList.getAuthorizationGrantByIdToken ( String  idToken)
inline

org.xdi.oxauth.model.common.IAuthorizationGrantListを実装しています。

179  {
180  final TokenLdap tokenLdap = grantService.getGrantsByCode(idToken);
181  if (tokenLdap != null && (tokenLdap.getTokenTypeEnum() == org.xdi.oxauth.model.ldap.TokenType.ID_TOKEN)) {
182  return asGrant(tokenLdap);
183  }
184  return null;
185  }
GrantService grantService
Definition: AuthorizationGrantList.java:51
Definition: ClientAuthorizations.java:1
ID_TOKEN
Definition: TokenType.java:16
Definition: TokenType.java:15
TokenLdap getGrantsByCode(String p_code)
Definition: GrantService.java:263
AuthorizationGrant asGrant(TokenLdap tokenLdap)
Definition: AuthorizationGrantList.java:200

◆ getAuthorizationGrantByRefreshToken()

AuthorizationGrant org.xdi.oxauth.model.common.AuthorizationGrantList.getAuthorizationGrantByRefreshToken ( String  clientId,
String  refreshTokenCode 
)
inline

org.xdi.oxauth.model.common.IAuthorizationGrantListを実装しています。

131  {
132  if (!ServerUtil.isTrue(appConfiguration.getPersistRefreshTokenInLdap())) {
133  return assertTokenType((TokenLdap) cacheService.get(null, TokenHashUtil.getHashedToken(refreshTokenCode)), TokenType.REFRESH_TOKEN);
134  }
135  return assertTokenType(grantService.getGrantsByCodeAndClient(refreshTokenCode, clientId), TokenType.REFRESH_TOKEN);
136  }
TokenLdap getGrantsByCodeAndClient(String p_code, String p_clientId)
Definition: GrantService.java:259
GrantService grantService
Definition: AuthorizationGrantList.java:51
AppConfiguration appConfiguration
Definition: AuthorizationGrantList.java:60
Boolean getPersistRefreshTokenInLdap()
Definition: AppConfiguration.java:944
AuthorizationGrant assertTokenType(TokenLdap tokenLdap, TokenType tokenType)
Definition: AuthorizationGrantList.java:138
CacheService cacheService
Definition: AuthorizationGrantList.java:63

◆ load()

AuthorizationGrant org.xdi.oxauth.model.common.AuthorizationGrantList.load ( String  clientId,
String  p_code 
)
inline
187  {
188  return asGrant(grantService.getGrantsByCodeAndClient(p_code, clientId));
189  }
TokenLdap getGrantsByCodeAndClient(String p_code, String p_clientId)
Definition: GrantService.java:259
GrantService grantService
Definition: AuthorizationGrantList.java:51
AuthorizationGrant asGrant(TokenLdap tokenLdap)
Definition: AuthorizationGrantList.java:200

◆ removeAuthorizationGrants()

void org.xdi.oxauth.model.common.AuthorizationGrantList.removeAuthorizationGrants ( List< AuthorizationGrant authorizationGrants)
inline

org.xdi.oxauth.model.common.IAuthorizationGrantListを実装しています。

68  {
69  if (authorizationGrants != null && !authorizationGrants.isEmpty()) {
70  for (AuthorizationGrant r : authorizationGrants) {
72  }
73  }
74  }
void remove(Grant grant)
Definition: GrantService.java:180
GrantService grantService
Definition: AuthorizationGrantList.java:51

メンバ詳解

◆ appConfiguration

AppConfiguration org.xdi.oxauth.model.common.AuthorizationGrantList.appConfiguration
private

◆ cacheService

CacheService org.xdi.oxauth.model.common.AuthorizationGrantList.cacheService
private

◆ clientInumPattern

final Pattern org.xdi.oxauth.model.common.AuthorizationGrantList.clientInumPattern = Pattern.compile(".+inum=([\\w\\!\\@\\.]+).+")
private

◆ clientService

ClientService org.xdi.oxauth.model.common.AuthorizationGrantList.clientService
private

◆ grantInstance

Instance<AbstractAuthorizationGrant> org.xdi.oxauth.model.common.AuthorizationGrantList.grantInstance
private

◆ grantService

GrantService org.xdi.oxauth.model.common.AuthorizationGrantList.grantService
private

◆ log

Logger org.xdi.oxauth.model.common.AuthorizationGrantList.log
private

◆ userService

UserService org.xdi.oxauth.model.common.AuthorizationGrantList.userService
private

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