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

公開メンバ関数

Response createDevice ()
 
Response getDeviceById (@PathParam("id") String id, @QueryParam("userId") String userId, @QueryParam(QUERY_PARAM_ATTRIBUTES) String attrsList, @QueryParam(QUERY_PARAM_EXCLUDED_ATTRS) String excludedAttrsList)
 
Response updateDevice (FidoDeviceResource fidoDeviceResource, @PathParam("id") String id, @QueryParam(QUERY_PARAM_ATTRIBUTES) String attrsList, @QueryParam(QUERY_PARAM_EXCLUDED_ATTRS) String excludedAttrsList)
 
Response deleteDevice (@PathParam("id") String id)
 
Response searchDevices ( @QueryParam("userId") String userId, @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 searchDevicesPost (SearchRequest searchRequest, @QueryParam("userId") String userId)
 
Response patchDevice (PatchRequest request, @PathParam("id") String id, @QueryParam(QUERY_PARAM_ATTRIBUTES) String attrsList, @QueryParam(QUERY_PARAM_EXCLUDED_ATTRS) String excludedAttrsList)
 
void setup ()
 
String getEndpointUrl ()
 

静的公開メンバ関数

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
 

変数

Logger log
 
AppConfiguration appConfiguration
 
ScimResourceSerializer resourceSerializer
 
ExtensionService extService
 
String endpointUrl
 

非公開メンバ関数

void transferAttributesToFidoResource (GluuCustomFidoDevice fidoDevice, FidoDeviceResource res, String url, String userId)
 
void transferAttributesToDevice (FidoDeviceResource res, GluuCustomFidoDevice device)
 
String getUserInumFromDN (String deviceDn)
 
PagedResult< BaseScimResourcesearchDevices (String userId, String filter, String sortBy, SortOrder sortOrder, int startIndex, int count, String url) throws Exception
 

非公開変数類

IFidoDeviceService fidoDeviceService
 
ScimFilterParserService scimFilterParserService
 
IPersonService personService
 
PersistenceEntryManager ldapEntryManager
 

詳解

Implementation of /FidoDevices endpoint. Methods here are intercepted and/or decorated. Class org.gluu.oxtrust.service.scim2.interceptor.FidoDeviceWebServiceDecorator is used to apply pre-validations on data. Filter org.gluu.oxtrust.ws.rs.scim2.AuthorizationProcessingFilter secures invocations

著者
Val Pecaoco Updated by jgomer on 2017-10-09.

関数詳解

◆ 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  }

◆ createDevice()

Response org.gluu.oxtrust.ws.rs.scim2.FidoDeviceWebService.createDevice ( )
inline
94  {
95  log.debug("Executing web service method. createDevice");
96  return getErrorResponse(Response.Status.NOT_IMPLEMENTED, "Not implemented; device registration only happens via the FIDO API.");
97  }
Logger log
Definition: BaseScimWebService.java:56
static Response getErrorResponse(Response.Status status, String detail)
Definition: BaseScimWebService.java:75

◆ deleteDevice()

Response org.gluu.oxtrust.ws.rs.scim2.FidoDeviceWebService.deleteDevice ( @PathParam("id") String  id)
inline

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

196  {
197 
198  Response response;
199  try {
200  log.debug("Executing web service method. deleteDevice");
201 
202  //No need to check id being non-null. fidoDeviceService will give null if null is provided
203  GluuCustomFidoDevice device = fidoDeviceService.getGluuCustomFidoDeviceById(null, id);
204  if (device != null) {
206  response = Response.noContent().build();
207  }
208  else
209  response = getErrorResponse(Response.Status.NOT_FOUND, ErrorScimType.INVALID_VALUE, "Resource " + id + " not found");
210  }
211  catch (Exception e){
212  log.error("Failure at deleteDevice method", e);
213  response=getErrorResponse(Response.Status.INTERNAL_SERVER_ERROR, "Unexpected error: " + e.getMessage());
214  }
215  return response;
216 
217  }
IFidoDeviceService fidoDeviceService
Definition: FidoDeviceWebService.java:77
void removeGluuCustomFidoDevice(GluuCustomFidoDevice gluuCustomFidoDevice)
Logger log
Definition: BaseScimWebService.java:56
GluuCustomFidoDevice getGluuCustomFidoDeviceById(String userId, String id)
static Response getErrorResponse(Response.Status status, String detail)
Definition: BaseScimWebService.java:75

◆ 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

◆ getDeviceById()

