gluu
公開メンバ関数 | 静的公開メンバ関数 | 静的公開変数類 | 限定公開メンバ関数 | 関数 | 変数 | 非公開メンバ関数 | 非公開変数類 | 全メンバ一覧
org.gluu.oxtrust.service.scim2.interceptor.UserWebServiceDecorator クラス
org.gluu.oxtrust.service.scim2.interceptor.UserWebServiceDecorator の継承関係図
Inheritance graph
org.gluu.oxtrust.service.scim2.interceptor.UserWebServiceDecorator 連携図
Collaboration graph

公開メンバ関数

Response createUser (UserResource user, String attrsList, String excludedAttrsList)
 
Response getUserById (String id, String attrsList, String excludedAttrsList)
 
Response updateUser (UserResource user, String id, String attrsList, String excludedAttrsList)
 
Response deleteUser (String id)
 
Response searchUsers (String filter, Integer startIndex, Integer count, String sortBy, String sortOrder, String attrsList, String excludedAttrsList)
 
Response searchUsersPost (SearchRequest searchRequest)
 
Response patchUser (PatchRequest request, String id, String attrsList, String excludedAttrsList)
 
String getEndpointUrl ()
 
Response createUser (UserResource user, @QueryParam(QUERY_PARAM_ATTRIBUTES) String attrsList, @QueryParam(QUERY_PARAM_EXCLUDED_ATTRS) String excludedAttrsList)
 
Response getUserById ( @PathParam("id") String id, @QueryParam(QUERY_PARAM_ATTRIBUTES) String attrsList, @QueryParam(QUERY_PARAM_EXCLUDED_ATTRS) String excludedAttrsList)
 
Response updateUser (UserResource user, @PathParam("id") String id, @QueryParam(QUERY_PARAM_ATTRIBUTES) String attrsList, @QueryParam(QUERY_PARAM_EXCLUDED_ATTRS) String excludedAttrsList)
 
Response deleteUser (@PathParam("id") String id)
 
Response searchUsers ( @QueryParam(QUERY_PARAM_FILTER) String filter, @QueryParam(QUERY_PARAM_START_INDEX) Integer startIndex, @QueryParam(QUERY_PARAM_COUNT) Integer count, @QueryParam(QUERY_PARAM_SORT_BY) String sortBy, @QueryParam(QUERY_PARAM_SORT_ORDER) String sortOrder, @QueryParam(QUERY_PARAM_ATTRIBUTES) String attrsList, @QueryParam(QUERY_PARAM_EXCLUDED_ATTRS) String excludedAttrsList)
 
Response patchUser (PatchRequest request, @PathParam("id") String id, @QueryParam(QUERY_PARAM_ATTRIBUTES) String attrsList, @QueryParam(QUERY_PARAM_EXCLUDED_ATTRS) String excludedAttrsList)
 

静的公開メンバ関数

static Response getErrorResponse (Response.Status status, String detail)
 
static Response getErrorResponse (Response.Status status, ErrorScimType scimType, String detail)
 
static Response getErrorResponse (int statusCode, ErrorScimType scimType, String detail)
 

静的公開変数類

static final String SEARCH_SUFFIX = ".search"
 

限定公開メンバ関数

void assignMetaInformation (BaseScimResource resource)
 
void executeDefaultValidation (BaseScimResource resource) throws SCIMException
 
void executeValidation (BaseScimResource resource, boolean skipRequired) throws SCIMException
 
Response prepareSearchRequest (List< String > schemas, String filter, String sortBy, String sortOrder, Integer startIndex, Integer count, String attrsList, String excludedAttrsList, SearchRequest request)
 
Response inspectPatchRequest (PatchRequest patch, Class<? extends BaseScimResource > cls)
 

関数

int getMaxCount ()
 
String getValueFromHeaders (HttpHeaders headers, String name)
 
String translateSortByAttribute (Class<? extends BaseScimResource > cls, String sortBy)
 
String getListResponseSerialized (int total, int startIndex, List< BaseScimResource > resources, String attrsList, String excludedAttrsList, boolean ignoreResults) throws IOException
 

変数

AppConfiguration appConfiguration
 
ScimResourceSerializer resourceSerializer
 
ExtensionService extService
 
String endpointUrl
 

非公開メンバ関数

Response validateExistenceOfUser (String id)
 
void checkUidExistence (String uid) throws DuplicateEntryException
 
void checkUidExistence (String uid, String id) throws DuplicateEntryException
 

非公開変数類

Logger log
 
IUserWebService service
 
