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 2018/01/26 13:04:14 UTC

[1/2] syncope git commit: [SYNCOPE-1262] Adding authorizations

Repository: syncope
Updated Branches:
  refs/heads/2_0_X 3bf402797 -> 28425614e
  refs/heads/master 90ef36741 -> 48cc9d6ac


[SYNCOPE-1262] Adding authorizations


Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/28425614
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/28425614
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/28425614

Branch: refs/heads/2_0_X
Commit: 28425614ebaee25e1235923e1a0dbff2ea88d83c
Parents: 3bf4027
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Fri Jan 26 13:56:33 2018 +0100
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Fri Jan 26 13:56:33 2018 +0100

----------------------------------------------------------------------
 common/rest-api/pom.xml                         |  5 +++++
 .../rest/api/service/AccessTokenService.java    | 16 ++++++++++++++
 .../rest/api/service/AnyObjectService.java      |  5 +++++
 .../rest/api/service/AnyTypeClassService.java   |  5 +++++
 .../common/rest/api/service/AnyTypeService.java |  5 +++++
 .../rest/api/service/ConfigurationService.java  |  5 +++++
 .../api/service/ConnectorHistoryService.java    |  5 +++++
 .../rest/api/service/ConnectorService.java      |  5 +++++
 .../common/rest/api/service/DomainService.java  |  5 +++++
 .../rest/api/service/DynRealmService.java       |  5 +++++
 .../common/rest/api/service/GroupService.java   |  5 +++++
 .../common/rest/api/service/LoggerService.java  |  5 +++++
 .../rest/api/service/MailTemplateService.java   |  5 +++++
 .../rest/api/service/NotificationService.java   |  6 ++++++
 .../common/rest/api/service/PolicyService.java  |  5 +++++
 .../common/rest/api/service/RealmService.java   |  5 +++++
 .../api/service/RelationshipTypeService.java    |  5 +++++
 .../common/rest/api/service/ReportService.java  |  5 +++++
 .../rest/api/service/ReportTemplateService.java |  5 +++++
 .../api/service/ResourceHistoryService.java     |  5 +++++
 .../rest/api/service/ResourceService.java       |  5 +++++
 .../common/rest/api/service/RoleService.java    |  5 +++++
 .../common/rest/api/service/SchemaService.java  |  5 +++++
 .../api/service/SecurityQuestionService.java    |  5 +++++
 .../common/rest/api/service/SyncopeService.java |  5 +++++
 .../common/rest/api/service/TaskService.java    |  5 +++++
 .../rest/api/service/UserSelfService.java       | 22 ++++++++++++++++++++
 .../common/rest/api/service/UserService.java    |  5 +++++
 .../rest/api/service/UserWorkflowService.java   |  5 +++++
 .../rest/api/service/WorkflowService.java       |  5 +++++
 .../src/main/resources/restCXFContext.xml       | 14 ++++++++++++-
 .../rest/api/service/CamelRouteService.java     |  5 +++++
 .../rest/api/service/SAML2IdPService.java       |  5 +++++
 .../common/rest/api/service/SAML2SPService.java |  5 +++++
 .../rest/api/service/SCIMConfService.java       |  5 +++++
 .../META-INF/resources/swagger/index.html       |  2 +-
 .../src/main/resources/jboss/restCXFContext.xml | 14 ++++++++++++-
 pom.xml                                         |  5 +++++
 38 files changed, 231 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/syncope/blob/28425614/common/rest-api/pom.xml
----------------------------------------------------------------------
diff --git a/common/rest-api/pom.xml b/common/rest-api/pom.xml
index a76dc16..4c7ed38 100644
--- a/common/rest-api/pom.xml
+++ b/common/rest-api/pom.xml
@@ -49,6 +49,11 @@ under the License.
     </dependency>
     
     <dependency>
+      <groupId>io.swagger</groupId>
+      <artifactId>swagger-annotations</artifactId>
+    </dependency>      
+
+    <dependency>
       <groupId>org.apache.syncope.common</groupId>
       <artifactId>syncope-common-lib</artifactId>
       <version>${project.version}</version>

http://git-wip-us.apache.org/repos/asf/syncope/blob/28425614/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AccessTokenService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AccessTokenService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AccessTokenService.java
index c66b7f3..4b2fc5c 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AccessTokenService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AccessTokenService.java
@@ -18,6 +18,9 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.Authorization;
 import javax.ws.rs.BeanParam;
 import javax.ws.rs.DELETE;
 import javax.ws.rs.GET;
@@ -32,6 +35,7 @@ import org.apache.syncope.common.rest.api.beans.AccessTokenQuery;
 /**
  * REST operations for access tokens.
  */