Response org.gluu.oxtrust.ws.rs.scim2.FidoDeviceWebService.getDeviceById ( @PathParam("id") String  id,
@QueryParam("userId") String  userId,
@QueryParam(QUERY_PARAM_ATTRIBUTES) String  attrsList,
@QueryParam(QUERY_PARAM_EXCLUDED_ATTRS) String  excludedAttrsList 
)
inline

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

109  {
110 
111  Response response;
112  try{
113  log.debug("Executing web service method. getDeviceById");
114  FidoDeviceResource fidoResource=new FidoDeviceResource();
115 
116  GluuCustomFidoDevice device=fidoDeviceService.getGluuCustomFidoDeviceById(userId, id);
117  if (device==null)
118  throw new SCIMException("Resource " + id + " not found");
119 
120  transferAttributesToFidoResource(device, fidoResource, endpointUrl, userId);
121 
122  String json=resourceSerializer.serialize(fidoResource, attrsList, excludedAttrsList);
123  response=Response.ok(new URI(fidoResource.getMeta().getLocation())).entity(json).build();
124  }
125  catch (SCIMException e){
126  log.error(e.getMessage());
127  response=getErrorResponse(Response.Status.NOT_FOUND, ErrorScimType.INVALID_VALUE, e.getMessage());
128  }
129  catch (Exception e){
130  log.error("Failure at getDeviceById method", e);
131  response=getErrorResponse(Response.Status.INTERNAL_SERVER_ERROR, "Unexpected error: " + e.getMessage());
132  }
133  return response;
134 
135  }
void transferAttributesToFidoResource(GluuCustomFidoDevice fidoDevice, FidoDeviceResource res, String url, String userId)
Definition: FidoDeviceWebService.java:282
ScimResourceSerializer resourceSerializer
Definition: BaseScimWebService.java:62
IFidoDeviceService fidoDeviceService
Definition: FidoDeviceWebService.java:77
String serialize(BaseScimResource resource, String attributes, String exclusions)
Definition: ScimResourceSerializer.java:203
String endpointUrl
Definition: BaseScimWebService.java:69
Logger log
Definition: BaseScimWebService.java:56
GluuCustomFidoDevice getGluuCustomFidoDeviceById(String userId, String id)
static Response getErrorResponse(Response.Status status, String detail)
Definition: BaseScimWebService.java:75

◆ 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

◆ getUserInumFromDN()

String org.gluu.oxtrust.ws.rs.scim2.FidoDeviceWebService.getUserInumFromDN ( String  deviceDn)
inlineprivate
345  {
346  String baseDn=personService.getDnForPerson(null).replaceAll("\\s*","");
347  deviceDn=deviceDn.replaceAll("\\s*","").replaceAll("," + baseDn, "");
348  return deviceDn.substring(deviceDn.indexOf("inum=")+5);
349  }
abstract String getDnForPerson(String inum)
IPersonService personService
Definition: FidoDeviceWebService.java:83

◆ 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

◆ patchDevice()

Response org.gluu.oxtrust.ws.rs.scim2.FidoDeviceWebService.patchDevice ( PatchRequest  request,
@PathParam("id") String  id,
@QueryParam(QUERY_PARAM_ATTRIBUTES) String  attrsList,
@QueryParam(QUERY_PARAM_EXCLUDED_ATTRS) String  excludedAttrsList 
)
inline

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

397  {
398 
399  log.debug("Executing web service method. patchDevice");
400  return getErrorResponse(Response.Status.NOT_IMPLEMENTED, "Patch operation not supported for FIDO devices");
401  }
Logger log
Definition: BaseScimWebService.java:56
static Response getErrorResponse(Response.Status status, String detail)
Definition: BaseScimWebService.java:75

◆ 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

◆ searchDevices() [1/2]

Response org.gluu.oxtrust.ws.rs.scim2.FidoDeviceWebService.searchDevices ( @QueryParam("userId") String  userId,
@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 
)
inline

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