IPersonService personService
 

詳解

Aims at decorating SCIM user service methods. Currently applies validations via ResourceValidator class or other custom validation logic

Created by jgomer on 2017-09-01.

関数詳解

◆ assignMetaInformation()

void org.gluu.oxtrust.ws.rs.scim2.BaseScimWebService.assignMetaInformation ( BaseScimResource  resource)
inlineprotectedinherited
102  {
103 
104  //Generate some meta information (this replaces the info client passed in the request)
105  long now=new Date().getTime();
106  String val= ISODateTimeFormat.dateTime().withZoneUTC().print(now);
107 
108  Meta meta=new Meta();
109  meta.setResourceType(ScimResourceUtil.getType(resource.getClass()));
110  meta.setCreated(val);
111  meta.setLastModified(val);
112  //For version attritute: Service provider support for this attribute is optional and subject to the service provider's support for versioning
113  //For location attribute: this will be set after current user creation in LDAP
114  resource.setMeta(meta);
115 
116  }

◆ checkUidExistence() [1/2]

void org.gluu.oxtrust.service.scim2.interceptor.UserWebServiceDecorator.checkUidExistence ( String  uid) throws DuplicateEntryException
inlineprivate
65  {
66  if (personService.getPersonByUid(uid) != null)
67  throw new DuplicateEntryException("Duplicate UID value: " + uid);
68  }
IPersonService personService
Definition: UserWebServiceDecorator.java:50
abstract GluuCustomPerson getPersonByUid(String uid)

◆ checkUidExistence() [2/2]

void org.gluu.oxtrust.service.scim2.interceptor.UserWebServiceDecorator.checkUidExistence ( String  uid,
String  id 
) throws DuplicateEntryException
inlineprivate
70  {
71 
72  // Validate if there is an attempt to supply a userName already in use by a user other than current
73  List<GluuCustomPerson> list=null;
74  try{
75  list=personService.findPersonsByUids(Collections.singletonList(uid), new String[]{"inum"});
76  }
77  catch (Exception e){
78  log.error(e.getMessage(), e);
79  }
80  if (list!=null){
81  for (GluuCustomPerson p : list)
82  if (!p.getInum().equals(id))
83  throw new DuplicateEntryException("Duplicate UID value: " + uid);
84  }
85 
86  }
abstract List< GluuCustomPerson > findPersonsByUids(List< String > uids, String[] returnAttributes)
IPersonService personService
Definition: UserWebServiceDecorator.java:50
Logger log
Definition: UserWebServiceDecorator.java:44

◆ createUser() [1/2]

Response org.gluu.oxtrust.ws.rs.scim2.IUserWebService.createUser ( UserResource  user,
@QueryParam(QUERY_PARAM_ATTRIBUTES) String  attrsList,
@QueryParam(QUERY_PARAM_EXCLUDED_ATTRS) String  excludedAttrsList 
)
inherited

Service method that allows creating a User resource via POST (as per section 3.3 of RFC 7644).

引数
userAn object that represents the User to create
attrsListSee notes about attributes query param
excludedAttrsListSee notes about excludedAttributes query param
戻り値
An object abstracting the response obtained from the server to this request. A succesful response for this operation should contain a status code of 201 (created) and a UserResource in the entity body (the resource just created)

◆ createUser() [2/2]

Response org.gluu.oxtrust.service.scim2.interceptor.UserWebServiceDecorator.createUser ( UserResource  user,
String  attrsList,
String  excludedAttrsList 
)
inline
88  {
89 
90  Response response;
91  try {
93  checkUidExistence(user.getUserName());
94 
96  ScimResourceUtil.adjustPrimarySubAttributes(user);
97  //Proceed with actual implementation of createUser method
98  response = service.createUser(user, attrsList, excludedAttrsList);
99  }
100  catch (DuplicateEntryException e){
101  log.error(e.getMessage());
102  response=getErrorResponse(Response.Status.CONFLICT, ErrorScimType.UNIQUENESS, e.getMessage());
103  }
104  catch (SCIMException e){
105  log.error("Validation check at createUser returned: {}", e.getMessage());
106  response = getErrorResponse(Response.Status.BAD_REQUEST, ErrorScimType.INVALID_VALUE, e.getMessage());
107  }
108  return response;
109 
110  }
void assignMetaInformation(BaseScimResource resource)
Definition: BaseScimWebService.java:102
Response createUser(UserResource user, @QueryParam(QUERY_PARAM_ATTRIBUTES) String attrsList, @QueryParam(QUERY_PARAM_EXCLUDED_ATTRS) String excludedAttrsList)
void executeDefaultValidation(BaseScimResource resource)
Definition: BaseScimWebService.java:118
Logger log
Definition: UserWebServiceDecorator.java:44
IUserWebService service
Definition: UserWebServiceDecorator.java:47
static Response getErrorResponse(Response.Status status, String detail)
Definition: BaseScimWebService.java:75
void checkUidExistence(String uid)
Definition: UserWebServiceDecorator.java:65

