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

公開メンバ関数

Response registerPermission (@Context HttpServletRequest request, @HeaderParam("Authorization") String authorization, @ApiParam(value="The identifier for a resource to which this client is seeking access. The identifier MUST correspond to a resource set that was previously registered.", required=true) String requestAsString)
 

非公開メンバ関数

UmaPermissionList parseRequest (String requestAsString)
 

非公開変数類

Logger log
 
TokenService tokenService
 
UmaPermissionService permissionService
 
UmaRptService rptService
 
ErrorResponseFactory errorResponseFactory
 
UmaValidationService umaValidationService
 
AppConfiguration appConfiguration
 

詳解

The endpoint at which the host registers permissions that it anticipates a requester will shortly be asking for from the AM. This AM's endpoint is part of resource set registration API.

In response to receiving an access request accompanied by an RPT that is invalid or has insufficient authorization data, the host SHOULD register a permission with the AM that would be sufficient for the type of access sought. The AM returns a permission ticket for the host to give to the requester in its response.

著者
Yuriy Zabrovarnyy

関数詳解

◆ parseRequest()

UmaPermissionList org.xdi.oxauth.uma.ws.rs.UmaPermissionRegistrationWS.parseRequest ( String  requestAsString)
inlineprivate

UMA2 spec (edit 4) defined to possible requests, single permission or list of permission. So here we parse manually

引数
requestAsStringrequest as string
戻り値
uma permission list
129  {
130  final ObjectMapper mapper = ServerUtil.createJsonMapper().configure(SerializationConfig.Feature.WRAP_ROOT_VALUE, false);
131  try {
132  org.xdi.oxauth.model.uma.UmaPermission permission = mapper.readValue(requestAsString, org.xdi.oxauth.model.uma.UmaPermission.class);
133  return new UmaPermissionList().addPermission(permission);
134  } catch (IOException e) {
135  // ignore
136  }
137 
138  try {
139  UmaPermissionList permissions = mapper.readValue(requestAsString, org.xdi.oxauth.model.uma.UmaPermissionList.class);
140  if (!permissions.isEmpty()) {
141  return permissions;
142  }
143  log.error("Permission list is empty.");
144  } catch (IOException e) {
145  log.error("Failed to parse uma permission request" + requestAsString, e);
146  }
147  return errorResponseFactory.throwUmaWebApplicationException(Response.Status.BAD_REQUEST, UmaErrorResponseType.INVALID_PERMISSION_REQUEST);
148  }
ErrorResponseFactory errorResponseFactory
Definition: UmaPermissionRegistrationWS.java:77
Logger log
Definition: UmaPermissionRegistrationWS.java:65
Definition: ClaimTokenFormatType.java:1
Definition: UmaPermission.java:37
public< T > T throwUmaWebApplicationException(Response.Status status, IErrorType type)
Definition: ErrorResponseFactory.java:117
Definition: UmaPermissionList.java:13

◆ registerPermission()

Response org.xdi.oxauth.uma.ws.rs.UmaPermissionRegistrationWS.registerPermission ( @Context HttpServletRequest  request,
@HeaderParam("Authorization") String  authorization,
@ApiParam(value="The identifier for a resource to which this client is seeking access. The identifier MUST correspond to a resource set that was previously registered.", required=true) String  requestAsString 
)
inline
99  {
100  try {
102 
103  // UMA2 spec defined 2 possible requests, single permission or list of permission. So here we parse manually
104  UmaPermissionList permissionList = parseRequest(requestAsString);
106 
107  String ticket = permissionService.addPermission(permissionList, tokenService.getClientDn(authorization));
108 
109  return Response.status(Response.Status.CREATED).
110  entity(new PermissionTicket(ticket)).
111  build();
112  } catch (Exception ex) {
113  if (ex instanceof WebApplicationException) {
114  throw (WebApplicationException) ex;
115  }
116 
117  log.error("Exception happened", ex);
118  throw new WebApplicationException(Response.status(Response.Status.INTERNAL_SERVER_ERROR)
119  .entity(errorResponseFactory.getUmaJsonErrorResponse(UmaErrorResponseType.SERVER_ERROR)).build());
120  }
121  }
UmaPermissionService permissionService
Definition: UmaPermissionRegistrationWS.java:71
String addPermission(UmaPermissionList permissionList, String clientDn)
Definition: UmaPermissionService.java:90
TokenService tokenService
Definition: UmaPermissionRegistrationWS.java:68
ErrorResponseFactory errorResponseFactory
Definition: UmaPermissionRegistrationWS.java:77
Logger log
Definition: UmaPermissionRegistrationWS.java:65
String getUmaJsonErrorResponse(IErrorType type)
Definition: ErrorResponseFactory.java:181
UmaValidationService umaValidationService
Definition: UmaPermissionRegistrationWS.java:80
String getClientDn(String p_authorization)
Definition: TokenService.java:54
UmaPermissionList parseRequest(String requestAsString)
Definition: UmaPermissionRegistrationWS.java:129
void validatePermissions(List< UmaPermission > permissions)
Definition: UmaValidationService.java:174
AuthorizationGrant assertHasProtectionScope(String authorization)
Definition: UmaValidationService.java:123

メンバ詳解

◆ appConfiguration

AppConfiguration org.xdi.oxauth.uma.ws.rs.UmaPermissionRegistrationWS.appConfiguration
private

◆ errorResponseFactory

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

◆ log

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

◆ permissionService

UmaPermissionService org.xdi.oxauth.uma.ws.rs.UmaPermissionRegistrationWS.permissionService
private

◆ rptService

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

◆ tokenService

TokenService org.xdi.oxauth.uma.ws.rs.UmaPermissionRegistrationWS.tokenService
private

◆ umaValidationService

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

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