View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package org.apache.syncope.ext.scimv2.cxf.service;
20  
21  import java.util.List;
22  import javax.ws.rs.core.Response;
23  import org.apache.syncope.core.logic.GroupLogic;
24  import org.apache.syncope.core.logic.SCIMDataBinder;
25  import org.apache.syncope.core.logic.SCIMLogic;
26  import org.apache.syncope.core.logic.UserLogic;
27  import org.apache.syncope.core.logic.scim.SCIMConfManager;
28  import org.apache.syncope.core.persistence.api.dao.GroupDAO;
29  import org.apache.syncope.core.persistence.api.dao.UserDAO;
30  import org.apache.syncope.ext.scimv2.api.data.ResourceType;
31  import org.apache.syncope.ext.scimv2.api.data.SCIMResource;
32  import org.apache.syncope.ext.scimv2.api.data.ServiceProviderConfig;
33  import org.apache.syncope.ext.scimv2.api.service.SCIMService;
34  
35  public class SCIMServiceImpl extends AbstractSCIMService<SCIMResource> implements SCIMService {
36  
37      protected final SCIMLogic scimLogic;
38  
39      public SCIMServiceImpl(
40              final UserDAO userDAO,
41              final GroupDAO groupDAO,
42              final UserLogic userLogic,
43              final GroupLogic groupLogic,
44              final SCIMDataBinder binder,
45              final SCIMConfManager confManager,
46              final SCIMLogic scimLogic) {
47  
48          super(userDAO, groupDAO, userLogic, groupLogic, binder, confManager);
49          this.scimLogic = scimLogic;
50      }
51  
52      @Override
53      public ServiceProviderConfig serviceProviderConfig() {
54          return scimLogic.serviceProviderConfig(uriInfo.getAbsolutePathBuilder());
55      }
56  
57      @Override
58      public List<ResourceType> resourceTypes() {
59          return SCIMLogic.resourceTypes(uriInfo.getAbsolutePathBuilder());
60      }
61  
62      @Override
63      public ResourceType resourceType(final String type) {
64          return SCIMLogic.resourceType(uriInfo.getAbsolutePathBuilder(), type);
65      }
66  
67      @Override
68      public Response schemas() {
69          return Response.ok(scimLogic.schemas()).build();
70      }
71  
72      @Override
73      public Response schema(final String schema) {
74          return Response.ok(scimLogic.schema(schema)).build();
75      }
76  }