◆ deleteUser() [1/2]

Response org.gluu.oxtrust.ws.rs.scim2.IUserWebService.deleteUser ( @PathParam("id") String  id)
inherited

Removes a User via DELETE HTTP method (see section 3.6 of RFC 7644).

引数
idThe "id" attribute of the resource to be removed
戻り値
An object abstracting the response obtained from the server to this request. A succesful response for this operation should contain a status code of 204 (no content)

org.gluu.oxtrust.ws.rs.scim2.UserWebServiceで実装されています。

◆ deleteUser() [2/2]

Response org.gluu.oxtrust.service.scim2.interceptor.UserWebServiceDecorator.deleteUser ( String  id)
inline
155  {
156 
157  Response response=validateExistenceOfUser(id);
158  if (response==null)
159  //Proceed with actual implementation of deleteUser method
160  response= service.deleteUser(id);
161 
162  return response;
163 
164  }
Response deleteUser(@PathParam("id") String id)
Response validateExistenceOfUser(String id)
Definition: UserWebServiceDecorator.java:52
IUserWebService service
Definition: UserWebServiceDecorator.java:47

◆ executeDefaultValidation()

void org.gluu.oxtrust.ws.rs.scim2.BaseScimWebService.executeDefaultValidation ( BaseScimResource  resource) throws SCIMException
inlineprotectedinherited
118  {
119  executeValidation(resource, false);
120  }
void executeValidation(BaseScimResource resource, boolean skipRequired)
Definition: BaseScimWebService.java:122

◆ executeValidation()

void org.gluu.oxtrust.ws.rs.scim2.BaseScimWebService.executeValidation ( BaseScimResource  resource,
boolean  skipRequired 
) throws SCIMException
inlineprotectedinherited
122  {
123 
124  ResourceValidator rv=new ResourceValidator(resource, extService.getResourceExtensions(resource.getClass()));
125  if (!skipRequired){
126  rv.validateRequiredAttributes();
127  rv.validateSchemasAttribute();
128  }
129  rv.validateValidableAttributes();
130  //By section 7 of RFC 7643, we are not forced to constrain attribute values when they have a list of canonical values associated
131  //rv.validateCanonicalizedAttributes();
132  rv.validateExtendedAttributes();
133 
134  }
List< Extension > getResourceExtensions(Class<? extends BaseScimResource > cls)
Definition: ExtensionService.java:46
ExtensionService extService
Definition: BaseScimWebService.java:65

◆ getEndpointUrl()

String org.gluu.oxtrust.ws.rs.scim2.BaseScimWebService.getEndpointUrl ( )
inlineinherited
71  {
72  return endpointUrl;
73  }
String endpointUrl
Definition: BaseScimWebService.java:69

◆ getErrorResponse() [1/3]

static Response org.gluu.oxtrust.ws.rs.scim2.BaseScimWebService.getErrorResponse ( Response.Status  status,
String  detail 
)
inlinestaticinherited
75  {
76  return getErrorResponse(status.getStatusCode(), null, detail);
77  }
static Response getErrorResponse(Response.Status status, String detail)
Definition: BaseScimWebService.java:75

◆ getErrorResponse() [2/3]

static Response org.gluu.oxtrust.ws.rs.scim2.BaseScimWebService.getErrorResponse ( Response.Status  status,
ErrorScimType  scimType,
String  detail 
)
inlinestaticinherited
79  {
80  return getErrorResponse(status.getStatusCode(), scimType, detail);
81  }
static Response getErrorResponse(Response.Status status, String detail)
Definition: BaseScimWebService.java:75

◆ getErrorResponse() [3/3]

static Response org.gluu.oxtrust.ws.rs.scim2.BaseScimWebService.getErrorResponse ( int  statusCode,
ErrorScimType  scimType,
String  detail 
)
inlinestaticinherited
83  {
84 
85  ErrorResponse errorResponse = new ErrorResponse();
86  errorResponse.setStatus(String.valueOf(statusCode));
87  errorResponse.setScimType(scimType);
88  errorResponse.setDetail(detail);
89 
90  return Response.status(statusCode).entity(errorResponse).build();
91  }