+@Api(tags = "AccessTokens")
 @Path("accessTokens")
 public interface AccessTokenService extends JAXRSService {
 
@@ -41,6 +45,8 @@ public interface AccessTokenService extends JAXRSService {
      *
      * @return empty response bearing the X-Syncope-Token header value, in case of successful authentication
      */
+    @ApiOperation(value = "", authorizations = {
+        @Authorization(value = "BasicAuthentication") })
     @POST
     @Path("login")
     Response login();
@@ -51,6 +57,8 @@ public interface AccessTokenService extends JAXRSService {
      *
      * @return an empty response bearing the X-Syncope-Token header value, with extended lifetime
      */
+    @ApiOperation(value = "", authorizations = {
+        @Authorization(value = "Bearer") })
     @POST
     @Path("refresh")
     Response refresh();
@@ -60,6 +68,8 @@ public interface AccessTokenService extends JAXRSService {
      *
      * @return an empty response if operation was successful
      */
+    @ApiOperation(value = "", authorizations = {
+        @Authorization(value = "Bearer") })
     @POST
     @Path("logout")
     Response logout();
@@ -70,6 +80,9 @@ public interface AccessTokenService extends JAXRSService {
      * @param query query conditions
      * @return paged list of existing access tokens matching the given query
      */
+    @ApiOperation(value = "", authorizations = {
+        @Authorization(value = "BasicAuthentication")
+        , @Authorization(value = "Bearer") })
     @GET
     PagedResult<AccessTokenTO> list(@BeanParam AccessTokenQuery query);
 
@@ -79,6 +92,9 @@ public interface AccessTokenService extends JAXRSService {
      * @param key access token key
      * @return an empty response if operation was successful
      */
+    @ApiOperation(value = "", authorizations = {
+        @Authorization(value = "BasicAuthentication")
+        , @Authorization(value = "Bearer") })
     @DELETE
     @Path("{key}")
     Response delete(@PathParam("key") String key);

http://git-wip-us.apache.org/repos/asf/syncope/blob/28425614/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyObjectService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyObjectService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyObjectService.java
index 144fcf2..ac88bab 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyObjectService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyObjectService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.POST;
@@ -33,6 +35,9 @@ import org.apache.syncope.common.lib.to.AnyObjectTO;
 /**
  * REST operations for anyObjects.
  */
+@Api(tags = "AnyObjects", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("anyObjects")
 public interface AnyObjectService extends AnyService<AnyObjectTO> {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/28425614/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeClassService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeClassService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeClassService.java
index 74846a1..311ea9c 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeClassService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeClassService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.util.List;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.Consumes;
@@ -35,6 +37,9 @@ import org.apache.syncope.common.lib.to.AnyTypeClassTO;
 /**
  * REST operations for any type classes.
  */
+@Api(tags = "AnyTypeClasses", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("anyTypeClasses")
 public interface AnyTypeClassService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/28425614/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeService.java
index 667009c..836889f 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.util.List;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.Consumes;
@@ -35,6 +37,9 @@ import org.apache.syncope.common.lib.to.AnyTypeTO;
 /**
  * REST operations for any types.
  */
+@Api(tags = "AnyTypes", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("anyTypes")
 public interface AnyTypeService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/28425614/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConfigurationService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConfigurationService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConfigurationService.java
index add8bd2..aba2f44 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConfigurationService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConfigurationService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.util.List;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.Consumes;
@@ -34,6 +36,9 @@ import org.apache.syncope.common.lib.to.AttrTO;
 /**
  * REST operations for configuration.
  */
+@Api(tags = "Configuration", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("configurations")
 public interface ConfigurationService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/28425614/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConnectorHistoryService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConnectorHistoryService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConnectorHistoryService.java
index f7f0466..26dc7fd 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConnectorHistoryService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConnectorHistoryService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.util.List;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.DELETE;
@@ -33,6 +35,9 @@ import org.apache.syncope.common.lib.to.ConnInstanceHistoryConfTO;
 /**
  * REST operations for connector configuration versioning.
  */
+@Api(tags = "ConnectorHistory", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("connectorsHistory")
 public interface ConnectorHistoryService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/28425614/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConnectorService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConnectorService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConnectorService.java
index 4a1adfe..f78f4a9 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConnectorService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConnectorService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.util.List;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.Consumes;
@@ -39,6 +41,9 @@ import org.apache.syncope.common.lib.to.ConnInstanceTO;
 /**
  * REST operations for connector bundles and instances.
  */
+@Api(tags = "Connectors", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("connectors")
 public interface ConnectorService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/28425614/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DomainService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DomainService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DomainService.java
index 2e343b9..b8592c8 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DomainService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DomainService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.util.List;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.Consumes;
@@ -35,6 +37,9 @@ import org.apache.syncope.common.lib.to.DomainTO;
 /**
  * REST operations for domains.
  */
+@Api(tags = "Domains", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("domains")
 public interface DomainService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/28425614/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DynRealmService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DynRealmService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DynRealmService.java
index 1ebea81..9b55494 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DynRealmService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DynRealmService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.util.List;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.Consumes;
@@ -35,6 +37,9 @@ import org.apache.syncope.common.lib.to.DynRealmTO;
 /**
  * REST operations for dynamic realms.
  */
+@Api(tags = "DynamicRealms", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("dynRealms")
 public interface DynRealmService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/28425614/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/GroupService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/GroupService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/GroupService.java
index c060bdb..bf3e3d3 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/GroupService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/GroupService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.util.List;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.Consumes;
@@ -38,6 +40,9 @@ import org.apache.syncope.common.lib.types.BulkMembersActionType;
 /**
  * REST operations for groups.
  */
+@Api(tags = "Groups", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("groups")
 public interface GroupService extends AnyService<GroupTO> {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/28425614/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/LoggerService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/LoggerService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/LoggerService.java
index b1d889c..23e8207 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/LoggerService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/LoggerService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.util.List;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.Consumes;
@@ -38,6 +40,9 @@ import org.apache.syncope.common.lib.types.LoggerType;
 /**
  * REST operations for logging and auditing.
  */
+@Api(tags = "Loggers", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("loggers")
 public interface LoggerService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/28425614/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/MailTemplateService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/MailTemplateService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/MailTemplateService.java
index 1cd8e73..20f87d1 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/MailTemplateService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/MailTemplateService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.io.InputStream;
 import java.util.List;
 import javax.validation.constraints.NotNull;
@@ -37,6 +39,9 @@ import org.apache.syncope.common.lib.types.MailTemplateFormat;
 /**
  * REST operations for mail templates.
  */
+@Api(tags = "MailTemplates", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("mailTemplates")
 public interface MailTemplateService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/28425614/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/NotificationService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/NotificationService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/NotificationService.java
index 458ae63..ba0f4c8 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/NotificationService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/NotificationService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.util.List;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.Consumes;
@@ -38,6 +40,10 @@ import org.apache.syncope.common.lib.types.JobAction;
 /**
  * REST operations for notifications.
  */
+@Api(tags = "Notifications", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
+
 @Path("notifications")
 public interface NotificationService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/28425614/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/PolicyService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/PolicyService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/PolicyService.java
index 7c62196..082446a 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/PolicyService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/PolicyService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.util.List;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.Consumes;
@@ -37,6 +39,9 @@ import org.apache.syncope.common.lib.types.PolicyType;
 /**
  * REST operations for policies.
  */
+@Api(tags = "Policies", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("policies")
 public interface PolicyService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/28425614/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RealmService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RealmService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RealmService.java
index f096082..a178531 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RealmService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RealmService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.util.List;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.Consumes;
@@ -35,6 +37,9 @@ import org.apache.syncope.common.lib.to.RealmTO;
 /**
  * REST operations for realms.
  */
+@Api(tags = "Realms", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("realms")
 public interface RealmService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/28425614/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RelationshipTypeService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RelationshipTypeService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RelationshipTypeService.java
index dfd516f..74b5ae6 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RelationshipTypeService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RelationshipTypeService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.util.List;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.Consumes;
@@ -35,6 +37,9 @@ import org.apache.syncope.common.lib.to.RelationshipTypeTO;
 /**
  * REST operations for relationship types.
  */
+@Api(tags = "RelationshipTypes", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("relationshipTypes")
 public interface RelationshipTypeService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/28425614/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ReportService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ReportService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ReportService.java
index 4db9321..b2a91f1 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ReportService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ReportService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.util.List;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.Consumes;
@@ -37,6 +39,9 @@ import org.apache.syncope.common.lib.types.ReportExecExportFormat;
 /**
  * REST operations for reports.
  */
+@Api(tags = "Reports", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("reports")
 public interface ReportService extends ExecutableService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/28425614/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ReportTemplateService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ReportTemplateService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ReportTemplateService.java
index 6bfb151..247bece 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ReportTemplateService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ReportTemplateService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.io.InputStream;
 import java.util.List;
 import javax.validation.constraints.NotNull;
@@ -37,6 +39,9 @@ import org.apache.syncope.common.lib.types.ReportTemplateFormat;
 /**
  * REST operations for report templates.
  */
+@Api(tags = "ReportTemplates", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("reportTemplates")
 public interface ReportTemplateService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/28425614/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ResourceHistoryService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ResourceHistoryService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ResourceHistoryService.java
index 67c8d58..30dd523 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ResourceHistoryService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ResourceHistoryService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.util.List;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.DELETE;
@@ -33,6 +35,9 @@ import org.apache.syncope.common.lib.to.ResourceHistoryConfTO;
 /**
  * REST operations for resource configuration versioning.
  */
+@Api(tags = "ResourceHistory", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("resourcesHistory")
 public interface ResourceHistoryService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/28425614/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ResourceService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ResourceService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ResourceService.java
index e6adc5a..bb7cbb9 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ResourceService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ResourceService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.util.List;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.BeanParam;
@@ -41,6 +43,9 @@ import org.apache.syncope.common.rest.api.beans.ConnObjectTOListQuery;
 /**
  * REST operations for external resources.
  */
+@Api(tags = "Resources", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("resources")
 public interface ResourceService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/28425614/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RoleService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RoleService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RoleService.java
index 557db76..0c961ee 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RoleService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RoleService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.io.InputStream;
 import java.util.List;
 import javax.validation.constraints.NotNull;
@@ -36,6 +38,9 @@ import org.apache.syncope.common.lib.to.RoleTO;
 /**
  * REST operations for roles.
  */
+@Api(tags = "Roles", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("roles")
 public interface RoleService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/28425614/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SchemaService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SchemaService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SchemaService.java
index 51403bd..d60d1b2 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SchemaService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SchemaService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.util.List;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.BeanParam;
@@ -38,6 +40,9 @@ import org.apache.syncope.common.rest.api.beans.SchemaQuery;
 /**
  * REST operations for attribute schemas.
  */
+@Api(tags = "Schemas", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("schemas")
 public interface SchemaService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/28425614/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SecurityQuestionService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SecurityQuestionService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SecurityQuestionService.java
index 9b43250..2d5b86e 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SecurityQuestionService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SecurityQuestionService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.util.List;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.Consumes;
@@ -35,6 +37,9 @@ import org.apache.syncope.common.lib.to.SecurityQuestionTO;
 /**
  * REST operations for configuration.
  */
+@Api(tags = "SecurityQuestions", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("securityQuestions")
 public interface SecurityQuestionService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/28425614/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SyncopeService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SyncopeService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SyncopeService.java
index e781964..53d4bec 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SyncopeService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SyncopeService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import javax.validation.constraints.Min;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.DefaultValue;
@@ -38,6 +40,9 @@ import org.apache.syncope.common.lib.to.TypeExtensionTO;
 /**
  * General info about this Apache Syncope deployment.
  */
+@Api(tags = "Syncope", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("")
 public interface SyncopeService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/28425614/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/TaskService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/TaskService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/TaskService.java
index 205e6cd..dac39bb 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/TaskService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/TaskService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.BeanParam;
 import javax.ws.rs.Consumes;
@@ -42,6 +44,9 @@ import org.apache.syncope.common.rest.api.beans.TaskQuery;
 /**
  * REST operations for tasks.
  */
+@Api(tags = "Tasks", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("tasks")
 public interface TaskService extends ExecutableService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/28425614/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserSelfService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserSelfService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserSelfService.java
index 397217d..df6014c 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserSelfService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserSelfService.java
@@ -18,6 +18,9 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.Authorization;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.DELETE;
@@ -38,6 +41,7 @@ import org.apache.syncope.common.lib.to.UserTO;
 /**
  * REST operations for user self-management.
  */
+@Api(tags = "UserSelf")
 @Path("users/self")
 public interface UserSelfService extends JAXRSService {
 
@@ -47,6 +51,9 @@ public interface UserSelfService extends JAXRSService {
      * @return calling user data, including owned entitlements as header value
      * {@link org.apache.syncope.common.rest.api.RESTHeaders#OWNED_ENTITLEMENTS}
      */
+    @ApiOperation(value = "", authorizations = {
+        @Authorization(value = "BasicAuthentication")
+        , @Authorization(value = "Bearer") })
     @GET
     @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
     Response read();
@@ -71,6 +78,9 @@ public interface UserSelfService extends JAXRSService {
      * @param patch modification to be applied to self
      * @return Response object featuring the updated user - ProvisioningResult as Entity
      */
+    @ApiOperation(value = "", authorizations = {
+        @Authorization(value = "BasicAuthentication")
+        , @Authorization(value = "Bearer") })
     @PATCH
     @Path("{key}")
     @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
@@ -83,6 +93,9 @@ public interface UserSelfService extends JAXRSService {
      * @param user complete update
      * @return Response object featuring the updated user - ProvisioningResult as Entity
      */
+    @ApiOperation(value = "", authorizations = {
+        @Authorization(value = "BasicAuthentication")
+        , @Authorization(value = "Bearer") })
     @PUT
     @Path("{key}")
     @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
@@ -96,6 +109,9 @@ public interface UserSelfService extends JAXRSService {
      * @return Response object featuring the updated user enriched with propagation status information
      * - ProvisioningResult as Entity
      */
+    @ApiOperation(value = "", authorizations = {
+        @Authorization(value = "BasicAuthentication")
+        , @Authorization(value = "Bearer") })
     @POST
     @Path("{key}/status")
     @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
@@ -107,6 +123,9 @@ public interface UserSelfService extends JAXRSService {
      *
      * @return Response object featuring the deleted user - ProvisioningResult as Entity
      */
+    @ApiOperation(value = "", authorizations = {
+        @Authorization(value = "BasicAuthentication")
+        , @Authorization(value = "Bearer") })
     @DELETE
     @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
     Response delete();
@@ -118,6 +137,9 @@ public interface UserSelfService extends JAXRSService {
      *
      * @return Response object featuring the updated user - ProvisioningResult as Entity
      */
+    @ApiOperation(value = "", authorizations = {
+        @Authorization(value = "BasicAuthentication")
+        , @Authorization(value = "Bearer") })
     @POST
     @Path("changePassword")
     @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })

http://git-wip-us.apache.org/repos/asf/syncope/blob/28425614/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserService.java
index 310e631..7b4a11d 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.DefaultValue;
@@ -36,6 +38,9 @@ import org.apache.syncope.common.lib.to.UserTO;
 /**
  * REST operations for users.
  */
+@Api(tags = "Users", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("users")
 public interface UserService extends AnyService<UserTO> {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/28425614/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserWorkflowService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserWorkflowService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserWorkflowService.java
index a4ecc46..e1e7960 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserWorkflowService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserWorkflowService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.util.List;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.Consumes;
@@ -33,6 +35,9 @@ import org.apache.syncope.common.lib.to.WorkflowFormTO;
 /**
  * REST operations related to user workflow.
  */
+@Api(tags = "UserWorkflow", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("userworkflow")
 public interface UserWorkflowService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/28425614/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/WorkflowService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/WorkflowService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/WorkflowService.java
index fcd6751..1a81c92 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/WorkflowService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/WorkflowService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.util.List;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.Consumes;
@@ -35,6 +37,9 @@ import org.apache.syncope.common.rest.api.RESTHeaders;
 /**
  * REST operations for workflow definition.
  */
+@Api(tags = "Workflow", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("workflows")
 public interface WorkflowService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/28425614/core/rest-cxf/src/main/resources/restCXFContext.xml
----------------------------------------------------------------------
diff --git a/core/rest-cxf/src/main/resources/restCXFContext.xml b/core/rest-cxf/src/main/resources/restCXFContext.xml
index d29bc3b..a3637c7 100644
--- a/core/rest-cxf/src/main/resources/restCXFContext.xml
+++ b/core/rest-cxf/src/main/resources/restCXFContext.xml
@@ -97,9 +97,14 @@ under the License.
     <property name="usePathParamsToCompareOperations" value="false"/>
   </bean>
   
+  <bean id="basicAuth" class="io.swagger.models.auth.BasicAuthDefinition"/>
+  <bean id="bearer" class="io.swagger.models.auth.ApiKeyAuthDefinition">
+    <property name="name" value="Authorization"/>
+    <property name="in" value="HEADER"/>
+  </bean>
   <bean id="swagger2customizer" class="org.apache.syncope.core.rest.cxf.SyncopeSwagger2Customizer">
     <property name="dynamicBasePath" value="true"/>
-    <property name="replaceTags" value="true"/>
+    <property name="replaceTags" value="false"/>
   </bean>
   <bean id="swagger2Feature" class="org.apache.cxf.jaxrs.swagger.Swagger2Feature">
     <property name="title" value="Apache Syncope"/>
@@ -112,6 +117,13 @@ under the License.
     <property name="activateOnlyIfJaxrsSupported" value="true"/>
 
     <property name="customizer" ref="swagger2customizer"/>
+    
+    <property name="securityDefinitions">
+      <map>
+        <entry key="BasicAuthentication" value-ref="basicAuth"/>
+        <entry key="Bearer" value-ref="bearer"/>
+      </map>
+    </property>
   </bean>
   <bean id="sw2OpenAPI" class="org.apache.cxf.jaxrs.swagger.openapi.SwaggerToOpenApiConversionFilter"/>
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/28425614/ext/camel/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/CamelRouteService.java
----------------------------------------------------------------------
diff --git a/ext/camel/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/CamelRouteService.java b/ext/camel/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/CamelRouteService.java
index e576b52..4450208 100644
--- a/ext/camel/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/CamelRouteService.java
+++ b/ext/camel/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/CamelRouteService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.util.List;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.Consumes;
@@ -37,6 +39,9 @@ import org.apache.syncope.common.lib.types.AnyTypeKind;
 /**
  * REST operations for Camel routes.
  */
+@Api(tags = "CamelRoutes", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("camelRoutes")
 public interface CamelRouteService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/28425614/ext/saml2sp/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SAML2IdPService.java
----------------------------------------------------------------------
diff --git a/ext/saml2sp/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SAML2IdPService.java b/ext/saml2sp/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SAML2IdPService.java
index e273676..fa5b5f3 100644
--- a/ext/saml2sp/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SAML2IdPService.java
+++ b/ext/saml2sp/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SAML2IdPService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.io.InputStream;
 import java.util.List;
 import java.util.Set;
@@ -37,6 +39,9 @@ import org.apache.syncope.common.lib.to.SAML2IdPTO;
 /**
  * REST operations for SAML 2.0 Identity Providers.
  */
+@Api(tags = "SAML2IdP", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("saml2sp/identityProviders")
 public interface SAML2IdPService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/28425614/ext/saml2sp/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SAML2SPService.java
----------------------------------------------------------------------
diff --git a/ext/saml2sp/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SAML2SPService.java b/ext/saml2sp/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SAML2SPService.java
index ed964d6..e67cc0b 100644
--- a/ext/saml2sp/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SAML2SPService.java
+++ b/ext/saml2sp/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SAML2SPService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.GET;
 import javax.ws.rs.POST;
@@ -33,6 +35,9 @@ import org.apache.syncope.common.lib.to.SAML2ReceivedResponseTO;
 /**
  * REST operations for the provided SAML 2.0 Service Provider.
  */
+@Api(tags = "SAML2SP", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("saml2sp/serviceProvider")
 public interface SAML2SPService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/28425614/ext/scimv2/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SCIMConfService.java
----------------------------------------------------------------------
diff --git a/ext/scimv2/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SCIMConfService.java b/ext/scimv2/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SCIMConfService.java
index 1efad9a..e877f2d 100644
--- a/ext/scimv2/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SCIMConfService.java
+++ b/ext/scimv2/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SCIMConfService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.GET;
@@ -31,6 +33,9 @@ import org.apache.syncope.common.lib.scim.SCIMConf;
 /**
  * REST operations for SCIM 2.0 configuration.
  */
+@Api(tags = "SCIMConf", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("scimv2conf")
 public interface SCIMConfService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/28425614/ext/swagger-ui/src/main/resources/META-INF/resources/swagger/index.html
----------------------------------------------------------------------
diff --git a/ext/swagger-ui/src/main/resources/META-INF/resources/swagger/index.html b/ext/swagger-ui/src/main/resources/META-INF/resources/swagger/index.html
index a3d3cb3..075e2c6 100644
--- a/ext/swagger-ui/src/main/resources/META-INF/resources/swagger/index.html
+++ b/ext/swagger-ui/src/main/resources/META-INF/resources/swagger/index.html
@@ -104,7 +104,7 @@ window.onload = function() {
       name: "Apache Syncope"
     }],
     docExpansion: 'none',
-    displayOperationId: true,
+    displayOperationId: false,
     operationsSorter: 'alpha',
     tagSorter: 'alpha',
     // </ApacheSyncope>

http://git-wip-us.apache.org/repos/asf/syncope/blob/28425614/fit/core-reference/src/main/resources/jboss/restCXFContext.xml
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/main/resources/jboss/restCXFContext.xml b/fit/core-reference/src/main/resources/jboss/restCXFContext.xml
index a59cbd6..ebeba58 100644
--- a/fit/core-reference/src/main/resources/jboss/restCXFContext.xml
+++ b/fit/core-reference/src/main/resources/jboss/restCXFContext.xml
@@ -103,7 +103,12 @@ under the License.
       </list>
     </property>
   </bean>
-  
+
+  <bean id="basicAuth" class="io.swagger.models.auth.BasicAuthDefinition"/>
+  <bean id="bearer" class="io.swagger.models.auth.ApiKeyAuthDefinition">
+    <property name="name" value="Authorization"/>
+    <property name="in" value="HEADER"/>
+  </bean>
   <bean id="swagger2customizer" class="org.apache.syncope.core.rest.cxf.SyncopeSwagger2Customizer">
     <property name="dynamicBasePath" value="true"/>
     <property name="replaceTags" value="true"/>
@@ -126,6 +131,13 @@ under the License.
     <property name="activateOnlyIfJaxrsSupported" value="true"/>
     
     <property name="customizer" ref="swagger2customizer"/>
+
+    <property name="securityDefinitions">
+      <map>
+        <entry key="BasicAuthentication" value-ref="basicAuth"/>
+        <entry key="Bearer" value-ref="bearer"/>
+      </map>
+    </property>
   </bean>
 
   <jaxrs:server id="restContainer" address="/"

http://git-wip-us.apache.org/repos/asf/syncope/blob/28425614/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 422b281..5d8d5f1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -635,6 +635,11 @@ under the License.
       <!-- Swagger -->      
       <dependency>
         <groupId>io.swagger</groupId>
+        <artifactId>swagger-annotations</artifactId>
+        <version>${swagger-core.version}</version>
+      </dependency>      
+      <dependency>
+        <groupId>io.swagger</groupId>
         <artifactId>swagger-jaxrs</artifactId>
         <version>${swagger-core.version}</version>
         <exclusions>


[2/2] syncope git commit: [SYNCOPE-1262] Adding authorizations

Posted by il...@apache.org.
[SYNCOPE-1262] Adding authorizations


Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/48cc9d6a
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/48cc9d6a
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/48cc9d6a

Branch: refs/heads/master
Commit: 48cc9d6acda6bc28fdfca1a73a3d4f8df2e4460a
Parents: 90ef367
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Fri Jan 26 13:56:33 2018 +0100
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Fri Jan 26 14:04:06 2018 +0100

----------------------------------------------------------------------
 common/rest-api/pom.xml                         |  5 +++++
 .../rest/api/service/AccessTokenService.java    | 16 ++++++++++++++
 .../rest/api/service/AnyObjectService.java      |  5 +++++
 .../rest/api/service/AnyTypeClassService.java   |  5 +++++
 .../common/rest/api/service/AnyTypeService.java |  5 +++++
 .../rest/api/service/ConfigurationService.java  |  5 +++++
 .../api/service/ConnectorHistoryService.java    |  5 +++++
 .../rest/api/service/ConnectorService.java      |  5 +++++
 .../common/rest/api/service/DomainService.java  |  5 +++++
 .../rest/api/service/DynRealmService.java       |  5 +++++
 .../common/rest/api/service/GroupService.java   |  5 +++++
 .../rest/api/service/ImplementationService.java |  5 +++++
 .../common/rest/api/service/LoggerService.java  |  5 +++++
 .../rest/api/service/MailTemplateService.java   |  5 +++++
 .../rest/api/service/NotificationService.java   |  6 ++++++
 .../common/rest/api/service/PolicyService.java  |  5 +++++
 .../common/rest/api/service/RealmService.java   |  5 +++++
 .../api/service/RelationshipTypeService.java    |  5 +++++
 .../common/rest/api/service/ReportService.java  |  5 +++++
 .../rest/api/service/ReportTemplateService.java |  5 +++++
 .../api/service/ResourceHistoryService.java     |  5 +++++
 .../rest/api/service/ResourceService.java       |  5 +++++
 .../common/rest/api/service/RoleService.java    |  5 +++++
 .../common/rest/api/service/SchemaService.java  |  5 +++++
 .../api/service/SecurityQuestionService.java    |  5 +++++
 .../common/rest/api/service/SyncopeService.java |  5 +++++
 .../common/rest/api/service/TaskService.java    |  5 +++++
 .../rest/api/service/UserSelfService.java       | 22 ++++++++++++++++++++
 .../common/rest/api/service/UserService.java    |  5 +++++
 .../rest/api/service/UserWorkflowService.java   |  5 +++++
 .../rest/api/service/WorkflowService.java       |  5 +++++
 .../src/main/resources/restCXFContext.xml       | 14 ++++++++++++-
 .../rest/api/service/CamelRouteService.java     |  5 +++++
 .../rest/api/service/SAML2IdPService.java       |  5 +++++
 .../common/rest/api/service/SAML2SPService.java |  5 +++++
 .../rest/api/service/SCIMConfService.java       |  5 +++++
 .../META-INF/resources/swagger/index.html       |  2 +-
 .../src/main/resources/jboss/restCXFContext.xml | 14 ++++++++++++-
 pom.xml                                         |  5 +++++
 39 files changed, 236 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/syncope/blob/48cc9d6a/common/rest-api/pom.xml
----------------------------------------------------------------------
diff --git a/common/rest-api/pom.xml b/common/rest-api/pom.xml
index 482e881..7f848b7 100644
--- a/common/rest-api/pom.xml
+++ b/common/rest-api/pom.xml
@@ -49,6 +49,11 @@ under the License.
     </dependency>
     
     <dependency>
+      <groupId>io.swagger</groupId>
+      <artifactId>swagger-annotations</artifactId>
+    </dependency>      
+
+    <dependency>
       <groupId>org.apache.syncope.common</groupId>
       <artifactId>syncope-common-lib</artifactId>
       <version>${project.version}</version>

http://git-wip-us.apache.org/repos/asf/syncope/blob/48cc9d6a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AccessTokenService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AccessTokenService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AccessTokenService.java
index c66b7f3..4b2fc5c 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AccessTokenService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AccessTokenService.java
@@ -18,6 +18,9 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.Authorization;
 import javax.ws.rs.BeanParam;
 import javax.ws.rs.DELETE;
 import javax.ws.rs.GET;
@@ -32,6 +35,7 @@ import org.apache.syncope.common.rest.api.beans.AccessTokenQuery;
 /**
  * REST operations for access tokens.
  */
+@Api(tags = "AccessTokens")
 @Path("accessTokens")
 public interface AccessTokenService extends JAXRSService {
 
@@ -41,6 +45,8 @@ public interface AccessTokenService extends JAXRSService {
      *
      * @return empty response bearing the X-Syncope-Token header value, in case of successful authentication
      */
+    @ApiOperation(value = "", authorizations = {
+        @Authorization(value = "BasicAuthentication") })
     @POST
     @Path("login")
     Response login();
@@ -51,6 +57,8 @@ public interface AccessTokenService extends JAXRSService {
      *
      * @return an empty response bearing the X-Syncope-Token header value, with extended lifetime
      */
+    @ApiOperation(value = "", authorizations = {
+        @Authorization(value = "Bearer") })
     @POST
     @Path("refresh")
     Response refresh();
@@ -60,6 +68,8 @@ public interface AccessTokenService extends JAXRSService {
      *
      * @return an empty response if operation was successful
      */
+    @ApiOperation(value = "", authorizations = {
+        @Authorization(value = "Bearer") })
     @POST
     @Path("logout")
     Response logout();
@@ -70,6 +80,9 @@ public interface AccessTokenService extends JAXRSService {
      * @param query query conditions
      * @return paged list of existing access tokens matching the given query
      */
+    @ApiOperation(value = "", authorizations = {
+        @Authorization(value = "BasicAuthentication")
+        , @Authorization(value = "Bearer") })
     @GET
     PagedResult<AccessTokenTO> list(@BeanParam AccessTokenQuery query);
 
@@ -79,6 +92,9 @@ public interface AccessTokenService extends JAXRSService {
      * @param key access token key
      * @return an empty response if operation was successful
      */
+    @ApiOperation(value = "", authorizations = {
+        @Authorization(value = "BasicAuthentication")
+        , @Authorization(value = "Bearer") })
     @DELETE
     @Path("{key}")
     Response delete(@PathParam("key") String key);

http://git-wip-us.apache.org/repos/asf/syncope/blob/48cc9d6a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyObjectService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyObjectService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyObjectService.java
index d5675ea..6902227 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyObjectService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyObjectService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.PATCH;
@@ -33,6 +35,9 @@ import org.apache.syncope.common.lib.to.AnyObjectTO;
 /**
  * REST operations for anyObjects.
  */
+@Api(tags = "AnyObjects", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("anyObjects")
 public interface AnyObjectService extends AnyService<AnyObjectTO> {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/48cc9d6a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeClassService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeClassService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeClassService.java
index 74846a1..311ea9c 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeClassService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeClassService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.util.List;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.Consumes;
@@ -35,6 +37,9 @@ import org.apache.syncope.common.lib.to.AnyTypeClassTO;
 /**
  * REST operations for any type classes.
  */
+@Api(tags = "AnyTypeClasses", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("anyTypeClasses")
 public interface AnyTypeClassService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/48cc9d6a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeService.java
index 667009c..836889f 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.util.List;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.Consumes;
@@ -35,6 +37,9 @@ import org.apache.syncope.common.lib.to.AnyTypeTO;
 /**
  * REST operations for any types.
  */
+@Api(tags = "AnyTypes", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("anyTypes")
 public interface AnyTypeService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/48cc9d6a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConfigurationService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConfigurationService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConfigurationService.java
index add8bd2..aba2f44 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConfigurationService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConfigurationService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.util.List;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.Consumes;
@@ -34,6 +36,9 @@ import org.apache.syncope.common.lib.to.AttrTO;
 /**
  * REST operations for configuration.
  */
+@Api(tags = "Configuration", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("configurations")
 public interface ConfigurationService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/48cc9d6a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConnectorHistoryService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConnectorHistoryService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConnectorHistoryService.java
index f7f0466..26dc7fd 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConnectorHistoryService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConnectorHistoryService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.util.List;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.DELETE;
@@ -33,6 +35,9 @@ import org.apache.syncope.common.lib.to.ConnInstanceHistoryConfTO;
 /**
  * REST operations for connector configuration versioning.
  */
+@Api(tags = "ConnectorHistory", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("connectorsHistory")
 public interface ConnectorHistoryService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/48cc9d6a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConnectorService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConnectorService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConnectorService.java
index 4a1adfe..f78f4a9 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConnectorService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConnectorService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.util.List;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.Consumes;
@@ -39,6 +41,9 @@ import org.apache.syncope.common.lib.to.ConnInstanceTO;
 /**
  * REST operations for connector bundles and instances.
  */
+@Api(tags = "Connectors", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("connectors")
 public interface ConnectorService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/48cc9d6a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DomainService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DomainService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DomainService.java
index 2e343b9..b8592c8 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DomainService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DomainService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.util.List;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.Consumes;
@@ -35,6 +37,9 @@ import org.apache.syncope.common.lib.to.DomainTO;
 /**
  * REST operations for domains.
  */
+@Api(tags = "Domains", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("domains")
 public interface DomainService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/48cc9d6a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DynRealmService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DynRealmService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DynRealmService.java
index 1ebea81..9b55494 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DynRealmService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DynRealmService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.util.List;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.Consumes;
@@ -35,6 +37,9 @@ import org.apache.syncope.common.lib.to.DynRealmTO;
 /**
  * REST operations for dynamic realms.
  */
+@Api(tags = "DynamicRealms", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("dynRealms")
 public interface DynRealmService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/48cc9d6a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/GroupService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/GroupService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/GroupService.java
index 7bba846..4d64580 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/GroupService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/GroupService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.util.List;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.Consumes;
@@ -38,6 +40,9 @@ import org.apache.syncope.common.lib.types.BulkMembersActionType;
 /**
  * REST operations for groups.
  */
+@Api(tags = "Groups", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("groups")
 public interface GroupService extends AnyService<GroupTO> {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/48cc9d6a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ImplementationService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ImplementationService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ImplementationService.java
index 9ff8413..d483961 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ImplementationService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ImplementationService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.util.List;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.Consumes;
@@ -37,6 +39,9 @@ import org.apache.syncope.common.lib.types.ImplementationType;
 /**
  * REST operations for implementations.
  */
+@Api(tags = "Implementations", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("implementations")
 public interface ImplementationService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/48cc9d6a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/LoggerService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/LoggerService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/LoggerService.java
index b1d889c..23e8207 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/LoggerService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/LoggerService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.util.List;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.Consumes;
@@ -38,6 +40,9 @@ import org.apache.syncope.common.lib.types.LoggerType;
 /**
  * REST operations for logging and auditing.
  */
+@Api(tags = "Loggers", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("loggers")
 public interface LoggerService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/48cc9d6a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/MailTemplateService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/MailTemplateService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/MailTemplateService.java
index 1cd8e73..20f87d1 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/MailTemplateService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/MailTemplateService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.io.InputStream;
 import java.util.List;
 import javax.validation.constraints.NotNull;
@@ -37,6 +39,9 @@ import org.apache.syncope.common.lib.types.MailTemplateFormat;
 /**
  * REST operations for mail templates.
  */
+@Api(tags = "MailTemplates", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("mailTemplates")
 public interface MailTemplateService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/48cc9d6a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/NotificationService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/NotificationService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/NotificationService.java
index 458ae63..ba0f4c8 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/NotificationService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/NotificationService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.util.List;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.Consumes;
@@ -38,6 +40,10 @@ import org.apache.syncope.common.lib.types.JobAction;
 /**
  * REST operations for notifications.
  */
+@Api(tags = "Notifications", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
+
 @Path("notifications")
 public interface NotificationService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/48cc9d6a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/PolicyService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/PolicyService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/PolicyService.java
index 7c62196..082446a 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/PolicyService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/PolicyService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.util.List;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.Consumes;
@@ -37,6 +39,9 @@ import org.apache.syncope.common.lib.types.PolicyType;
 /**
  * REST operations for policies.
  */
+@Api(tags = "Policies", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("policies")
 public interface PolicyService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/48cc9d6a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RealmService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RealmService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RealmService.java
index f096082..a178531 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RealmService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RealmService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.util.List;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.Consumes;
@@ -35,6 +37,9 @@ import org.apache.syncope.common.lib.to.RealmTO;
 /**
  * REST operations for realms.
  */
+@Api(tags = "Realms", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("realms")
 public interface RealmService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/48cc9d6a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RelationshipTypeService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RelationshipTypeService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RelationshipTypeService.java
index dfd516f..74b5ae6 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RelationshipTypeService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RelationshipTypeService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.util.List;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.Consumes;
@@ -35,6 +37,9 @@ import org.apache.syncope.common.lib.to.RelationshipTypeTO;
 /**
  * REST operations for relationship types.
  */
+@Api(tags = "RelationshipTypes", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("relationshipTypes")
 public interface RelationshipTypeService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/48cc9d6a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ReportService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ReportService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ReportService.java
index 4db9321..b2a91f1 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ReportService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ReportService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.util.List;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.Consumes;
@@ -37,6 +39,9 @@ import org.apache.syncope.common.lib.types.ReportExecExportFormat;
 /**
  * REST operations for reports.
  */
+@Api(tags = "Reports", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("reports")
 public interface ReportService extends ExecutableService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/48cc9d6a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ReportTemplateService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ReportTemplateService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ReportTemplateService.java
index 6bfb151..247bece 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ReportTemplateService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ReportTemplateService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.io.InputStream;
 import java.util.List;
 import javax.validation.constraints.NotNull;
@@ -37,6 +39,9 @@ import org.apache.syncope.common.lib.types.ReportTemplateFormat;
 /**
  * REST operations for report templates.
  */
+@Api(tags = "ReportTemplates", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("reportTemplates")
 public interface ReportTemplateService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/48cc9d6a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ResourceHistoryService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ResourceHistoryService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ResourceHistoryService.java
index 67c8d58..30dd523 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ResourceHistoryService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ResourceHistoryService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.util.List;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.DELETE;
@@ -33,6 +35,9 @@ import org.apache.syncope.common.lib.to.ResourceHistoryConfTO;
 /**
  * REST operations for resource configuration versioning.
  */
+@Api(tags = "ResourceHistory", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("resourcesHistory")
 public interface ResourceHistoryService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/48cc9d6a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ResourceService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ResourceService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ResourceService.java
index e6adc5a..bb7cbb9 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ResourceService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ResourceService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.util.List;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.BeanParam;
@@ -41,6 +43,9 @@ import org.apache.syncope.common.rest.api.beans.ConnObjectTOListQuery;
 /**
  * REST operations for external resources.
  */
+@Api(tags = "Resources", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("resources")
 public interface ResourceService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/48cc9d6a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RoleService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RoleService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RoleService.java
index 557db76..0c961ee 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RoleService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RoleService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.io.InputStream;
 import java.util.List;
 import javax.validation.constraints.NotNull;
@@ -36,6 +38,9 @@ import org.apache.syncope.common.lib.to.RoleTO;
 /**
  * REST operations for roles.
  */
+@Api(tags = "Roles", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("roles")
 public interface RoleService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/48cc9d6a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SchemaService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SchemaService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SchemaService.java
index 51403bd..d60d1b2 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SchemaService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SchemaService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.util.List;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.BeanParam;
@@ -38,6 +40,9 @@ import org.apache.syncope.common.rest.api.beans.SchemaQuery;
 /**
  * REST operations for attribute schemas.
  */
+@Api(tags = "Schemas", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("schemas")
 public interface SchemaService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/48cc9d6a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SecurityQuestionService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SecurityQuestionService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SecurityQuestionService.java
index 9b43250..2d5b86e 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SecurityQuestionService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SecurityQuestionService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.util.List;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.Consumes;
@@ -35,6 +37,9 @@ import org.apache.syncope.common.lib.to.SecurityQuestionTO;
 /**
  * REST operations for configuration.
  */
+@Api(tags = "SecurityQuestions", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("securityQuestions")
 public interface SecurityQuestionService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/48cc9d6a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SyncopeService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SyncopeService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SyncopeService.java
index e781964..53d4bec 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SyncopeService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SyncopeService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import javax.validation.constraints.Min;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.DefaultValue;
@@ -38,6 +40,9 @@ import org.apache.syncope.common.lib.to.TypeExtensionTO;
 /**
  * General info about this Apache Syncope deployment.
  */
+@Api(tags = "Syncope", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("")
 public interface SyncopeService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/48cc9d6a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/TaskService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/TaskService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/TaskService.java
index 205e6cd..dac39bb 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/TaskService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/TaskService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.BeanParam;
 import javax.ws.rs.Consumes;
@@ -42,6 +44,9 @@ import org.apache.syncope.common.rest.api.beans.TaskQuery;
 /**
  * REST operations for tasks.
  */
+@Api(tags = "Tasks", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("tasks")
 public interface TaskService extends ExecutableService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/48cc9d6a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserSelfService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserSelfService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserSelfService.java
index f28d894..524f51e 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserSelfService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserSelfService.java
@@ -18,6 +18,9 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.Authorization;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.DELETE;
@@ -38,6 +41,7 @@ import org.apache.syncope.common.lib.to.UserTO;
 /**
  * REST operations for user self-management.
  */
+@Api(tags = "UserSelf")
 @Path("users/self")
 public interface UserSelfService extends JAXRSService {
 
@@ -47,6 +51,9 @@ public interface UserSelfService extends JAXRSService {
      * @return calling user data, including owned entitlements as header value
      * {@link org.apache.syncope.common.rest.api.RESTHeaders#OWNED_ENTITLEMENTS}
      */
+    @ApiOperation(value = "", authorizations = {
+        @Authorization(value = "BasicAuthentication")
+        , @Authorization(value = "Bearer") })
     @GET
     @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
     Response read();
@@ -71,6 +78,9 @@ public interface UserSelfService extends JAXRSService {
      * @param patch modification to be applied to self
      * @return Response object featuring the updated user - ProvisioningResult as Entity
      */
+    @ApiOperation(value = "", authorizations = {
+        @Authorization(value = "BasicAuthentication")
+        , @Authorization(value = "Bearer") })
     @PATCH
     @Path("{key}")
     @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
@@ -83,6 +93,9 @@ public interface UserSelfService extends JAXRSService {
      * @param user complete update
      * @return Response object featuring the updated user - ProvisioningResult as Entity
      */
+    @ApiOperation(value = "", authorizations = {
+        @Authorization(value = "BasicAuthentication")
+        , @Authorization(value = "Bearer") })
     @PUT
     @Path("{key}")
     @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
@@ -96,6 +109,9 @@ public interface UserSelfService extends JAXRSService {
      * @return Response object featuring the updated user enriched with propagation status information
      * - ProvisioningResult as Entity
      */
+    @ApiOperation(value = "", authorizations = {
+        @Authorization(value = "BasicAuthentication")
+        , @Authorization(value = "Bearer") })
     @POST
     @Path("{key}/status")
     @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
@@ -107,6 +123,9 @@ public interface UserSelfService extends JAXRSService {
      *
      * @return Response object featuring the deleted user - ProvisioningResult as Entity
      */
+    @ApiOperation(value = "", authorizations = {
+        @Authorization(value = "BasicAuthentication")
+        , @Authorization(value = "Bearer") })
     @DELETE
     @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
     Response delete();
@@ -118,6 +137,9 @@ public interface UserSelfService extends JAXRSService {
      *
      * @return Response object featuring the updated user - ProvisioningResult as Entity
      */
+    @ApiOperation(value = "", authorizations = {
+        @Authorization(value = "BasicAuthentication")
+        , @Authorization(value = "Bearer") })
     @POST
     @Path("changePassword")
     @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })

http://git-wip-us.apache.org/repos/asf/syncope/blob/48cc9d6a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserService.java
index 6525283..a9d9fa6 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.DefaultValue;
@@ -36,6 +38,9 @@ import org.apache.syncope.common.lib.to.UserTO;
 /**
  * REST operations for users.
  */
+@Api(tags = "Users", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("users")
 public interface UserService extends AnyService<UserTO> {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/48cc9d6a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserWorkflowService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserWorkflowService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserWorkflowService.java
index a4ecc46..e1e7960 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserWorkflowService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserWorkflowService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.util.List;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.Consumes;
@@ -33,6 +35,9 @@ import org.apache.syncope.common.lib.to.WorkflowFormTO;
 /**
  * REST operations related to user workflow.
  */
+@Api(tags = "UserWorkflow", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("userworkflow")
 public interface UserWorkflowService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/48cc9d6a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/WorkflowService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/WorkflowService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/WorkflowService.java
index fcd6751..1a81c92 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/WorkflowService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/WorkflowService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.util.List;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.Consumes;
@@ -35,6 +37,9 @@ import org.apache.syncope.common.rest.api.RESTHeaders;
 /**
  * REST operations for workflow definition.
  */
+@Api(tags = "Workflow", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("workflows")
 public interface WorkflowService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/48cc9d6a/core/rest-cxf/src/main/resources/restCXFContext.xml
----------------------------------------------------------------------
diff --git a/core/rest-cxf/src/main/resources/restCXFContext.xml b/core/rest-cxf/src/main/resources/restCXFContext.xml
index 2b79b31..6e6d778 100644
--- a/core/rest-cxf/src/main/resources/restCXFContext.xml
+++ b/core/rest-cxf/src/main/resources/restCXFContext.xml
@@ -97,9 +97,14 @@ under the License.
     <property name="usePathParamsToCompareOperations" value="false"/>
   </bean>
   
+  <bean id="basicAuth" class="io.swagger.models.auth.BasicAuthDefinition"/>
+  <bean id="bearer" class="io.swagger.models.auth.ApiKeyAuthDefinition">
+    <property name="name" value="Authorization"/>
+    <property name="in" value="HEADER"/>
+  </bean>
   <bean id="swagger2customizer" class="org.apache.syncope.core.rest.cxf.SyncopeSwagger2Customizer">
     <property name="dynamicBasePath" value="true"/>
-    <property name="replaceTags" value="true"/>
+    <property name="replaceTags" value="false"/>
   </bean>
   <bean id="swagger2Feature" class="org.apache.cxf.jaxrs.swagger.Swagger2Feature">
     <property name="title" value="Apache Syncope"/>
@@ -112,6 +117,13 @@ under the License.
     <property name="activateOnlyIfJaxrsSupported" value="true"/>
 
     <property name="customizer" ref="swagger2customizer"/>
+    
+    <property name="securityDefinitions">
+      <map>
+        <entry key="BasicAuthentication" value-ref="basicAuth"/>
+        <entry key="Bearer" value-ref="bearer"/>
+      </map>
+    </property>
   </bean>
   <bean id="sw2OpenAPI" class="org.apache.cxf.jaxrs.swagger.openapi.SwaggerToOpenApiConversionFilter"/>
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/48cc9d6a/ext/camel/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/CamelRouteService.java
----------------------------------------------------------------------
diff --git a/ext/camel/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/CamelRouteService.java b/ext/camel/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/CamelRouteService.java
index e576b52..4450208 100644
--- a/ext/camel/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/CamelRouteService.java
+++ b/ext/camel/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/CamelRouteService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.util.List;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.Consumes;
@@ -37,6 +39,9 @@ import org.apache.syncope.common.lib.types.AnyTypeKind;
 /**
  * REST operations for Camel routes.
  */
+@Api(tags = "CamelRoutes", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("camelRoutes")
 public interface CamelRouteService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/48cc9d6a/ext/saml2sp/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SAML2IdPService.java
----------------------------------------------------------------------
diff --git a/ext/saml2sp/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SAML2IdPService.java b/ext/saml2sp/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SAML2IdPService.java
index e273676..fa5b5f3 100644
--- a/ext/saml2sp/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SAML2IdPService.java
+++ b/ext/saml2sp/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SAML2IdPService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import java.io.InputStream;
 import java.util.List;
 import java.util.Set;
@@ -37,6 +39,9 @@ import org.apache.syncope.common.lib.to.SAML2IdPTO;
 /**
  * REST operations for SAML 2.0 Identity Providers.
  */
+@Api(tags = "SAML2IdP", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("saml2sp/identityProviders")
 public interface SAML2IdPService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/48cc9d6a/ext/saml2sp/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SAML2SPService.java
----------------------------------------------------------------------
diff --git a/ext/saml2sp/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SAML2SPService.java b/ext/saml2sp/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SAML2SPService.java
index ed964d6..e67cc0b 100644
--- a/ext/saml2sp/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SAML2SPService.java
+++ b/ext/saml2sp/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SAML2SPService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.GET;
 import javax.ws.rs.POST;
@@ -33,6 +35,9 @@ import org.apache.syncope.common.lib.to.SAML2ReceivedResponseTO;
 /**
  * REST operations for the provided SAML 2.0 Service Provider.
  */
+@Api(tags = "SAML2SP", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("saml2sp/serviceProvider")
 public interface SAML2SPService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/48cc9d6a/ext/scimv2/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SCIMConfService.java
----------------------------------------------------------------------
diff --git a/ext/scimv2/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SCIMConfService.java b/ext/scimv2/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SCIMConfService.java
index 1efad9a..e877f2d 100644
--- a/ext/scimv2/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SCIMConfService.java
+++ b/ext/scimv2/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SCIMConfService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.Authorization;
 import javax.validation.constraints.NotNull;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.GET;
@@ -31,6 +33,9 @@ import org.apache.syncope.common.lib.scim.SCIMConf;
 /**
  * REST operations for SCIM 2.0 configuration.
  */
+@Api(tags = "SCIMConf", authorizations = {
+    @Authorization(value = "BasicAuthentication")
+    , @Authorization(value = "Bearer") })
 @Path("scimv2conf")
 public interface SCIMConfService extends JAXRSService {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/48cc9d6a/ext/swagger-ui/src/main/resources/META-INF/resources/swagger/index.html
----------------------------------------------------------------------
diff --git a/ext/swagger-ui/src/main/resources/META-INF/resources/swagger/index.html b/ext/swagger-ui/src/main/resources/META-INF/resources/swagger/index.html
index a3d3cb3..075e2c6 100644
--- a/ext/swagger-ui/src/main/resources/META-INF/resources/swagger/index.html
+++ b/ext/swagger-ui/src/main/resources/META-INF/resources/swagger/index.html
@@ -104,7 +104,7 @@ window.onload = function() {
       name: "Apache Syncope"
     }],
     docExpansion: 'none',
-    displayOperationId: true,
+    displayOperationId: false,
     operationsSorter: 'alpha',
     tagSorter: 'alpha',
     // </ApacheSyncope>

http://git-wip-us.apache.org/repos/asf/syncope/blob/48cc9d6a/fit/core-reference/src/main/resources/jboss/restCXFContext.xml
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/main/resources/jboss/restCXFContext.xml b/fit/core-reference/src/main/resources/jboss/restCXFContext.xml
index 51a2207..33807f2 100644
--- a/fit/core-reference/src/main/resources/jboss/restCXFContext.xml
+++ b/fit/core-reference/src/main/resources/jboss/restCXFContext.xml
@@ -103,7 +103,12 @@ under the License.
       </list>
     </property>
   </bean>
-  
+
+  <bean id="basicAuth" class="io.swagger.models.auth.BasicAuthDefinition"/>
+  <bean id="bearer" class="io.swagger.models.auth.ApiKeyAuthDefinition">
+    <property name="name" value="Authorization"/>
+    <property name="in" value="HEADER"/>
+  </bean>
   <bean id="swagger2customizer" class="org.apache.syncope.core.rest.cxf.SyncopeSwagger2Customizer">
     <property name="dynamicBasePath" value="true"/>
     <property name="replaceTags" value="true"/>
@@ -126,6 +131,13 @@ under the License.
     <property name="activateOnlyIfJaxrsSupported" value="true"/>
     
     <property name="customizer" ref="swagger2customizer"/>
+
+    <property name="securityDefinitions">
+      <map>
+        <entry key="BasicAuthentication" value-ref="basicAuth"/>
+        <entry key="Bearer" value-ref="bearer"/>
+      </map>
+    </property>
   </bean>
 
   <jaxrs:server id="restContainer" address="/"

http://git-wip-us.apache.org/repos/asf/syncope/blob/48cc9d6a/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index dfb8586..1ad4fa0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -607,6 +607,11 @@ under the License.
       <!-- Swagger -->      
       <dependency>
         <groupId>io.swagger</groupId>
+        <artifactId>swagger-annotations</artifactId>
+        <version>${swagger-core.version}</version>
+      </dependency>      
+      <dependency>
+        <groupId>io.swagger</groupId>
         <artifactId>swagger-jaxrs</artifactId>
         <version>${swagger-core.version}</version>
         <exclusions>