You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2019/11/18 07:44:59 UTC

[syncope] branch master updated (c47430d -> 44fead1)

This is an automated email from the ASF dual-hosted git repository.

ilgrosso pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/syncope.git.


    from c47430d  Upgrading Spring Cloud
     new c1b01ff  Upagrading Swagger Core
     new 44fead1  Swagger docs improvements

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../common/rest/api/beans/AbstractQuery.java        |  8 ++++++++
 .../syncope/common/rest/api/beans/AnyQuery.java     | 21 +++++++++++++++++++--
 .../syncope/common/rest/api/beans/TaskQuery.java    | 17 +++++++++++++++--
 .../common/rest/api/service/JAXRSService.java       |  4 ++++
 .../core/rest/cxf/SyncopeOpenApiCustomizer.java     |  8 +++++++-
 .../core/persistence/jpa/entity/user/JPAUser.java   |  2 +-
 .../java/data/AnyObjectDataBinderImpl.java          |  6 +++---
 .../provisioning/java/data/GroupDataBinderImpl.java |  6 ++----
 .../common/rest/api/beans/UserRequestFormQuery.java |  7 ++++++-
 .../common/rest/api/beans/UserRequestQuery.java     |  7 ++++++-
 .../common/rest/api/service/UserRequestService.java |  2 +-
 pom.xml                                             |  2 +-
 12 files changed, 73 insertions(+), 17 deletions(-)


[syncope] 01/02: Upagrading Swagger Core

Posted by il...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ilgrosso pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/syncope.git

commit c1b01ffca10908e4fbbe21edde6c6e0a87935498
Author: Francesco Chicchiriccò <il...@apache.org>
AuthorDate: Mon Nov 18 08:25:12 2019 +0100

    Upagrading Swagger Core
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 273570b..3c64ec2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -453,7 +453,7 @@ under the License.
     <connid.location>file:${bundles.directory}/</connid.location>
     <log.directory>${project.build.directory}/log</log.directory>
 
-    <swagger-core.version>2.0.10</swagger-core.version>    
+    <swagger-core.version>2.1.0</swagger-core.version>    
     <swagger-ui.version>3.24.0</swagger-ui.version>
     <guava.version>20.0</guava.version>
 


[syncope] 02/02: Swagger docs improvements

Posted by il...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ilgrosso pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/syncope.git

commit 44fead1548022bba9589d8136f2c4f8c2af83842
Author: Francesco Chicchiriccò <il...@apache.org>
AuthorDate: Mon Nov 18 08:38:41 2019 +0100

    Swagger docs improvements
---
 .../common/rest/api/beans/AbstractQuery.java        |  8 ++++++++
 .../syncope/common/rest/api/beans/AnyQuery.java     | 21 +++++++++++++++++++--
 .../syncope/common/rest/api/beans/TaskQuery.java    | 17 +++++++++++++++--
 .../common/rest/api/service/JAXRSService.java       |  4 ++++
 .../core/rest/cxf/SyncopeOpenApiCustomizer.java     |  8 +++++++-
 .../core/persistence/jpa/entity/user/JPAUser.java   |  2 +-
 .../java/data/AnyObjectDataBinderImpl.java          |  6 +++---
 .../provisioning/java/data/GroupDataBinderImpl.java |  6 ++----
 .../common/rest/api/beans/UserRequestFormQuery.java |  7 ++++++-
 .../common/rest/api/beans/UserRequestQuery.java     |  7 ++++++-
 .../common/rest/api/service/UserRequestService.java |  2 +-
 11 files changed, 72 insertions(+), 16 deletions(-)

diff --git a/common/idrepo/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/AbstractQuery.java b/common/idrepo/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/AbstractQuery.java
index 771e560..892bf0d 100644
--- a/common/idrepo/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/AbstractQuery.java
+++ b/common/idrepo/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/AbstractQuery.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.beans;
 
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.media.Schema;
 import java.io.Serializable;
 import javax.validation.constraints.Min;
 import javax.ws.rs.DefaultValue;