◆ getListResponseSerialized()

String org.gluu.oxtrust.ws.rs.scim2.BaseScimWebService.getListResponseSerialized ( int  total,
int  startIndex,
List< BaseScimResource resources,
String  attrsList,
String  excludedAttrsList,
boolean  ignoreResults 
) throws IOException
inlinepackageinherited
203  {
204 
205  ListResponse listResponse = new ListResponse(startIndex, resources.size(), total);
206  listResponse.setResources(resources);
207 
208  ObjectMapper mapper = new ObjectMapper();
209  SimpleModule module = new SimpleModule("ListResponseModule", Version.unknownVersion());
210  module.addSerializer(ListResponse.class, new ListResponseJsonSerializer(resourceSerializer, attrsList, excludedAttrsList, ignoreResults));
211  mapper.registerModule(module);
212 
213  return mapper.writeValueAsString(listResponse);
214 
215  }
ScimResourceSerializer resourceSerializer
Definition: BaseScimWebService.java:62

◆ getMaxCount()

int org.gluu.oxtrust.ws.rs.scim2.BaseScimWebService.getMaxCount ( )
inlinepackageinherited
93  {
94  return appConfiguration.getScimProperties().getMaxCount();
95  }
AppConfiguration appConfiguration
Definition: BaseScimWebService.java:59

◆ getUserById() [1/2]

Response org.gluu.oxtrust.ws.rs.scim2.IUserWebService.getUserById ( @PathParam("id") String  id,
@QueryParam(QUERY_PARAM_ATTRIBUTES) String  attrsList,
@QueryParam(QUERY_PARAM_EXCLUDED_ATTRS) String  excludedAttrsList 
)
inherited

Service method that retrieves a User resource using GET (as per section 3.4.1 of RFC 7644).

引数
idThe "id" attribute of the resource to retrieve
attrsListSee notes about attributes query param
excludedAttrsListSee notes about excludedAttributes query param
戻り値
An object abstracting the response obtained from the server to this request. A succesful response for this operation should contain a status code of 200 and a UserResource in the entity body (the resource retrieved)

org.gluu.oxtrust.ws.rs.scim2.UserWebServiceで実装されています。

◆ getUserById() [2/2]

Response org.gluu.oxtrust.service.scim2.interceptor.UserWebServiceDecorator.getUserById ( String  id,
String  attrsList,
String  excludedAttrsList 
)
inline
112  {
113 
114  Response response=validateExistenceOfUser(id);
115  if (response==null)
116  //Proceed with actual implementation of getUserById method
117  response= service.getUserById(id, attrsList, excludedAttrsList);
118 
119  return response;
120 
121  }
Response getUserById( @PathParam("id") String id, @QueryParam(QUERY_PARAM_ATTRIBUTES) String attrsList, @QueryParam(QUERY_PARAM_EXCLUDED_ATTRS) String excludedAttrsList)
Response validateExistenceOfUser(String id)
Definition: UserWebServiceDecorator.java:52
IUserWebService service
Definition: UserWebServiceDecorator.java:47

◆ getValueFromHeaders()

String org.gluu.oxtrust.ws.rs.scim2.BaseScimWebService.getValueFromHeaders ( HttpHeaders  headers,
String  name 
)
inlinepackageinherited
97  {
98  List<String> values=headers.getRequestHeaders().get(name);
99  return (values==null || values.size()==0) ? null : values.get(0);
100  }

◆ inspectPatchRequest()

