gluu
公開メンバ関数 | 非公開メンバ関数 | 非公開変数類 | 全メンバ一覧
org.xdi.oxauth.uma.service.UmaTokenService クラス
org.xdi.oxauth.uma.service.UmaTokenService 連携図
Collaboration graph

公開メンバ関数

Response requestRpt (String grantType, String ticket, String claimToken, String claimTokenFormat, String pctCode, String rptCode, String scope, HttpServletRequest httpRequest)
 

非公開メンバ関数

void addPctToPermissions (List< UmaPermission > permissions, UmaPCT pct)
 
void updatePermissionsWithClientRequestedScope (List< UmaPermission > permissions, Map< UmaScopeDescription, Boolean > scopes)
 

非公開変数類

Logger log
 
Identity identity
 
ErrorResponseFactory errorResponseFactory
 
UmaRptService rptService
 
UmaPctService pctService
 
UmaPermissionService permissionService
 
UmaValidationService umaValidationService
 
ClientService clientService
 
TokenService tokenService
 
AppConfiguration appConfiguration
 
WebKeysConfiguration webKeysConfiguration
 
UmaNeedsInfoService umaNeedsInfoService
 
ExternalUmaRptPolicyService policyService
 
UmaExpressionService expressionService
 

詳解

UMA Token Service

関数詳解

◆ addPctToPermissions()

void org.xdi.oxauth.uma.service.UmaTokenService.addPctToPermissions ( List< UmaPermission permissions,
UmaPCT  pct 
)
inlineprivate
155  {
156  for (UmaPermission p : permissions) {
157  p.getAttributes().put(UmaPermission.PCT, pct.getCode());
159  }
160  }
UmaPermissionService permissionService
Definition: UmaTokenService.java:62
void mergeSilently(UmaPermission permission)
Definition: UmaPermissionService.java:128

◆ requestRpt()

Response org.xdi.oxauth.uma.service.UmaTokenService.requestRpt ( String  grantType,
String  ticket,
String  claimToken,
String  claimTokenFormat,
String  pctCode,
String  rptCode,
String  scope,
HttpServletRequest  httpRequest 
)
inline
88  {
89  try {
90  log.trace("requestRpt grant_type: {}, ticket: {}, claim_token: {}, claim_token_format: {}, pct: {}, rpt: {}, scope: {}"
91  , grantType, ticket, claimToken, claimTokenFormat, pctCode, rptCode, scope);
92 
94  List<UmaPermission> permissions = umaValidationService.validateTicket(ticket);
95  Jwt idToken = umaValidationService.validateClaimToken(claimToken, claimTokenFormat);
96  UmaPCT pct = umaValidationService.validatePct(pctCode);
97  UmaRPT rpt = umaValidationService.validateRPT(rptCode);
98  Map<UmaScopeDescription, Boolean> scopes = umaValidationService.validateScopes(scope, permissions);
99  Client client = identity.getSessionClient().getClient();
100 
101  if (client != null && client.isDisabled()) {
102  throw new UmaWebException(Response.Status.FORBIDDEN, errorResponseFactory, UmaErrorResponseType.DISABLED_CLIENT);
103  }
104 
105  pct = pctService.updateClaims(pct, idToken, client.getClientId(), permissions); // creates new pct if pct is null in request
106  Claims claims = new Claims(idToken, pct, claimToken);
107 
108  Map<UmaScriptByScope, UmaAuthorizationContext> scriptMap = umaNeedsInfoService.checkNeedsInfo(claims, scopes, permissions, pct, httpRequest, client);
109 
110  if (!scriptMap.isEmpty()) {
111  expressionService.evaluate(scriptMap, permissions);
112  } else {
113  log.warn("There are no any policies that protects scopes. Scopes: " + UmaScopeService.asString(scopes.keySet()) + ". Configuration property umaGrantAccessIfNoPolicies: " + appConfiguration.getUmaGrantAccessIfNoPolicies());
114 
116  log.warn("Access granted because there are no any protection. Make sure it is intentional behavior.");
117  } else {
118  log.warn("Access denied because there are no any protection. Make sure it is intentional behavior.");
119  throw new UmaWebException(Response.Status.FORBIDDEN, errorResponseFactory, UmaErrorResponseType.FORBIDDEN_BY_POLICY);
120  }
121  }
122 
123  log.trace("Access granted.");
124 
125  final boolean upgraded;
126  if (rpt == null) {
127  rpt = rptService.createRPTAndPersist(client.getClientId());
128  upgraded = false;
129  } else {
130  upgraded = true;
131  }
132 
133  updatePermissionsWithClientRequestedScope(permissions, scopes);
134  addPctToPermissions(permissions, pct);
135  rptService.addPermissionToRPT(rpt, permissions);
136 
137  UmaTokenResponse response = new UmaTokenResponse();
138  response.setAccessToken(rpt.getCode());
139  response.setUpgraded(upgraded);
140  response.setTokenType("Bearer");
141  response.setPct(pct.getCode());
142 
143  return Response.ok(ServerUtil.asJson(response)).build();
144  } catch (Exception ex) {
145  log.error("Exception happened", ex);
146  if (ex instanceof WebApplicationException) {
147  throw (WebApplicationException) ex;
148  }
149  }
150 
151  log.error("Failed to handle request to UMA Token Endpoint.");
152  throw new UmaWebException(Response.Status.INTERNAL_SERVER_ERROR, errorResponseFactory, UmaErrorResponseType.SERVER_ERROR);
153  }
Identity identity
Definition: UmaTokenService.java:54
Map< UmaScopeDescription, Boolean > validateScopes(String scope, List< UmaPermission > permissions)
Definition: UmaValidationService.java:373
List< UmaPermission > validateTicket(String ticket)
Definition: UmaValidationService.java:237
SessionClient getSessionClient()
Definition: Identity.java:50
Boolean getUmaGrantAccessIfNoPolicies()
Definition: AppConfiguration.java:253
void addPermissionToRPT(UmaRPT rpt, Collection< UmaPermission > permissions)
Definition: UmaRptService.java:149
UmaPCT updateClaims(UmaPCT pct, Jwt idToken, String clientId, List< UmaPermission > permissions)
Definition: UmaPctService.java:49
UmaRptService rptService
Definition: UmaTokenService.java:58
UmaRPT validateRPT(String rptCode)
Definition: UmaValidationService.java:155
UmaRPT createRPTAndPersist(String clientId)
Definition: UmaRptService.java:216
UmaPCT validatePct(String pctCode)
Definition: UmaValidationService.java:347
void evaluate(Map< UmaScriptByScope, UmaAuthorizationContext > scriptMap, List< UmaPermission > permissions)
Definition: UmaExpressionService.java:52
Jwt validateClaimToken(String claimToken, String claimTokenFormat)
Definition: UmaValidationService.java:265
AppConfiguration appConfiguration
Definition: UmaTokenService.java:70
Map< UmaScriptByScope, UmaAuthorizationContext > checkNeedsInfo(Claims claims, Map< UmaScopeDescription, Boolean > requestedScopes, List< UmaPermission > permissions, UmaPCT pct, HttpServletRequest httpRequest, Client client)
Definition: UmaNeedsInfoService.java:62
ErrorResponseFactory errorResponseFactory
Definition: UmaTokenService.java:56
void addPctToPermissions(List< UmaPermission > permissions, UmaPCT pct)
Definition: UmaTokenService.java:155
UmaNeedsInfoService umaNeedsInfoService
Definition: UmaTokenService.java:74
Client getClient()
Definition: SessionClient.java:26
UmaExpressionService expressionService
Definition: UmaTokenService.java:78
UmaValidationService umaValidationService
Definition: UmaTokenService.java:64
UmaPctService pctService
Definition: UmaTokenService.java:60
void validateGrantType(String grantType)
Definition: UmaValidationService.java:229
Logger log
Definition: UmaTokenService.java:52
void updatePermissionsWithClientRequestedScope(List< UmaPermission > permissions, Map< UmaScopeDescription, Boolean > scopes)
Definition: UmaTokenService.java:162

