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

公開メンバ関数

Response introspectGet (@HeaderParam("Authorization") String authorization, @QueryParam("token") String token, @QueryParam("token_type_hint") String tokenTypeHint)
 
Response introspectPost (@HeaderParam("Authorization") String authorization, @FormParam("token") String token, @FormParam("token_type_hint") String tokenTypeHint)
 
Response requestRptStatusGet (@HeaderParam("Authorization") String authorization, @FormParam("token") String rpt, @FormParam("token_type_hint") String tokenTypeHint)
 

非公開メンバ関数

Response introspect (String authorization, String token, String tokenTypeHint)
 
boolean isValid (UmaRPT p_rpt)
 
boolean isValid (UmaPermission permission)
 
List< org.xdi.oxauth.model.uma.UmaPermissionbuildStatusResponsePermissions (UmaRPT rpt)
 

非公開変数類

Logger log
 
ErrorResponseFactory errorResponseFactory
 
UmaRptService rptService
 
UmaValidationService umaValidationService
 
UmaScopeService umaScopeService
 
UmaPctService pctService
 

詳解

The endpoint at which the host requests the status of an RPT presented to it by a requester. The endpoint is RPT introspection profile implementation defined by http://docs.kantarainitiative.org/uma/draft-uma-core.html#uma-bearer-token-profile

著者
Yuriy Zabrovarnyy

関数詳解

◆ buildStatusResponsePermissions()

List<org.xdi.oxauth.model.uma.UmaPermission> org.xdi.oxauth.uma.ws.rs.UmaRptIntrospectionWS.buildStatusResponsePermissions ( UmaRPT  rpt)
inlineprivate
159  {
160  final List<org.xdi.oxauth.model.uma.UmaPermission> result = new ArrayList<org.xdi.oxauth.model.uma.UmaPermission>();
161  if (rpt != null) {
162  final List<UmaPermission> rptPermissions = rptService.getRptPermissions(rpt);
163  if (rptPermissions != null && !rptPermissions.isEmpty()) {
164  for (UmaPermission permission : rptPermissions) {
165  if (isValid(permission)) {
166  final org.xdi.oxauth.model.uma.UmaPermission toAdd = ServerUtil.convert(permission, umaScopeService);
167  if (toAdd != null) {
168  result.add(toAdd);
169  }
170  } else {
171  log.debug("Ignore permission, skip it in response because permission is not valid. Permission dn: {}, rpt dn: {}",
172  permission.getDn(), rpt.getDn());
173  }
174  }
175  }
176  }
177  return result;
178  }
List< UmaPermission > getRptPermissions(UmaRPT p_rpt)
Definition: UmaRptService.java:177
Logger log
Definition: UmaRptIntrospectionWS.java:58
Definition: ClaimTokenFormatType.java:1
UmaRptService rptService
Definition: UmaRptIntrospectionWS.java:62
Definition: UmaPermission.java:37
boolean isValid(UmaRPT p_rpt)
Definition: UmaRptIntrospectionWS.java:143
UmaScopeService umaScopeService
Definition: UmaRptIntrospectionWS.java:66

◆ introspect()