Response org.gluu.oxtrust.ws.rs.scim2.BaseScimWebService.inspectPatchRequest ( PatchRequest  patch,
Class<? extends BaseScimResource cls 
)
inlineprotectedinherited
217  {
218 
219  Response response=null;
220  List<String> schemas=patch.getSchemas();
221 
222  if (schemas!=null && schemas.size()==1 && schemas.get(0).equals(PATCH_REQUEST_SCHEMA_ID)) {
223  List<PatchOperation> ops = patch.getOperations();
224 
225  if (ops != null) {
226  //Adjust paths if they came prefixed
227 
228  String defSchema=ScimResourceUtil.getDefaultSchemaUrn(cls);
229  List<String> urns=extService.getUrnsOfExtensions(cls);
230  urns.add(defSchema);
231 
232  for (PatchOperation op : ops){
233  if (op.getPath()!=null)
234  op.setPath(ScimResourceUtil.adjustNotationInPath(op.getPath(), defSchema, urns));
235  }
236 
237  for (PatchOperation op : ops) {
238 
239  if (op.getType() == null)
240  response = getErrorResponse(BAD_REQUEST, ErrorScimType.INVALID_SYNTAX, "Operation '" + op.getOperation() + "' not recognized");
241  else {
242  String path = op.getPath();
243 
244  if (StringUtils.isEmpty(path) && op.getType().equals(PatchOperationType.REMOVE))
245  response = getErrorResponse(BAD_REQUEST, ErrorScimType.NO_TARGET, "Path attribute is required for remove operation");
246  else
247  if (op.getValue() == null && !op.getType().equals(PatchOperationType.REMOVE))
248  response = getErrorResponse(BAD_REQUEST, ErrorScimType.INVALID_SYNTAX, "Value attribute is required for operations other than remove");
249  }
250  if (response != null)
251  break;
252  }
253  }
254  else
255  response = getErrorResponse(BAD_REQUEST, ErrorScimType.INVALID_SYNTAX, "Patch request MUST contain the attribute 'Operations'");
256  }
257  else
258  response = getErrorResponse(BAD_REQUEST, ErrorScimType.INVALID_SYNTAX, "Wrong schema(s) supplied in Search Request");
259 
260  log.info("inspectPatchRequest. Preprocessing of patch request {}", response==null ? "passed" : "failed");
261  return response;
262 
263  }
Logger log
Definition: BaseScimWebService.java:56
static Response getErrorResponse(Response.Status status, String detail)
Definition: BaseScimWebService.java:75
ExtensionService extService
Definition: BaseScimWebService.java:65
List< String > getUrnsOfExtensions(Class<? extends BaseScimResource > cls)
Definition: ExtensionService.java:86

◆ patchUser() [1/2]

Response org.gluu.oxtrust.service.scim2.interceptor.UserWebServiceDecorator.patchUser ( PatchRequest  request,
String  id,
String  attrsList,
String  excludedAttrsList 
)
inline
195  {
196 
197  Response response=inspectPatchRequest(request, UserResource.class);
198  if (response==null) {
199  response=validateExistenceOfUser(id);
200 
201  if (response==null)
202  response = service.patchUser(request, id, attrsList, excludedAttrsList);
203  }
204  return response;
205 
206  }
Response validateExistenceOfUser(String id)
Definition: UserWebServiceDecorator.java:52
IUserWebService service
Definition: UserWebServiceDecorator.java:47
Response inspectPatchRequest(PatchRequest patch, Class<? extends BaseScimResource > cls)
Definition: BaseScimWebService.java:217
Response patchUser(PatchRequest request, @PathParam("id") String id, @QueryParam(QUERY_PARAM_ATTRIBUTES) String attrsList, @QueryParam(QUERY_PARAM_EXCLUDED_ATTRS) String excludedAttrsList)

◆ patchUser() [2/2]

Response org.gluu.oxtrust.ws.rs.scim2.IUserWebService.patchUser ( PatchRequest  request,
@PathParam("id") String  id,
@QueryParam(QUERY_PARAM_ATTRIBUTES) String  attrsList,
@QueryParam(QUERY_PARAM_EXCLUDED_ATTRS) String  excludedAttrsList 
)
inherited

Service method that allows to modify a User resource via PATCH (see section 3.5.2 of RFC 7644).

Note that patching offers a fine-grained control over the attributes to modify. While PUT is more intended to replace attribute values, PATCH allows to perform localized updates, removals and additions in certain portions of the target resource.

引数
requestA PatchRequest that contains the operations to apply upon the resource being updated
idThe id of the resource to update
attrsListSee notes about attributes query param
excludedAttrsListSee notes about excludedAttributes query param
戻り値
An object abstracting the response obtained from the server to this request. A succesful response for this operation should contain a status code of 200 and a UserResource in the entity body (the resource after modifications took place)

org.gluu.oxtrust.ws.rs.scim2.UserWebServiceで実装されています。

◆ prepareSearchRequest()