◆ updatePermissionsWithClientRequestedScope()

void org.xdi.oxauth.uma.service.UmaTokenService.updatePermissionsWithClientRequestedScope ( List< UmaPermission permissions,
Map< UmaScopeDescription, Boolean >  scopes 
)
inlineprivate
162  {
163  log.trace("Updating permissions with requested scopes ...");
164  for (UmaPermission permission : permissions) {
165  Set<String> scopeDns = new HashSet<String>(permission.getScopeDns());
166 
167  for (Map.Entry<UmaScopeDescription, Boolean> entry : scopes.entrySet()) {
168  log.trace("Updating permissions with scope: " + entry.getKey().getId() + ", isRequestedScope: " + entry.getValue() + ", permisson: " + permission.getDn());
169  scopeDns.add(entry.getKey().getDn());
170  }
171 
172  permission.setScopeDns(new ArrayList<String>(scopeDns));
173  }
174  }
Logger log
Definition: UmaTokenService.java:52

メンバ詳解

◆ appConfiguration

AppConfiguration org.xdi.oxauth.uma.service.UmaTokenService.appConfiguration
private

◆ clientService

ClientService org.xdi.oxauth.uma.service.UmaTokenService.clientService
private

◆ errorResponseFactory

ErrorResponseFactory org.xdi.oxauth.uma.service.UmaTokenService.errorResponseFactory
private

◆ expressionService

UmaExpressionService org.xdi.oxauth.uma.service.UmaTokenService.expressionService
private

◆ identity

Identity org.xdi.oxauth.uma.service.UmaTokenService.identity
private

◆ log

Logger org.xdi.oxauth.uma.service.UmaTokenService.log
private

◆ pctService

UmaPctService org.xdi.oxauth.uma.service.UmaTokenService.pctService
private

◆ permissionService

UmaPermissionService org.xdi.oxauth.uma.service.UmaTokenService.permissionService
private

◆ policyService

ExternalUmaRptPolicyService org.xdi.oxauth.uma.service.UmaTokenService.policyService
private

◆ rptService

UmaRptService org.xdi.oxauth.uma.service.UmaTokenService.rptService
private

◆ tokenService

TokenService org.xdi.oxauth.uma.service.UmaTokenService.tokenService
private

◆ umaNeedsInfoService

UmaNeedsInfoService org.xdi.oxauth.uma.service.UmaTokenService.umaNeedsInfoService
private

◆ umaValidationService

UmaValidationService org.xdi.oxauth.uma.service.UmaTokenService.umaValidationService
private

◆ webKeysConfiguration

WebKeysConfiguration org.xdi.oxauth.uma.service.UmaTokenService.webKeysConfiguration
private

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