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

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


The following commit(s) were added to refs/heads/master by this push:
     new 61a94c9  Adapting for the privilege change regarding resource 
annotations in redback.
61a94c9 is described below

commit 61a94c93a5f307dfa40713691f128de82cc434cc
Author: Martin Stockhammer <[email protected]>
AuthorDate: Wed Sep 9 12:51:02 2020 +0200

    Adapting for the privilege change regarding resource annotations in redback.
---
 .../apache/archiva/security/common/ArchivaRoleConstants.java  |  2 ++
 .../src/main/resources/META-INF/redback/redback.xml           | 11 +++++++++++
 .../org/apache/archiva/rest/api/services/BrowseService.java   |  6 +++---
 .../archiva/rest/api/services/MergeRepositoriesService.java   |  4 ++--
 .../java/org/apache/archiva/web/api/FileUploadService.java    |  8 ++++----
 5 files changed, 22 insertions(+), 9 deletions(-)

diff --git 
a/archiva-modules/archiva-base/archiva-security-common/src/main/java/org/apache/archiva/security/common/ArchivaRoleConstants.java
 
b/archiva-modules/archiva-base/archiva-security-common/src/main/java/org/apache/archiva/security/common/ArchivaRoleConstants.java
index 814fc3b..36ab17c 100644
--- 
a/archiva-modules/archiva-base/archiva-security-common/src/main/java/org/apache/archiva/security/common/ArchivaRoleConstants.java
+++ 
b/archiva-modules/archiva-base/archiva-security-common/src/main/java/org/apache/archiva/security/common/ArchivaRoleConstants.java
@@ -64,6 +64,8 @@ public class ArchivaRoleConstants
 
     public static final String OPERATION_REPOSITORY_UPLOAD = 
"archiva-upload-repository";
 
+    public static final String OPERATION_FILE_UPLOAD = "archiva-upload-file";
+
     public static final String OPERATION_REPOSITORY_DELETE = 
"archiva-delete-artifact";
 
     public static final String OPERATION_MERGE_REPOSITORY = 
"archiva-merge-repository";
diff --git 
a/archiva-modules/archiva-base/archiva-security-common/src/main/resources/META-INF/redback/redback.xml
 
b/archiva-modules/archiva-base/archiva-security-common/src/main/resources/META-INF/redback/redback.xml
index e771f16..3960314 100644
--- 
a/archiva-modules/archiva-base/archiva-security-common/src/main/resources/META-INF/redback/redback.xml
+++ 
b/archiva-modules/archiva-base/archiva-security-common/src/main/resources/META-INF/redback/redback.xml
@@ -84,6 +84,11 @@
           <description>Upload Archiva Repository</description>
         </operation>
         <operation>
+          <id>archiva-upload-file</id>
+          <name>archiva-upload-file</name>
+          <description>Upload File to Archiva</description>
+        </operation>
+        <operation>
           <id>archiva-access-repository</id>
           <name>archiva-access-repository</name>
           <description>Access Archiva Repository</description>
@@ -258,6 +263,12 @@
               <resource>${resource}</resource>
             </permission>
             <permission>
+              <id>archiva-upload-file</id>
+              <name>Archiva Upload File to Archiva</name>
+              <operation>archiva-upload-file</operation>
+              <resource>global</resource>
+            </permission>
+            <permission>
               <id>archiva-view-audit-logs</id>
               <name>Archiva View Audit Logs</name>
               <operation>archiva-view-audit-logs</operation>
diff --git 
a/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/BrowseService.java
 
b/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/BrowseService.java
index c957c14..b59747c 100644
--- 
a/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/BrowseService.java
+++ 
b/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/BrowseService.java
@@ -149,7 +149,7 @@ public interface BrowseService
     @Path("metadata/{g}/{a}/{v}/{key}/{value}")
     @PUT
     @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
-    @RedbackAuthorization(noPermission = false, noRestriction = false, 
permissions = "archiva-add-metadata")
+    @RedbackAuthorization( permissions = "archiva-add-metadata", resource = 
"{repositoryId}")
     ActionStatus addMetadata( @PathParam("g") String groupId, @PathParam("a") 
String artifactId,
                               @PathParam("v") String version, 
@PathParam("key") String key, @PathParam("value") String value,
                               @QueryParam("repositoryId") String repositoryId )
@@ -158,7 +158,7 @@ public interface BrowseService
     @Path("metadata/{g}/{a}/{v}/{key}")
     @DELETE
     @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