Response org.gluu.oxtrust.ws.rs.scim2.BaseScimWebService.prepareSearchRequest ( List< String >  schemas,
String  filter,
String  sortBy,
String  sortOrder,
Integer  startIndex,
Integer  count,
String  attrsList,
String  excludedAttrsList,
SearchRequest  request 
)
inlineprotectedinherited
167  {
168 
169  Response response=null;
170 
171  if (schemas!=null && schemas.size()==1 && schemas.get(0).equals(SEARCH_REQUEST_SCHEMA_ID)) {
172  count = count == null ? getMaxCount() : count;
173  //Per spec, a negative value SHALL be interpreted as "0" for count
174  if (count<0)
175  count=0;
176 
177  if (count <= getMaxCount()) {
178  startIndex = (startIndex == null || startIndex < 1) ? 1 : startIndex;
179 
180  if (StringUtils.isEmpty(sortOrder) || !sortOrder.equals(SortOrder.DESCENDING.getValue()))
181  sortOrder = SortOrder.ASCENDING.getValue();
182 
183  request.setSchemas(schemas);
184  request.setAttributes(attrsList);
185  request.setExcludedAttributes(excludedAttrsList);
186  request.setFilter(filter);
187  request.setSortBy(sortBy);
188  request.setSortOrder(sortOrder);
189  request.setStartIndex(startIndex);
190  request.setCount(count);
191  }
192  else
193  response = getErrorResponse(BAD_REQUEST, ErrorScimType.TOO_MANY, "Maximum number of results per page is " + getMaxCount());
194  }
195  else
196  response = getErrorResponse(BAD_REQUEST, ErrorScimType.INVALID_SYNTAX, "Wrong schema(s) supplied in Search Request");
197 
198  return response;
199 
200  }
int getMaxCount()
Definition: BaseScimWebService.java:93
static Response getErrorResponse(Response.Status status, String detail)
Definition: BaseScimWebService.java:75

◆ searchUsers() [1/2]

Response org.gluu.oxtrust.ws.rs.scim2.IUserWebService.searchUsers ( @QueryParam(QUERY_PARAM_FILTER) String  filter,
@QueryParam(QUERY_PARAM_START_INDEX) Integer  startIndex,
@QueryParam(QUERY_PARAM_COUNT) Integer  count,
@QueryParam(QUERY_PARAM_SORT_BY) String  sortBy,
@QueryParam(QUERY_PARAM_SORT_ORDER) String  sortOrder,
@QueryParam(QUERY_PARAM_ATTRIBUTES) String  attrsList,
@QueryParam(QUERY_PARAM_EXCLUDED_ATTRS) String  excludedAttrsList 
)
inherited

Sends a search query for User resources using GET (see section 3.4.2 of RFC 7644).

引数
filterA filter expression so that the search will return only those resources matching the expression. To learn more about SCIM filter expressions and operators, see section 3.4.2.2 of RFC 7644.
startIndexThe 1-based index of the first query result. If a negative integer or null is provided, the search is performed as if 1 was provided as value.
countSpecifies the desired maximum number of query results per page the response must include. If null is provided, the maximum supported by the server is used. If count is zero, this is interpreted as no results should be included (only the total amount is). If a negative number is supplied, the search is performed as if zero was provided as value.
sortBySpecifies the attribute whose value will be used to order the returned resources. If sortBy is null the results will be sorted by userName attribute.
sortOrderThe order in which the sortBy parameter is applied. Allowed values are "ascending" or "descending", being "ascending" the default if null or an unknown value is passed.
attrsListSee notes about attributes query param
excludedAttrsListSee notes about excludedAttributes query param
戻り値
An object abstracting the response obtained from the server to this request. A succesful response for this operation should contain a status code of 200 and a ListResponse in the entity body (holding a collection of SCIM resources)

org.gluu.oxtrust.ws.rs.scim2.UserWebServiceで実装されています。

◆ searchUsers() [2/2]

Response org.gluu.oxtrust.service.scim2.interceptor.UserWebServiceDecorator.searchUsers ( String  filter,
Integer  startIndex,
Integer  count,
String  sortBy,
String  sortOrder,
String  attrsList,
String  excludedAttrsList 
)
inline
167  {
168 
169  SearchRequest searchReq=new SearchRequest();
170  Response response=prepareSearchRequest(searchReq.getSchemas(), filter, sortBy, sortOrder, startIndex, count,
171  attrsList, excludedAttrsList, searchReq);
172 
173  if (response==null) {
174  response = service.searchUsers(searchReq.getFilter(), searchReq.getStartIndex(), searchReq.getCount(),
175  searchReq.getSortBy(), searchReq.getSortOrder(), searchReq.getAttributesStr(), searchReq.getExcludedAttributesStr());
176  }
177  return response;
178 
179  }
IUserWebService service
Definition: UserWebServiceDecorator.java:47
Response searchUsers( @QueryParam(QUERY_PARAM_FILTER) String filter, @QueryParam(QUERY_PARAM_START_INDEX) Integer startIndex, @QueryParam(QUERY_PARAM_COUNT) Integer count, @QueryParam(QUERY_PARAM_SORT_BY) String sortBy, @QueryParam(QUERY_PARAM_SORT_ORDER) String sortOrder, @QueryParam(QUERY_PARAM_ATTRIBUTES) String attrsList, @QueryParam(QUERY_PARAM_EXCLUDED_ATTRS) String excludedAttrsList)
Response prepareSearchRequest(List< String > schemas, String filter, String sortBy, String sortOrder, Integer startIndex, Integer count, String attrsList, String excludedAttrsList, SearchRequest request)
Definition: BaseScimWebService.java:166