233  {
234 
235  Response response;
236  try {
237  log.debug("Executing web service method. searchDevices");
238  sortBy=translateSortByAttribute(FidoDeviceResource.class, sortBy);
239  PagedResult<BaseScimResource> resources = searchDevices(userId, filter, sortBy, SortOrder.getByValue(sortOrder), startIndex, count, endpointUrl);
240 
241  String json = getListResponseSerialized(resources.getTotalEntriesCount(), startIndex, resources.getEntries(), attrsList, excludedAttrsList, count==0);
242  response=Response.ok(json).location(new URI(endpointUrl)).build();
243  }
244  catch (SCIMException e){
245  log.error(e.getMessage(), e);
246  response=getErrorResponse(Response.Status.BAD_REQUEST, ErrorScimType.INVALID_FILTER, e.getMessage());
247  }
248  catch (Exception e){
249  log.error("Failure at searchDevices method", e);
250  response=getErrorResponse(Response.Status.INTERNAL_SERVER_ERROR, "Unexpected error: " + e.getMessage());
251  }
252  return response;
253 
254  }
String getListResponseSerialized(int total, int startIndex, List< BaseScimResource > resources, String attrsList, String excludedAttrsList, boolean ignoreResults)
Definition: BaseScimWebService.java:202
Response searchDevices( @QueryParam("userId") String userId, @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)
Definition: FidoDeviceWebService.java:225
String endpointUrl
Definition: BaseScimWebService.java:69
Logger log
Definition: BaseScimWebService.java:56
static Response getErrorResponse(Response.Status status, String detail)
Definition: BaseScimWebService.java:75
String translateSortByAttribute(Class<? extends BaseScimResource > cls, String sortBy)
Definition: BaseScimWebService.java:137

◆ searchDevices() [2/2]

PagedResult<BaseScimResource> org.gluu.oxtrust.ws.rs.scim2.FidoDeviceWebService.searchDevices ( String  userId,
String  filter,
String  sortBy,
SortOrder  sortOrder,
int  startIndex,
int  count,
String  url 
) throws Exception
inlineprivate
352  {
353 
354  Filter ldapFilter=scimFilterParserService.createLdapFilter(filter, "oxId=*", FidoDeviceResource.class);
355  log.info("Executing search for fido devices using: ldapfilter '{}', sortBy '{}', sortOrder '{}', startIndex '{}', count '{}'",
356  ldapFilter.toString(), sortBy, sortOrder.getValue(), startIndex, count);
357 
358  PagedResult<GluuCustomFidoDevice> list;
359  try {
360  list = ldapEntryManager.findPagedEntries(fidoDeviceService.getDnForFidoDevice(userId, null),
361  GluuCustomFidoDevice.class, ldapFilter, null, sortBy, sortOrder, startIndex, count, getMaxCount());
362  } catch (Exception e) {
363  log.info("Returning an empty listViewReponse");
364  log.error(e.getMessage(), e);
365  list = new PagedResult<GluuCustomFidoDevice>();
366  list.setEntries(new ArrayList<GluuCustomFidoDevice>());
367  }
368  List<BaseScimResource> resources=new ArrayList<BaseScimResource>();
369 
370  for (GluuCustomFidoDevice device : list.getEntries()){
371  FidoDeviceResource scimDev=new FidoDeviceResource();
372  transferAttributesToFidoResource(device, scimDev, url, getUserInumFromDN(device.getDn()));
373  resources.add(scimDev);
374  }
375  log.info ("Found {} matching entries - returning {}", list.getTotalEntriesCount(), list.getEntries().size());
376 
377  PagedResult<BaseScimResource> result = new PagedResult<BaseScimResource>();
378  result.setEntries(resources);
379  result.setTotalEntriesCount(list.getTotalEntriesCount());
380 
381  return result;
382 
383  }
void transferAttributesToFidoResource(GluuCustomFidoDevice fidoDevice, FidoDeviceResource res, String url, String userId)
Definition: FidoDeviceWebService.java:282
Filter createLdapFilter(String filter, String defaultStr, Class<? extends BaseScimResource > clazz)
Definition: ScimFilterParserService.java:78
ScimFilterParserService scimFilterParserService
Definition: FidoDeviceWebService.java:80
IFidoDeviceService fidoDeviceService
Definition: FidoDeviceWebService.java:77
String getDnForFidoDevice(String userId, String id)
int getMaxCount()
Definition: BaseScimWebService.java:93
Logger log
Definition: BaseScimWebService.java:56
PersistenceEntryManager ldapEntryManager
Definition: FidoDeviceWebService.java:86
String getUserInumFromDN(String deviceDn)
Definition: FidoDeviceWebService.java:345

◆ searchDevicesPost()

Response org.gluu.oxtrust.ws.rs.scim2.FidoDeviceWebService.searchDevicesPost ( SearchRequest  searchRequest,
@QueryParam("userId") String  userId 
)
inline

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