Response org.xdi.oxauth.uma.ws.rs.UmaRptIntrospectionWS.introspect ( String  authorization,
String  token,
String  tokenTypeHint 
)
inlineprivate
86  {
87  try {
89 
90  final UmaRPT rpt = rptService.getRPTByCode(token);
91 
92  if (!isValid(rpt)) {
93  return Response.status(Response.Status.OK).
94  entity(new RptIntrospectionResponse(false)).
95  cacheControl(ServerUtil.cacheControl(true)).
96  build();
97  }
98 
99  final List<org.xdi.oxauth.model.uma.UmaPermission> permissions = buildStatusResponsePermissions(rpt);
100 
101  // active status
102  final RptIntrospectionResponse statusResponse = new RptIntrospectionResponse();
103  statusResponse.setActive(true);
104  statusResponse.setExpiresAt(ServerUtil.dateToSeconds(rpt.getExpirationDate()));
105  statusResponse.setIssuedAt(ServerUtil.dateToSeconds(rpt.getCreationDate()));
106  statusResponse.setPermissions(permissions);
107  statusResponse.setClientId(rpt.getClientId());
108  statusResponse.setAud(rpt.getClientId());
109  statusResponse.setSub(rpt.getUserId());
110 
111  final List<UmaPermission> rptPermissions = rptService.getRptPermissions(rpt);
112  if (!rptPermissions.isEmpty()) {
113  UmaPermission permission = rptPermissions.iterator().next();
114  String pctCode = permission.getAttributes().get(UmaPermission.PCT);
115  if (StringHelper.isNotEmpty(pctCode)) {
116  UmaPCT pct = pctService.getByCode(pctCode);
117  if (pct != null) {
118  statusResponse.setPctClaims(pct.getClaims().toMap());
119  } else {
120  log.error("Failed to find PCT with code: " + pctCode + " which is taken from permission object: " + permission.getDn());
121  }
122  } else {
123  log.trace("PCT code is blank for RPT: " + rpt.getCode());
124  }
125  }
126 
127 
128  // convert manually to avoid possible conflict between resteasy providers, e.g. jettison, jackson
129  final String entity = ServerUtil.asJson(statusResponse);
130 
131  return Response.status(Response.Status.OK).entity(entity).cacheControl(ServerUtil.cacheControl(true)).build();
132  } catch (Exception ex) {
133  log.error("Exception happened", ex);
134  if (ex instanceof WebApplicationException) {
135  throw (WebApplicationException) ex;
136  }
137 
138  throw new WebApplicationException(Response.status(Response.Status.INTERNAL_SERVER_ERROR)
139  .entity(errorResponseFactory.getUmaJsonErrorResponse(UmaErrorResponseType.SERVER_ERROR)).build());
140  }
141  }
ErrorResponseFactory errorResponseFactory
Definition: UmaRptIntrospectionWS.java:60
UmaRPT getRPTByCode(String rptCode)
Definition: UmaRptService.java:102
List< org.xdi.oxauth.model.uma.UmaPermission > buildStatusResponsePermissions(UmaRPT rpt)
Definition: UmaRptIntrospectionWS.java:159
List< UmaPermission > getRptPermissions(UmaRPT p_rpt)
Definition: UmaRptService.java:177
Logger log
Definition: UmaRptIntrospectionWS.java:58
Definition: ClaimTokenFormatType.java:1
String getUmaJsonErrorResponse(IErrorType type)
Definition: ErrorResponseFactory.java:181
UmaRptService rptService
Definition: UmaRptIntrospectionWS.java:62
Definition: UmaPermission.java:37
boolean isValid(UmaRPT p_rpt)
Definition: UmaRptIntrospectionWS.java:143
UmaPctService pctService
Definition: UmaRptIntrospectionWS.java:68
UmaValidationService umaValidationService
Definition: UmaRptIntrospectionWS.java:64
AuthorizationGrant assertHasProtectionScope(String authorization)
Definition: UmaValidationService.java:123
UmaPCT getByCode(String pctCode)
Definition: UmaPctService.java:91

◆ introspectGet()

Response org.xdi.oxauth.uma.ws.rs.UmaRptIntrospectionWS.introspectGet ( @HeaderParam("Authorization") String  authorization,
@QueryParam("token") String  token,
@QueryParam("token_type_hint") String  tokenTypeHint 
)
inline
74  {
75  return introspect(authorization, token, tokenTypeHint);
76  }
Response introspect(String authorization, String token, String tokenTypeHint)
Definition: UmaRptIntrospectionWS.java:86

◆ introspectPost()

Response org.xdi.oxauth.uma.ws.rs.UmaRptIntrospectionWS.introspectPost ( @HeaderParam("Authorization") String  authorization,
@FormParam("token") String  token,
@FormParam("token_type_hint") String  tokenTypeHint 
)
inline
82  {
83  return introspect(authorization, token, tokenTypeHint);
84  }
Response introspect(String authorization, String token, String tokenTypeHint)
Definition: UmaRptIntrospectionWS.java:86

◆ isValid() [1/2]

boolean org.xdi.oxauth.uma.ws.rs.UmaRptIntrospectionWS.isValid ( UmaRPT  p_rpt)
inlineprivate
143  {
144  if (p_rpt != null) {
145  p_rpt.checkExpired();
146  return p_rpt.isValid();
147  }
148  return false;
149  }

◆ isValid() [2/2]

boolean org.xdi.oxauth.uma.ws.rs.UmaRptIntrospectionWS.isValid ( UmaPermission  permission)
inlineprivate
151  {
152  if (permission != null) {
153  permission.checkExpired();
154  return permission.isValid();
155  }
156  return false;
157  }

◆ requestRptStatusGet()

Response org.xdi.oxauth.uma.ws.rs.UmaRptIntrospectionWS.requestRptStatusGet ( @HeaderParam("Authorization") String  authorization,
@FormParam("token") String  rpt,
@FormParam("token_type_hint") String  tokenTypeHint 
)
inline
189  {
190  throw new WebApplicationException(Response.status(405).entity("Introspection of RPT is not allowed by GET HTTP method.").build());
191  }

メンバ詳解

◆ errorResponseFactory

ErrorResponseFactory org.xdi.oxauth.uma.ws.rs.UmaRptIntrospectionWS.errorResponseFactory
private

◆ log

Logger org.xdi.oxauth.uma.ws.rs.UmaRptIntrospectionWS.log
private

◆ pctService

UmaPctService org.xdi.oxauth.uma.ws.rs.UmaRptIntrospectionWS.pctService
private

◆ rptService

UmaRptService org.xdi.oxauth.uma.ws.rs.UmaRptIntrospectionWS.rptService
private

◆ umaScopeService

UmaScopeService org.xdi.oxauth.uma.ws.rs.UmaRptIntrospectionWS.umaScopeService
private

◆ umaValidationService

UmaValidationService org.xdi.oxauth.uma.ws.rs.UmaRptIntrospectionWS.umaValidationService
private

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