◆ searchUsersPost()

Response org.gluu.oxtrust.service.scim2.interceptor.UserWebServiceDecorator.searchUsersPost ( SearchRequest  searchRequest)
inline

org.gluu.oxtrust.ws.rs.scim2.IUserWebServiceを実装しています。

181  {
182 
183  SearchRequest searchReq=new SearchRequest();
184  Response response=prepareSearchRequest(searchRequest.getSchemas(), searchRequest.getFilter(), searchRequest.getSortBy(),
185  searchRequest.getSortOrder(), searchRequest.getStartIndex(), searchRequest.getCount(),
186  searchRequest.getAttributesStr(), searchRequest.getExcludedAttributesStr(), searchReq);
187 
188  if (response==null) {
189  response = service.searchUsersPost(searchReq);
190  }
191  return response;
192 
193  }
Response searchUsersPost(SearchRequest searchRequest)
IUserWebService service
Definition: UserWebServiceDecorator.java:47
Response prepareSearchRequest(List< String > schemas, String filter, String sortBy, String sortOrder, Integer startIndex, Integer count, String attrsList, String excludedAttrsList, SearchRequest request)
Definition: BaseScimWebService.java:166

◆ translateSortByAttribute()

String org.gluu.oxtrust.ws.rs.scim2.BaseScimWebService.translateSortByAttribute ( Class<? extends BaseScimResource cls,
String  sortBy 
)
inlinepackageinherited
137  {
138 
139  String type=ScimResourceUtil.getType(cls);
140  if (StringUtils.isEmpty(sortBy) || type==null)
141  sortBy=null;
142  else {
143  if (extService.extensionOfAttribute(cls, sortBy)==null) { //It's not a custom attribute...
144 
145  sortBy=ScimResourceUtil.stripDefaultSchema(cls, sortBy);
146  Field f=IntrospectUtil.findFieldFromPath(cls, sortBy);
147 
148  if (f==null){ //Not recognized!
149  log.warn("SortBy parameter value '{}' was not recognized as a SCIM attribute for resource {} - sortBy will be ignored.", sortBy, type);
150  sortBy=null;
151  //return getErrorResponse(Response.Status.BAD_REQUEST, ErrorScimType.INVALID_PATH, "sortBy parameter value not recognized");
152  }
153  else {
154  sortBy = FilterUtil.getLdapAttributeOfResourceAttribute(sortBy, cls).getFirst();
155  if (sortBy==null)
156  log.warn("There is no LDAP attribute mapping to sortBy attribute provided - sortBy will be ignored.");
157  }
158  }
159  else
160  sortBy = sortBy.substring(sortBy.lastIndexOf(":")+1);
161  }
162  return sortBy;
163 
164  }
Extension extensionOfAttribute(Class<? extends BaseScimResource > cls, String attribute)
Definition: ExtensionService.java:147
Logger log
Definition: BaseScimWebService.java:56
ExtensionService extService
Definition: BaseScimWebService.java:65

◆ updateUser() [1/2]

Response org.gluu.oxtrust.ws.rs.scim2.IUserWebService.updateUser ( UserResource  user,
@PathParam("id") String  id,
@QueryParam(QUERY_PARAM_ATTRIBUTES) String  attrsList,
@QueryParam(QUERY_PARAM_EXCLUDED_ATTRS) String  excludedAttrsList 
)
inherited

Service method that allows updating a User resource via PUT (as per section 3.5.1 of RFC 7644).

This operation is not suitable to delete/remove/nullify attributes. For this purpose you can use the PATCH operation instead. PUT is intended to do replacements using the (not-null) values supplied in fidoDeviceResource parameter.

To learn more about how the update works, read the replacement rules found at ScimResourceUtil#transferToResourceReplace.