264  {
265 
266  log.debug("Executing web service method. searchDevicesPost");
267 
268  URI uri=null;
269  Response response = searchDevices(userId, searchRequest.getFilter(), searchRequest.getStartIndex(), searchRequest.getCount(),
270  searchRequest.getSortBy(), searchRequest.getSortOrder(), searchRequest.getAttributesStr(), searchRequest.getExcludedAttributesStr());
271 
272  try {
273  uri = new URI(endpointUrl + "/" + SEARCH_SUFFIX);
274  }
275  catch (Exception e){
276  log.error(e.getMessage(), e);
277  }
278  return Response.fromResponse(response).location(uri).build();
279 
280  }
Response searchDevices( @QueryParam("userId") String userId, @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)
Definition: FidoDeviceWebService.java:225
String endpointUrl
Definition: BaseScimWebService.java:69
Logger log
Definition: BaseScimWebService.java:56
static final String SEARCH_SUFFIX
Definition: BaseScimWebService.java:67

◆ setup()

void org.gluu.oxtrust.ws.rs.scim2.FidoDeviceWebService.setup ( )
inline
404  {
405  //Do not use getClass() here... a typical weld issue...
406  endpointUrl=appConfiguration.getBaseEndpoint() + FidoDeviceWebService.class.getAnnotation(Path.class).value();
407  }
String endpointUrl
Definition: BaseScimWebService.java:69
AppConfiguration appConfiguration
Definition: BaseScimWebService.java:59

◆ transferAttributesToDevice()

void org.gluu.oxtrust.ws.rs.scim2.FidoDeviceWebService.transferAttributesToDevice ( FidoDeviceResource  res,
GluuCustomFidoDevice  device 
)
inlineprivate

In practice, transference of values will not necessarily modify all original values in LDAP...

引数
res
device
320  {
321 
322  //Set values trying to follow the order found in GluuCustomFidoDevice class
323  device.setId(res.getId());
324  device.setCreationDate(DateUtil.ISOToGeneralizedStringDate(res.getMeta().getCreated()));
325  device.setApplication(res.getApplication());
326  device.setCounter(res.getCounter());
327 
328  device.setDeviceData(res.getDeviceData());
329  device.setDeviceHashCode(res.getDeviceHashCode());
330  device.setDeviceKeyHandle(res.getDeviceKeyHandle());
331  device.setDeviceRegistrationConf(res.getDeviceRegistrationConf());
332 
333  device.setLastAccessTime(DateUtil.ISOToGeneralizedStringDate(res.getLastAccessTime()));
334  device.setStatus(res.getStatus());
335  device.setDisplayName(res.getDisplayName());
336  device.setDescription(res.getDescription());
337  device.setNickname(res.getNickname());
338 
339  device.setMetaLastModified(res.getMeta().getLastModified());
340  device.setMetaLocation(res.getMeta().getLocation());
341  device.setMetaVersion(res.getMeta().getVersion());
342 
343  }

◆ transferAttributesToFidoResource()

void org.gluu.oxtrust.ws.rs.scim2.FidoDeviceWebService.transferAttributesToFidoResource ( GluuCustomFidoDevice  fidoDevice,
FidoDeviceResource  res,
String  url,
String  userId 
)
inlineprivate
282  {
283 
284  res.setId(fidoDevice.getId());
285 
286  Meta meta=new Meta();
287  meta.setResourceType(ScimResourceUtil.getType(res.getClass()));
288  meta.setCreated(DateUtil.generalizedToISOStringDate(fidoDevice.getCreationDate()));
289  meta.setLastModified(fidoDevice.getMetaLastModified());
290  meta.setLocation(fidoDevice.getMetaLocation());
291  if (meta.getLocation()==null)
292  meta.setLocation(url + "/" + fidoDevice.getId());
293 
294  res.setMeta(meta);
295 
296  //Set values in order of appearance in FidoDeviceResource class
297  res.setUserId(userId);
298  res.setCreationDate(meta.getCreated());
299  res.setApplication(fidoDevice.getApplication());
300  res.setCounter(fidoDevice.getCounter());
301 
302  res.setDeviceData(fidoDevice.getDeviceData());
303  res.setDeviceHashCode(fidoDevice.getDeviceHashCode());
304  res.setDeviceKeyHandle(fidoDevice.getDeviceKeyHandle());
305  res.setDeviceRegistrationConf(fidoDevice.getDeviceRegistrationConf());
306 
307  res.setLastAccessTime(DateUtil.generalizedToISOStringDate(fidoDevice.getLastAccessTime()));
308  res.setStatus(fidoDevice.getStatus());
309  res.setDisplayName(fidoDevice.getDisplayName());
310  res.setDescription(fidoDevice.getDescription());
311  res.setNickname(fidoDevice.getNickname());
312 
313  }