-    @RedbackAuthorization(noPermission = false, noRestriction = false, 
permissions = "archiva-add-metadata")
+    @RedbackAuthorization( permissions = "archiva-add-metadata", resource = 
"{repositoryId}")
     ActionStatus deleteMetadata( @PathParam("g") String groupId, 
@PathParam("a") String artifactId,
                                  @PathParam("v") String version, 
@PathParam("key") String key,
                                  @QueryParam("repositoryId") String 
repositoryId )
@@ -166,7 +166,7 @@ public interface BrowseService
 
     @Path("importMetadata")
     @POST
-    @RedbackAuthorization(noPermission = false, noRestriction = false, 
permissions = "archiva-add-metadata")
+    @RedbackAuthorization( permissions = "archiva-add-metadata", resource = 
"{repository}")
     ActionStatus importMetadata( MetadataAddRequest metadataAddRequest, 
@QueryParam("repository") String repository )
         throws ArchivaRestServiceException;
 
diff --git 
a/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/MergeRepositoriesService.java
 
b/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/MergeRepositoriesService.java
index 0d38133..9c83812 100644
--- 
a/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/MergeRepositoriesService.java
+++ 
b/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/MergeRepositoriesService.java
@@ -48,7 +48,7 @@ public interface MergeRepositoriesService
     @Path 
("mergeConflictedArtifacts/{sourceRepositoryId}/{targetRepositoryId}")
     @GET
     @Produces ({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
-    @RedbackAuthorization (permissions = 
ArchivaRoleConstants.OPERATION_MERGE_REPOSITORY)
+    @RedbackAuthorization (permissions = 
ArchivaRoleConstants.OPERATION_MERGE_REPOSITORY, resource = 
"{sourceRepositoryId}")
     List<Artifact> getMergeConflictedArtifacts( @PathParam 
("sourceRepositoryId") String sourceRepositoryId,
                                                 @PathParam 
("targetRepositoryId") String targetRepositoryId )
         throws ArchivaRestServiceException;
@@ -59,7 +59,7 @@ public interface MergeRepositoriesService
      */
     @Path 
("mergeRepositories/{sourceRepositoryId}/{targetRepositoryId}/{skipConflicts}")
     @GET
-    @RedbackAuthorization (permissions = 
ArchivaRoleConstants.OPERATION_MERGE_REPOSITORY)
+    @RedbackAuthorization (permissions = 
ArchivaRoleConstants.OPERATION_MERGE_REPOSITORY, resource = 
"{sourceRepositoryId}")
     void mergeRepositories( @PathParam ("sourceRepositoryId") String 
sourceRepositoryId,
                             @PathParam ("targetRepositoryId") String 
targetRepositoryId,
                             @PathParam ("skipConflicts") boolean skipConflicts 
)
diff --git 
a/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/api/FileUploadService.java
 
b/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/api/FileUploadService.java
index a846381..215bda1 100644
--- 
a/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/api/FileUploadService.java
+++ 
b/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/api/FileUploadService.java
@@ -48,14 +48,14 @@ public interface FileUploadService
     @POST
     @Consumes( MediaType.MULTIPART_FORM_DATA )
     @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
-    @RedbackAuthorization( permissions = 
ArchivaRoleConstants.OPERATION_REPOSITORY_UPLOAD )
+    @RedbackAuthorization( permissions = 
ArchivaRoleConstants.OPERATION_FILE_UPLOAD )
     FileMetadata post( MultipartBody multipartBody )
         throws ArchivaRestServiceException;
 
     @Path( "{fileName}" )
     @DELETE
     @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
-    @RedbackAuthorization( permissions = 
ArchivaRoleConstants.OPERATION_REPOSITORY_UPLOAD )
+    @RedbackAuthorization( permissions = 
ArchivaRoleConstants.OPERATION_FILE_UPLOAD )
     Boolean deleteFile( @PathParam( "fileName" ) String fileName )
         throws ArchivaRestServiceException;
 
@@ -63,7 +63,7 @@ public interface FileUploadService
     @Path( "sessionFileMetadatas" )
     @GET
     @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
-    @RedbackAuthorization( permissions = 
ArchivaRoleConstants.OPERATION_REPOSITORY_UPLOAD )
+    @RedbackAuthorization( permissions = 
ArchivaRoleConstants.OPERATION_FILE_UPLOAD )
     List<FileMetadata> getSessionFileMetadatas()
         throws ArchivaRestServiceException;
 
@@ -80,7 +80,7 @@ public interface FileUploadService
     @Path( "clearUploadedFiles" )
     @GET
     @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
-    @RedbackAuthorization( permissions = 
ArchivaRoleConstants.OPERATION_REPOSITORY_UPLOAD )
+    @RedbackAuthorization( permissions = 
ArchivaRoleConstants.OPERATION_FILE_UPLOAD )
     Boolean clearUploadedFiles()
         throws ArchivaRestServiceException;
 

Reply via email to