引数
userAn object that contains the data to update on a destination resource. There is no need to supply a full resource, just provide one with the attributes which are intended to be replaced in the destination
idThe "id" attribute of the resource to update (destination)
attrsListSee notes about attributes query param
excludedAttrsListSee notes about excludedAttributes query param
戻り値
An object abstracting the response obtained from the server to this request. A succesful response for this operation should contain a status code of 200 and a UserResource in the entity body (the resource after the update took place)

◆ updateUser() [2/2]

Response org.gluu.oxtrust.service.scim2.interceptor.UserWebServiceDecorator.updateUser ( UserResource  user,
String  id,
String  attrsList,
String  excludedAttrsList 
)
inline
123  {
124 
125  Response response;
126  try{
127  //Check if the ids match in case the user coming has one
128  if (user.getId()!=null && !user.getId().equals(id))
129  throw new SCIMException("Parameter id does not match with id attribute of User");
130 
131  response=validateExistenceOfUser(id);
132  if (response==null) {
133 
134  executeValidation(user, true);
135  if (StringUtils.isNotEmpty(user.getUserName()))
136  checkUidExistence(user.getUserName(), id);
137 
138  ScimResourceUtil.adjustPrimarySubAttributes(user);
139  //Proceed with actual implementation of updateUser method
140  response = service.updateUser(user, id, attrsList, excludedAttrsList);
141  }
142  }
143  catch (DuplicateEntryException e){
144  log.error(e.getMessage());
145  response=getErrorResponse(Response.Status.CONFLICT, ErrorScimType.UNIQUENESS, e.getMessage());
146  }
147  catch (SCIMException e){
148  log.error("Validation check at updateUser returned: {}", e.getMessage());
149  response = getErrorResponse(Response.Status.BAD_REQUEST, ErrorScimType.INVALID_VALUE, e.getMessage());
150  }
151  return response;
152 
153  }
Response validateExistenceOfUser(String id)
Definition: UserWebServiceDecorator.java:52
Response updateUser(UserResource user, @PathParam("id") String id, @QueryParam(QUERY_PARAM_ATTRIBUTES) String attrsList, @QueryParam(QUERY_PARAM_EXCLUDED_ATTRS) String excludedAttrsList)
void executeValidation(BaseScimResource resource, boolean skipRequired)
Definition: BaseScimWebService.java:122
Logger log
Definition: UserWebServiceDecorator.java:44
IUserWebService service
Definition: UserWebServiceDecorator.java:47
static Response getErrorResponse(Response.Status status, String detail)
Definition: BaseScimWebService.java:75
void checkUidExistence(String uid)
Definition: UserWebServiceDecorator.java:65

◆ validateExistenceOfUser()

Response org.gluu.oxtrust.service.scim2.interceptor.UserWebServiceDecorator.validateExistenceOfUser ( String  id)
inlineprivate
52  {
53 
54  Response response=null;
55  GluuCustomPerson person = StringUtils.isEmpty(id) ? null : personService.getPersonByInum(id);
56 
57  if (person==null) {
58  log.info("Person with inum {} not found", id);
59  response = getErrorResponse(Response.Status.NOT_FOUND, "Resource " + id + " not found");
60  }
61  return response;
62 
63  }
IPersonService personService
Definition: UserWebServiceDecorator.java:50
Logger log
Definition: UserWebServiceDecorator.java:44
static Response getErrorResponse(Response.Status status, String detail)
Definition: BaseScimWebService.java:75
abstract GluuCustomPerson getPersonByInum(String inum)

メンバ詳解

◆ appConfiguration

AppConfiguration org.gluu.oxtrust.ws.rs.scim2.BaseScimWebService.appConfiguration
packageinherited

◆ endpointUrl

String org.gluu.oxtrust.ws.rs.scim2.BaseScimWebService.endpointUrl
packageinherited

◆ extService

ExtensionService org.gluu.oxtrust.ws.rs.scim2.BaseScimWebService.extService
packageinherited

◆ log

Logger org.gluu.oxtrust.service.scim2.interceptor.UserWebServiceDecorator.log
private

◆ personService

IPersonService org.gluu.oxtrust.service.scim2.interceptor.UserWebServiceDecorator.personService
private

◆ resourceSerializer

ScimResourceSerializer org.gluu.oxtrust.ws.rs.scim2.BaseScimWebService.resourceSerializer
packageinherited

◆ SEARCH_SUFFIX

final String org.gluu.oxtrust.ws.rs.scim2.BaseScimWebService.SEARCH_SUFFIX = ".search"
staticinherited

◆ service

IUserWebService org.gluu.oxtrust.service.scim2.interceptor.UserWebServiceDecorator.service
private

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