@@ -70,6 +72,8 @@ public abstract class AbstractQuery implements Serializable {
 
     private String orderBy;
 
+    @Parameter(name = JAXRSService.PARAM_PAGE, description = "page", schema =
+            @Schema(minimum = "1", implementation = Integer.class, defaultValue = "1"))
     public Integer getPage() {
         return page;
     }
@@ -81,6 +85,8 @@ public abstract class AbstractQuery implements Serializable {
         this.page = page;
     }
 
+    @Parameter(name = JAXRSService.PARAM_SIZE, description = "items per page", schema =
+            @Schema(minimum = "1", implementation = Integer.class, defaultValue = "25"))
     public Integer getSize() {
         return size;
     }
@@ -92,6 +98,8 @@ public abstract class AbstractQuery implements Serializable {
         this.size = size;
     }
 
+    @Parameter(name = JAXRSService.PARAM_ORDERBY, description = "sorting conditions", schema =
+            @Schema(implementation = String.class, example = "key DESC"))
     public String getOrderBy() {
         return orderBy;
     }
diff --git a/common/idrepo/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/AnyQuery.java b/common/idrepo/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/AnyQuery.java
index 104efa7..1a9d772 100644
--- a/common/idrepo/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/AnyQuery.java
+++ b/common/idrepo/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/AnyQuery.java
@@ -18,6 +18,9 @@
  */
 package org.apache.syncope.common.rest.api.beans;
 
+import io.swagger.v3.oas.annotations.ExternalDocumentation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.media.Schema;
 import javax.ws.rs.DefaultValue;
 import javax.ws.rs.QueryParam;
 import org.apache.syncope.common.lib.SyncopeConstants;
@@ -59,16 +62,25 @@ public class AnyQuery extends AbstractQuery {
 
     private String fiql;
 
+    @Parameter(name = JAXRSService.PARAM_REALM, description = "realms define a hierarchical security domain tree, "
+            + "primarily meant for containing Users, Groups and Any Objects", schema =
+            @Schema(implementation = String.class, defaultValue = SyncopeConstants.ROOT_REALM, externalDocs =
+                    @ExternalDocumentation(description = "Apache Syncope Reference Guide",
+                            url = "http://syncope.apache.org/docs/2.1/reference-guide.html#realms")))
     public String getRealm() {
         return realm;
     }
 
     @DefaultValue(SyncopeConstants.ROOT_REALM)
-    @QueryParam("realm")
+    @QueryParam(JAXRSService.PARAM_REALM)
     public void setRealm(final String realm) {
         this.realm = realm;
     }
 
+    @Parameter(name = JAXRSService.PARAM_DETAILS, description = "whether detailed information is to be included, "
+            + "if applicable, about virtual attributes, (dynamic) roles, privileges, relationships, "
+            + "(dynamic) memberships or linked accounts", schema =
+            @Schema(implementation = Boolean.class))
     public Boolean getDetails() {
         return Optional.ofNullable(details).orElse(Boolean.TRUE);
     }
@@ -83,9 +95,14 @@ public class AnyQuery extends AbstractQuery {
         return fiql;
     }
 
+    @Parameter(name = JAXRSService.PARAM_FIQL, description = "Feed Item Query Language (FIQL, pronounced “fickle”) is "
+            + "a simple but flexible, URI-friendly syntax for expressing filters across the entries in a syndicated "
+            + "feed.", example = "username==rossini", schema =
+            @Schema(implementation = String.class, externalDocs =
+                    @ExternalDocumentation(description = "Apache Syncope Reference Guide",
+                            url = "http://syncope.apache.org/docs/2.1/reference-guide.html#search")))
     @QueryParam(JAXRSService.PARAM_FIQL)
     public void setFiql(final String fiql) {
         this.fiql = fiql;
     }
-
 }
diff --git a/common/idrepo/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/TaskQuery.java b/common/idrepo/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/TaskQuery.java
index 6b57ac5..22e9e97 100644
--- a/common/idrepo/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/TaskQuery.java
+++ b/common/idrepo/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/TaskQuery.java
@@ -18,7 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.beans;
 
-import javax.validation.constraints.Min;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.media.Schema;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.DefaultValue;
 import javax.ws.rs.PathParam;
@@ -93,6 +94,8 @@ public class TaskQuery extends AbstractQuery {
         this.type = type;
     }
 
+    @Parameter(name = JAXRSService.PARAM_RESOURCE, description = "resource key to match", schema =
+            @Schema(implementation = String.class, example = "resource-ldap"))
     public String getResource() {
         return resource;
     }
@@ -102,6 +105,8 @@ public class TaskQuery extends AbstractQuery {
         this.resource = resource;
     }
 
+    @Parameter(name = JAXRSService.PARAM_NOTIFICATION, description = "notification key to match", schema =
+            @Schema(implementation = String.class, example = "4bf255f1-85a0-43d6-8988-128dad646f08"))
     public String getNotification() {
         return notification;
     }
@@ -111,6 +116,8 @@ public class TaskQuery extends AbstractQuery {
         this.notification = notification;
     }
 
+    @Parameter(name = JAXRSService.PARAM_ANYTYPE_KIND, description = "entity type to match", schema =
+            @Schema(implementation = AnyTypeKind.class))
     public AnyTypeKind getAnyTypeKind() {
         return anyTypeKind;
     }
@@ -120,16 +127,22 @@ public class TaskQuery extends AbstractQuery {
         this.anyTypeKind = anyTypeKind;
     }
 
+    @Parameter(name = JAXRSService.PARAM_ENTITY_KEY, description = "entity key to match", schema =
+            @Schema(implementation = String.class, example = "50592942-73ec-44c4-a377-e859524245e4"))
     public String getEntityKey() {
         return entityKey;
     }
 
-    @Min(1)
+    @Parameter(name = JAXRSService.PARAM_RESOURCE, description = " key", schema =
+            @Schema(implementation = String.class, example = "resource-ldap"))
     @QueryParam(JAXRSService.PARAM_ENTITY_KEY)
     public void setEntityKey(final String entityKey) {
         this.entityKey = entityKey;
     }
 
+    @Parameter(name = JAXRSService.PARAM_DETAILS, description = "whether detailed information about executions is to "
+            + "be included", schema =
+            @Schema(implementation = Boolean.class))
     public Boolean getDetails() {
         return Optional.ofNullable(details).orElse(Boolean.TRUE);
     }
diff --git a/common/idrepo/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/JAXRSService.java b/common/idrepo/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/JAXRSService.java
index f613370..455e208 100644
--- a/common/idrepo/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/JAXRSService.java
+++ b/common/idrepo/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/JAXRSService.java
@@ -36,6 +36,10 @@ public interface JAXRSService {
 
     String PARAM_ENTITY_KEY = "entityKey";
 
+    String PARAM_USER = "user";
+
+    String PARAM_REALM = "realm";
+
     String PARAM_DETAILS = "details";
 
     String PARAM_CONNID_PAGED_RESULTS_COOKIE = "connIdPagedResultsCookie";
diff --git a/core/idrepo/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/SyncopeOpenApiCustomizer.java b/core/idrepo/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/SyncopeOpenApiCustomizer.java
index c0ec487..aeca8c9 100644
--- a/core/idrepo/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/SyncopeOpenApiCustomizer.java
+++ b/core/idrepo/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/SyncopeOpenApiCustomizer.java
@@ -19,6 +19,7 @@
 package org.apache.syncope.core.rest.cxf;
 
 import io.swagger.v3.oas.integration.api.OpenAPIConfiguration;
+import io.swagger.v3.oas.models.ExternalDocumentation;
 import io.swagger.v3.oas.models.Operation;
 import io.swagger.v3.oas.models.headers.Header;
 import io.swagger.v3.oas.models.media.ArraySchema;
@@ -123,8 +124,13 @@ public class SyncopeOpenApiCustomizer extends OpenApiCustomizer {
             parameter.setName(RESTHeaders.DOMAIN);
             parameter.setRequired(true);
 
+            ExternalDocumentation extDoc = new ExternalDocumentation();
+            extDoc.setDescription("Apache Syncope Reference Guide");
+            extDoc.setUrl("http://syncope.apache.org/docs/2.1/reference-guide.html#domains");
+
             Schema<String> schema = new Schema<>();
-            schema.setType("string");
+            schema.setDescription("Domains are built to facilitate multitenancy.");
+            schema.setExternalDocs(extDoc);
             schema.setEnum(domains);
             schema.setDefault(SyncopeConstants.MASTER_DOMAIN);
             parameter.setSchema(schema);
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPAUser.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPAUser.java
index 1a7e075..d1692ed 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPAUser.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPAUser.java
@@ -421,7 +421,7 @@ public class JPAUser
     @Override
     public boolean add(final AnyTypeClass auxClass) {
         checkType(auxClass, JPAAnyTypeClass.class);
-        return auxClasses.contains((JPAAnyTypeClass) auxClass) || this.auxClasses.add((JPAAnyTypeClass) auxClass);
+        return auxClasses.contains((JPAAnyTypeClass) auxClass) || auxClasses.add((JPAAnyTypeClass) auxClass);
     }
 
     @Override
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AnyObjectDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AnyObjectDataBinderImpl.java
index 0c0c730..dd1ef88 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AnyObjectDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AnyObjectDataBinderImpl.java
@@ -96,10 +96,10 @@ public class AnyObjectDataBinderImpl extends AbstractAnyDataBinder implements An
                 anyObjectDAO.findAllResources(anyObject),
                 details);
 
-        if (details) {
-            // dynamic realms
-            anyObjectTO.getDynRealms().addAll(anyObjectDAO.findDynRealms(anyObject.getKey()));
+        // dynamic realms
+        anyObjectTO.getDynRealms().addAll(anyObjectDAO.findDynRealms(anyObject.getKey()));
 
+        if (details) {
             // relationships
             anyObjectTO.getRelationships().addAll(
                     anyObjectDAO.findAllRelationships(anyObject).stream().
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/GroupDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/GroupDataBinderImpl.java
index a5d5486..1473247 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/GroupDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/GroupDataBinderImpl.java
@@ -355,10 +355,8 @@ public class GroupDataBinderImpl extends AbstractAnyDataBinder implements GroupD
                 group.getResources(),
                 details);
 
-        if (details) {
-            // dynamic realms
-            groupTO.getDynRealms().addAll(groupDAO.findDynRealms(group.getKey()));
-        }
+        // dynamic realms
+        groupTO.getDynRealms().addAll(groupDAO.findDynRealms(group.getKey()));
 
         // Static user and AnyType membership counts
         groupTO.setStaticUserMembershipCount(groupDAO.countUMembers(group));
diff --git a/ext/flowable/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/UserRequestFormQuery.java b/ext/flowable/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/UserRequestFormQuery.java
index c4ac3a0..f5a507b 100644
--- a/ext/flowable/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/UserRequestFormQuery.java
+++ b/ext/flowable/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/UserRequestFormQuery.java
@@ -18,7 +18,10 @@
  */
 package org.apache.syncope.common.rest.api.beans;
 
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.media.Schema;
 import javax.ws.rs.QueryParam;
+import org.apache.syncope.common.rest.api.service.JAXRSService;
 
 public class UserRequestFormQuery extends AbstractQuery {
 
@@ -39,11 +42,13 @@ public class UserRequestFormQuery extends AbstractQuery {
 
     private String user;
 
+    @Parameter(name = JAXRSService.PARAM_USER, description = "user to match either by key or username", schema =
+            @Schema(implementation = String.class, example = "50592942-73ec-44c4-a377-e859524245e4"))
     public String getUser() {
         return user;
     }
 
-    @QueryParam("user")
+    @QueryParam(JAXRSService.PARAM_USER)
     public void setUser(final String user) {
         this.user = user;
     }
diff --git a/ext/flowable/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/UserRequestQuery.java b/ext/flowable/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/UserRequestQuery.java
index 3f53629..19e5b72 100644
--- a/ext/flowable/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/UserRequestQuery.java
+++ b/ext/flowable/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/UserRequestQuery.java
@@ -18,7 +18,10 @@
  */
 package org.apache.syncope.common.rest.api.beans;
 
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.media.Schema;
 import javax.ws.rs.QueryParam;
+import org.apache.syncope.common.rest.api.service.JAXRSService;
 
 public class UserRequestQuery extends AbstractQuery {
 
@@ -39,11 +42,13 @@ public class UserRequestQuery extends AbstractQuery {
 
     private String user;
 
+    @Parameter(name = JAXRSService.PARAM_USER, description = "user to match either by key or username", schema =
+            @Schema(implementation = String.class, example = "50592942-73ec-44c4-a377-e859524245e4"))
     public String getUser() {
         return user;
     }
 
-    @QueryParam("user")
+    @QueryParam(JAXRSService.PARAM_USER)
     public void setUser(final String user) {
         this.user = user;
     }
diff --git a/ext/flowable/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserRequestService.java b/ext/flowable/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserRequestService.java
index 5de65a5..b38cd61 100644
--- a/ext/flowable/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserRequestService.java
+++ b/ext/flowable/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserRequestService.java
@@ -74,7 +74,7 @@ public interface UserRequestService extends JAXRSService {
     @Produces({ MediaType.APPLICATION_JSON, RESTHeaders.APPLICATION_YAML, MediaType.APPLICATION_XML })
     UserRequest start(
             @NotNull @PathParam("bpmnProcess") String bpmnProcess,
-            @QueryParam("user") String user);
+            @QueryParam(JAXRSService.PARAM_USER) String user);
 
     /**
      * Cancel a running user request.