◆ 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

◆ updateDevice()

Response org.gluu.oxtrust.ws.rs.scim2.FidoDeviceWebService.updateDevice ( FidoDeviceResource  fidoDeviceResource,
@PathParam("id") String  id,
@QueryParam(QUERY_PARAM_ATTRIBUTES) String  attrsList,
@QueryParam(QUERY_PARAM_EXCLUDED_ATTRS) String  excludedAttrsList 
)
inline

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

149  {
150 
151  Response response;
152  try {
153  log.debug("Executing web service method. updateDevice");
154 
155  String userId=fidoDeviceResource.getUserId();
156  GluuCustomFidoDevice device = fidoDeviceService.getGluuCustomFidoDeviceById(userId, id);
157  if (device == null)
158  throw new SCIMException("Resource " + id + " not found");
159 
160  FidoDeviceResource updatedResource=new FidoDeviceResource();
161  transferAttributesToFidoResource(device, updatedResource, endpointUrl, userId);
162 
163  long now = System.currentTimeMillis();
164  updatedResource.getMeta().setLastModified(ISODateTimeFormat.dateTime().withZoneUTC().print(now));
165 
166  updatedResource=(FidoDeviceResource) ScimResourceUtil.transferToResourceReplace(fidoDeviceResource, updatedResource, extService.getResourceExtensions(updatedResource.getClass()));
167  transferAttributesToDevice(updatedResource, device);
168 
170 
171  String json=resourceSerializer.serialize(updatedResource, attrsList, excludedAttrsList);
172  response=Response.ok(new URI(updatedResource.getMeta().getLocation())).entity(json).build();
173  }
174  catch (SCIMException e){
175  log.error(e.getMessage());
176  response=getErrorResponse(Response.Status.NOT_FOUND, ErrorScimType.INVALID_VALUE, e.getMessage());
177  }
178  catch (InvalidAttributeValueException e){
179  log.error(e.getMessage());
180  response=getErrorResponse(Response.Status.BAD_REQUEST, ErrorScimType.MUTABILITY, e.getMessage());
181  }
182  catch (Exception e){
183  log.error("Failure at updateDevice method", e);
184  response=getErrorResponse(Response.Status.INTERNAL_SERVER_ERROR, "Unexpected error: " + e.getMessage());
185  }
186  return response;
187 
188  }
void transferAttributesToFidoResource(GluuCustomFidoDevice fidoDevice, FidoDeviceResource res, String url, String userId)
Definition: FidoDeviceWebService.java:282
ScimResourceSerializer resourceSerializer
Definition: BaseScimWebService.java:62
IFidoDeviceService fidoDeviceService
Definition: FidoDeviceWebService.java:77
void transferAttributesToDevice(FidoDeviceResource res, GluuCustomFidoDevice device)
Definition: FidoDeviceWebService.java:320
String serialize(BaseScimResource resource, String attributes, String exclusions)
Definition: ScimResourceSerializer.java:203
String endpointUrl
Definition: BaseScimWebService.java:69
Logger log
Definition: BaseScimWebService.java:56
List< Extension > getResourceExtensions(Class<? extends BaseScimResource > cls)
Definition: ExtensionService.java:46
GluuCustomFidoDevice getGluuCustomFidoDeviceById(String userId, String id)
void updateGluuCustomFidoDevice(GluuCustomFidoDevice gluuCustomFidoDevice)
static Response getErrorResponse(Response.Status status, String detail)
Definition: BaseScimWebService.java:75
ExtensionService extService
Definition: BaseScimWebService.java:65

メンバ詳解

◆ 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

◆ fidoDeviceService

IFidoDeviceService org.gluu.oxtrust.ws.rs.scim2.FidoDeviceWebService.fidoDeviceService
private

◆ ldapEntryManager

PersistenceEntryManager org.gluu.oxtrust.ws.rs.scim2.FidoDeviceWebService.ldapEntryManager
private

◆ log

Logger org.gluu.oxtrust.ws.rs.scim2.BaseScimWebService.log
packageinherited

◆ personService

IPersonService org.gluu.oxtrust.ws.rs.scim2.FidoDeviceWebService.personService
private

◆ resourceSerializer

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

◆ scimFilterParserService

ScimFilterParserService org.gluu.oxtrust.ws.rs.scim2.FidoDeviceWebService.scimFilterParserService
private

◆ SEARCH_SUFFIX

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

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