porting to jakarta
This commit is contained in:
parent
0becded125
commit
e11b2147da
15
.classpath
15
.classpath
|
@ -1,23 +1,24 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
|
||||
<attributes>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
|
||||
<attributes>
|
||||
<attribute name="test" value="true"/>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
<attribute name="optional" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
|
||||
<attributes>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
<attribute name="optional" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
|
||||
<attributes>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11">
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17">
|
||||
<attributes>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
|
|
|
@ -1,2 +1,3 @@
|
|||
target
|
||||
/Storagehub-TODO
|
||||
/postgres-data/
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
|
||||
org.eclipse.jdt.core.compiler.compliance=11
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
|
||||
org.eclipse.jdt.core.compiler.compliance=17
|
||||
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
|
||||
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
|
||||
org.eclipse.jdt.core.compiler.release=disabled
|
||||
org.eclipse.jdt.core.compiler.source=11
|
||||
org.eclipse.jdt.core.compiler.source=17
|
||||
|
|
|
@ -1,5 +1,10 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -34,7 +39,12 @@
|
|||
|
||||
|
||||
<wb-module deploy-name="storagehub">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -69,7 +79,12 @@
|
|||
|
||||
|
||||
<wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -104,66 +119,54 @@
|
|||
|
||||
|
||||
<wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
|
||||
<dependent-module archiveName="common-smartgears-app-3.0.0.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/common-smartgears-app/common-smartgears-app">
|
||||
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/test/java"/>
|
||||
|
||||
|
||||
<dependent-module archiveName="common-smartgears-app-3.0.1-SNAPSHOT.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/common-smartgears-app/common-smartgears-app">
|
||||
|
||||
|
||||
<dependency-type>uses</dependency-type>
|
||||
|
||||
|
||||
</dependent-module>
|
||||
<dependent-module archiveName="common-configuration-scanner-1.1.0.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/common-configuration-scanner/common-configuration-scanner">
|
||||
|
||||
|
||||
<dependent-module archiveName="authorization-control-library-2.0.0-SNAPSHOT.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/authorization-control-library/authorization-control-library">
|
||||
|
||||
|
||||
<dependency-type>uses</dependency-type>
|
||||
|
||||
|
||||
</dependent-module>
|
||||
|
||||
|
||||
<dependent-module archiveName="storagehub-model-2.0.0-SNAPSHOT.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/storagehub-model/storagehub-model">
|
||||
|
||||
|
||||
<dependency-type>uses</dependency-type>
|
||||
|
||||
|
||||
</dependent-module>
|
||||
|
||||
|
||||
<dependent-module archiveName="storagehub-script-utils-2.0.0-SNAPSHOT.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/storagehub-scripting-util/storagehub-scripting-util">
|
||||
|
||||
|
||||
<dependency-type>uses</dependency-type>
|
||||
|
||||
|
||||
</dependent-module>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -198,7 +201,12 @@
|
|||
|
||||
|
||||
<property name="context-root" value="storagehub"/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -233,7 +241,12 @@
|
|||
|
||||
|
||||
<property name="java-output-path" value="/storagehub-webapp_BRANCH/target/classes"/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -268,7 +281,12 @@
|
|||
|
||||
|
||||
</wb-module>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<faceted-project>
|
||||
<fixed facet="wst.jsdt.web"/>
|
||||
<installed facet="jst.web" version="3.0"/>
|
||||
<installed facet="jst.jaxrs" version="2.0"/>
|
||||
<installed facet="wst.jsdt.web" version="1.0"/>
|
||||
<installed facet="java" version="11"/>
|
||||
<installed facet="jst.web" version="4.0"/>
|
||||
<installed facet="java" version="17"/>
|
||||
</faceted-project>
|
||||
|
|
|
@ -1,6 +1,10 @@
|
|||
FROM smartgears-distribution:4.0.0-java11-tomcat9
|
||||
FROM d4science/smartgears-distribution:4.0.0-SNAPSHOT-java17-tomcat10.1.19
|
||||
ARG REPOUSER=admin
|
||||
ARG REPOPWD=admin
|
||||
|
||||
#install unzip
|
||||
RUN apt-get update && apt-get install unzip
|
||||
|
||||
COPY ./target/storagehub.war /tomcat/webapps/
|
||||
COPY ./docker/jackrabbit /app/jackrabbit
|
||||
COPY ./docker/storagehub.xml /tomcat/conf/Catalina/localhost/
|
||||
|
@ -8,5 +12,4 @@ FROM smartgears-distribution:4.0.0-java11-tomcat9
|
|||
COPY ./docker/container.ini /etc/
|
||||
RUN unzip /tomcat/webapps/storagehub.war -d /tomcat/webapps/storagehub
|
||||
RUN rm /tomcat/webapps/storagehub.war
|
||||
COPY ./docker/storage-settings.properties /tomcat/webapps/storagehub/WEB-INF/classes/
|
||||
RUN sed -i "s/{{adminId}}/$REPOUSER/g; s/{{adminPwd}}/$REPOPWD/g" /tomcat/webapps/storagehub/WEB-INF/web.xml
|
||||
COPY ./docker/storage-settings.properties /tomcat/webapps/storagehub/WEB-INF/classes/
|
|
@ -1,12 +1,13 @@
|
|||
FROM smartgears-distribution:4.0.0-java11-tomcat9
|
||||
ARG REPOUSER=admin
|
||||
ARG REPOPWD=admin
|
||||
FROM d4science/smartgears-distribution:4.0.0-SNAPSHOT-java17-tomcat10.1.19
|
||||
|
||||
#install unzip
|
||||
RUN apt-get update && apt-get install unzip
|
||||
|
||||
COPY ./target/storagehub-test-storages.war /tomcat/webapps/storagehub.war
|
||||
COPY ./docker/jackrabbit /app/jackrabbit
|
||||
COPY ./docker/storagehub.xml /tomcat/conf/Catalina/localhost/
|
||||
COPY ./docker/logback.xml /etc/
|
||||
COPY ./docker/container.ini /etc/
|
||||
COPY ./docker/local/container.ini /etc/
|
||||
RUN unzip /tomcat/webapps/storagehub.war -d /tomcat/webapps/storagehub
|
||||
RUN rm /tomcat/webapps/storagehub.war
|
||||
COPY ./docker/storage-settings.properties /tomcat/webapps/storagehub/WEB-INF/classes/
|
||||
RUN sed -i "s/{{adminId}}/$REPOUSER/g; s/{{adminPwd}}/$REPOPWD/g" /tomcat/webapps/storagehub/WEB-INF/web.xml
|
||||
#COPY ./docker/local/storage-settings.properties /tomcat/webapps/storagehub/WEB-INF/classes/
|
|
@ -0,0 +1,16 @@
|
|||
#!/bin/bash
|
||||
|
||||
NAME=storagehub
|
||||
PORT=8080
|
||||
DEBUG_PORT=5005
|
||||
debug=false
|
||||
compile=false
|
||||
|
||||
mvn clean package
|
||||
|
||||
docker build -t $NAME .
|
||||
|
||||
docker-compose build
|
||||
|
||||
docker-compose up
|
||||
|
|
@ -1,5 +1,11 @@
|
|||
version: '3.7'
|
||||
services:
|
||||
elb:
|
||||
image: haproxy
|
||||
ports:
|
||||
- "8100:8100"
|
||||
volumes:
|
||||
- ./docker/haproxy:/usr/local/etc/haproxy
|
||||
postgres:
|
||||
image: postgres:10.5
|
||||
restart: always
|
||||
|
@ -15,13 +21,18 @@ services:
|
|||
- '5423:5432'
|
||||
volumes:
|
||||
- ./postgres-data:/var/lib/postgresql/data
|
||||
copy the sql script to create tables
|
||||
- ./sql/create_tables.sql:/docker-entrypoint-initdb.d/create_tables.sql
|
||||
- ./sql/create_tables.sql:/docker-entrypoint-initdb.d/create_tables.sql
|
||||
storagehub:
|
||||
build:
|
||||
dockerfile: ./Dockerfile-test
|
||||
dockerfile: ./Dockerfile-local
|
||||
ports:
|
||||
- '8081:8080'
|
||||
- '8080:8080'
|
||||
- '4954:4954'
|
||||
environment:
|
||||
- ADMINISTRATION_PORT_ENABLED=true
|
||||
- DOMAIN_NAME=docker_domain
|
||||
- JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=0.0.0.0:4954,server=y,suspend=n"
|
||||
- JPDA_ADDRESS=*:4954
|
||||
minio:
|
||||
image: minio/minio
|
||||
ports:
|
|
@ -1,7 +1,7 @@
|
|||
version: '3.7'
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:10.5
|
||||
image: postgres:16.2
|
||||
restart: always
|
||||
environment:
|
||||
- POSTGRES_DB=workspace-db
|
||||
|
@ -19,8 +19,14 @@ services:
|
|||
- ./sql/create_tables.sql:/docker-entrypoint-initdb.d/create_tables.sql
|
||||
storagehub:
|
||||
build: .
|
||||
environment:
|
||||
_JAVA_OPTIONS:
|
||||
-Xdebug
|
||||
-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5005
|
||||
ports:
|
||||
- '8081:8080'
|
||||
- '8081:8080'
|
||||
- '5005:5005'
|
||||
|
||||
minio:
|
||||
image: minio/minio
|
||||
ports:
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
# haproxy.cfg
|
||||
global
|
||||
lua-load /usr/local/etc/haproxy/send_to_all_whnmanager.lua
|
||||
|
||||
frontend http
|
||||
bind *:8100
|
||||
mode http
|
||||
timeout client 10s
|
||||
http-request use-service lua.broadcast_to_nodes if { path /whn-manager meth PUT DELETE }
|
||||
use_backend all
|
||||
|
||||
backend all
|
||||
mode http
|
||||
option httpchk
|
||||
http-check send meth GET uri /storagehub/gcube/resource/health
|
||||
http-check expect status 200
|
||||
server s1 storagehub:8080 check
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
local function broadcast_to_nodes(req)
|
||||
-- Get all servers in the backend
|
||||
local servers = pxn.get_servers("all")
|
||||
|
||||
for _, server in ipairs(servers) do
|
||||
-- Forward the request to each server
|
||||
pxn.http_request({
|
||||
"PUT", -- Method
|
||||
server["address"], -- Address of the server
|
||||
tonumber(server["port"]), -- Port of the server
|
||||
req.method, -- HTTP method
|
||||
req.uri, -- URI
|
||||
req.headers, -- Headers
|
||||
req.body -- Body
|
||||
})
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
core.register_service("broadcast_to_nodes", "http", broadcast_to_nodes)
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
[node]
|
||||
mode = offline
|
||||
hostname = dlib29.isti.cnr.it
|
||||
protocol= http
|
||||
port = 8080
|
||||
infrastructure = gcube
|
||||
authorizeChildrenContext = true
|
||||
publicationFrequencyInSeconds = 60
|
||||
|
||||
[properties]
|
||||
SmartGearsDistribution = 4.0.0-SNAPSHOT
|
||||
SmartGearsDistributionBundle = UnBundled
|
||||
|
||||
[site]
|
||||
country = it
|
||||
location = pisa
|
||||
|
||||
[authorization]
|
||||
factory = org.gcube.smartgears.security.defaults.DefaultAuthorizationProviderFactory
|
||||
factory.endpoint = https://accounts.dev.d4science.org/auth/realms/d4science/protocol/openid-connect/token
|
||||
credentials.class = org.gcube.smartgears.security.SimpleCredentials
|
||||
credentials.clientID = node-whn-test-uno-d-d4s.d4science.org
|
||||
credentials.secret = 979bd3bc-5cc4-11ec-bf63-0242ac130002
|
|
@ -0,0 +1,10 @@
|
|||
default.bucketName = storagehub-dev
|
||||
default.key = SHUBTEST
|
||||
default.secret = wJalrXUtnFEMI/K7MDENG/bPxRfiCY
|
||||
default.url = minio:9000
|
||||
default.createBucket = true
|
||||
volatile.bucketName = storagehub-volatile-dev
|
||||
volatile.key = SHUBTEST
|
||||
volatile.secret = wJalrXUtnFEMI/K7MDENG/bPxRfiCY
|
||||
volatile.url = minio:9000
|
||||
volatile.createBucket = true
|
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
|
||||
Copyright (c) 2013, 2022 Oracle and/or its affiliates. All rights reserved.
|
||||
|
||||
This program and the accompanying materials are made available under the
|
||||
terms of the Eclipse Distribution License v. 1.0, which is available at
|
||||
http://www.eclipse.org/org/documents/edl-v10.php.
|
||||
|
||||
SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
-->
|
||||
|
||||
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
|
||||
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
|
||||
http://xmlns.jcp.org/xml/ns/javaee/beans_2_0.xsd"
|
||||
bean-discovery-mode="all">
|
||||
</beans>
|
|
@ -2,11 +2,11 @@
|
|||
<web-app>
|
||||
<context-param>
|
||||
<param-name>admin-username</param-name>
|
||||
<param-value>{{adminId}}</param-value>
|
||||
<param-value>admin</param-value>
|
||||
</context-param>
|
||||
<context-param>
|
||||
<param-name>admin-pwd</param-name>
|
||||
<param-value>{{adminPwd}}</param-value>
|
||||
<param-value>admin</param-value>
|
||||
</context-param>
|
||||
<context-param>
|
||||
<param-name>resolver-basepath</param-name>
|
||||
|
|
98
pom.xml
98
pom.xml
|
@ -13,16 +13,18 @@
|
|||
<version>1.5.0-SNAPSHOT</version>
|
||||
<name>storagehub</name>
|
||||
<scm>
|
||||
<connection>scm:git:https://code-repo.d4science.org/gCubeSystem/storagehub.git</connection>
|
||||
<developerConnection>scm:git:https://code-repo.d4science.org/gCubeSystem/storagehub.git</developerConnection>
|
||||
<connection>
|
||||
scm:git:https://code-repo.d4science.org/gCubeSystem/storagehub.git</connection>
|
||||
<developerConnection>
|
||||
scm:git:https://code-repo.d4science.org/gCubeSystem/storagehub.git</developerConnection>
|
||||
<url>https://code-repo.d4science.org/gCubeSystem/storagehub</url>
|
||||
</scm>
|
||||
<packaging>war</packaging>
|
||||
<properties>
|
||||
<webappDirectory>${project.basedir}/src/main/webapp/WEB-INF</webappDirectory>
|
||||
<jackrabbit.version>2.20.7</jackrabbit.version>
|
||||
<jackson.version>2.8.11</jackson.version>
|
||||
<slf4j.version>1.7.4</slf4j.version>
|
||||
<jackson.version>2.15.3</jackson.version>
|
||||
<slf4j.version>2.0.12</slf4j.version>
|
||||
<tika.version>2.6.0</tika.version>
|
||||
<aspectj-plugin.version>1.14.0</aspectj-plugin.version>
|
||||
<distroDirectory>${project.basedir}/distro</distroDirectory>
|
||||
|
@ -30,9 +32,9 @@
|
|||
<warname>storagehub</warname>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||
<enunciate.version>2.14.0</enunciate.version>
|
||||
<maven.compiler.source>11</maven.compiler.source>
|
||||
<maven.compiler.target>11</maven.compiler.target>
|
||||
<enunciate.version>2.17.1</enunciate.version>
|
||||
<maven.compiler.source>17</maven.compiler.source>
|
||||
<maven.compiler.target>17</maven.compiler.target>
|
||||
</properties>
|
||||
<dependencyManagement>
|
||||
<dependencies>
|
||||
|
@ -132,7 +134,8 @@
|
|||
<artifactId>jackrabbit-core</artifactId>
|
||||
<version>${jackrabbit.version}</version>
|
||||
</dependency>
|
||||
<!-- <dependency> <groupId>org.apache.jackrabbit</groupId> <artifactId>jackrabbit-jcr-server</artifactId>
|
||||
<!-- <dependency> <groupId>org.apache.jackrabbit</groupId>
|
||||
<artifactId>jackrabbit-jcr-server</artifactId>
|
||||
<version>${jackrabbit.version}</version> </dependency> -->
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
|
@ -178,25 +181,24 @@
|
|||
</dependency>
|
||||
<!-- jersey & weld -->
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>javax.servlet-api</artifactId>
|
||||
<version>3.0.1</version>
|
||||
<groupId>jakarta.servlet</groupId>
|
||||
<artifactId>jakarta.servlet-api</artifactId>
|
||||
</dependency>
|
||||
<!-- https://mvnrepository.com/artifact/javax.interceptor/javax.interceptor-api -->
|
||||
<!--
|
||||
https://mvnrepository.com/artifact/javax.interceptor/javax.interceptor-api -->
|
||||
<dependency>
|
||||
<groupId>javax.interceptor</groupId>
|
||||
<artifactId>javax.interceptor-api</artifactId>
|
||||
<version>1.2.2</version>
|
||||
</dependency>
|
||||
<!-- https://mvnrepository.com/artifact/javax.enterprise/cdi-api -->
|
||||
<dependency>
|
||||
<groupId>javax.enterprise</groupId>
|
||||
<artifactId>cdi-api</artifactId>
|
||||
<version>2.0</version>
|
||||
<groupId>jakarta.interceptor</groupId>
|
||||
<artifactId>jakarta.interceptor-api</artifactId>
|
||||
<version>2.0.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.ws.rs</groupId>
|
||||
<artifactId>javax.ws.rs-api</artifactId>
|
||||
<groupId>jakarta.enterprise</groupId>
|
||||
<artifactId>jakarta.enterprise.cdi-api</artifactId>
|
||||
<version>4.0.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>jakarta.ws.rs</groupId>
|
||||
<artifactId>jakarta.ws.rs-api</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.glassfish.jersey.containers</groupId>
|
||||
|
@ -206,11 +208,11 @@
|
|||
<groupId>org.glassfish.jersey.containers</groupId>
|
||||
<artifactId>jersey-container-servlet-core</artifactId>
|
||||
</dependency>
|
||||
<!-- https://mvnrepository.com/artifact/org.glassfish.jersey.inject/jersey-hk2 -->
|
||||
<!--
|
||||
https://mvnrepository.com/artifact/org.glassfish.jersey.inject/jersey-hk2 -->
|
||||
<dependency>
|
||||
<groupId>org.glassfish.jersey.inject</groupId>
|
||||
<artifactId>jersey-hk2</artifactId>
|
||||
<version>2.30.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.glassfish.jersey.core</groupId>
|
||||
|
@ -227,15 +229,10 @@
|
|||
<dependency>
|
||||
<groupId>org.jboss.weld.servlet</groupId>
|
||||
<artifactId>weld-servlet-core</artifactId>
|
||||
<version>3.1.0.Final</version>
|
||||
<version>5.1.2.Final</version>
|
||||
</dependency>
|
||||
<!-- https://mvnrepository.com/artifact/org.jboss/jandex -->
|
||||
<dependency>
|
||||
<groupId>org.jboss</groupId>
|
||||
<artifactId>jandex</artifactId>
|
||||
<version>2.2.2.Final</version>
|
||||
</dependency>
|
||||
<!-- https://mvnrepository.com/artifact/org.glassfish.jersey.core/jersey-common -->
|
||||
<!--
|
||||
https://mvnrepository.com/artifact/org.glassfish.jersey.core/jersey-common -->
|
||||
<dependency>
|
||||
<groupId>org.glassfish.jersey.core</groupId>
|
||||
<artifactId>jersey-common</artifactId>
|
||||
|
@ -254,9 +251,9 @@
|
|||
</dependency>
|
||||
<!-- https://mvnrepository.com/artifact/org.postgresql/postgresql -->
|
||||
<dependency>
|
||||
<groupId>org.postgresql</groupId>
|
||||
<artifactId>postgresql</artifactId>
|
||||
<version>42.7.0</version>
|
||||
<groupId>org.postgresql</groupId>
|
||||
<artifactId>postgresql</artifactId>
|
||||
<version>42.7.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.google.guava</groupId>
|
||||
|
@ -271,7 +268,7 @@
|
|||
<dependency>
|
||||
<groupId>org.tukaani</groupId>
|
||||
<artifactId>xz</artifactId>
|
||||
<version>1.5</version>
|
||||
<version>1.5</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.glassfish.jersey.test-framework.providers</groupId>
|
||||
|
@ -306,7 +303,8 @@
|
|||
<artifactId>jul-to-slf4j</artifactId>
|
||||
<version>${slf4j.version}</version>
|
||||
</dependency>
|
||||
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-to-slf4j -->
|
||||
<!--
|
||||
https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-to-slf4j -->
|
||||
<!-- https://mvnrepository.com/artifact/org.slf4j/log4j-over-slf4j -->
|
||||
<dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
|
@ -375,6 +373,11 @@
|
|||
</dependencies>
|
||||
<build>
|
||||
<finalName>${project.artifactId}</finalName>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src/main/resources</directory>
|
||||
</resource>
|
||||
</resources>
|
||||
<pluginManagement>
|
||||
<plugins>
|
||||
<plugin>
|
||||
|
@ -407,9 +410,9 @@
|
|||
<artifactId>aspectj-maven-plugin</artifactId>
|
||||
<version>${aspectj-plugin.version}</version>
|
||||
<configuration>
|
||||
<complianceLevel>1.8</complianceLevel>
|
||||
<source>1.8</source>
|
||||
<target>1.8</target>
|
||||
<complianceLevel>11</complianceLevel>
|
||||
<source>11</source>
|
||||
<target>11</target>
|
||||
<aspectLibraries>
|
||||
<aspectLibrary>
|
||||
<groupId>org.gcube.common</groupId>
|
||||
|
@ -454,7 +457,8 @@
|
|||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<!-- Copy Enunciate Documentation from your-application/docs to your-application.war -->
|
||||
<!-- Copy Enunciate Documentation from your-application/docs to
|
||||
your-application.war -->
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-resources-plugin</artifactId>
|
||||
|
@ -469,8 +473,10 @@
|
|||
<outputDirectory>target</outputDirectory>
|
||||
<resources>
|
||||
<resource>
|
||||
<targetPath>${project.build.directory}/${project.artifactId}/api-docs</targetPath>
|
||||
<directory>${project.build.directory}/api-docs</directory>
|
||||
<targetPath>
|
||||
${project.build.directory}/${project.artifactId}/api-docs</targetPath>
|
||||
<directory>
|
||||
${project.build.directory}/api-docs</directory>
|
||||
<filtering>true</filtering>
|
||||
</resource>
|
||||
</resources>
|
||||
|
@ -495,7 +501,9 @@
|
|||
<configuration>
|
||||
<target>
|
||||
<copy todir="${basedir}/target/classes">
|
||||
<fileset dir="${basedir}/target/test-classes" includes="org/gcube/data/access/storages/**/*" />
|
||||
<fileset
|
||||
dir="${basedir}/target/test-classes"
|
||||
includes="org/gcube/data/access/storages/**/*" />
|
||||
</copy>
|
||||
</target>
|
||||
</configuration>
|
||||
|
|
|
@ -2,8 +2,8 @@ package org.gcube.data.access.storagehub;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
import jakarta.inject.Inject;
|
||||
import jakarta.inject.Singleton;
|
||||
import javax.jcr.Node;
|
||||
import javax.jcr.RepositoryException;
|
||||
import javax.jcr.Session;
|
||||
|
@ -103,13 +103,13 @@ public class AuthorizationChecker {
|
|||
private boolean hasParentPublicFolder(Session session, Item item) {
|
||||
if(item==null || item.getParentPath()==null) return false;
|
||||
if (item.getParentPath().replaceAll("/Home/[^/]*/"+Constants.WORKSPACE_ROOT_FOLDER_NAME,"").isEmpty() || item.getParentPath().replaceAll(Constants.SHARED_FOLDER_PATH, "").isEmpty()) {
|
||||
if (item instanceof FolderItem)
|
||||
return ((FolderItem) item).isPublicItem();
|
||||
if (item instanceof FolderItem folder)
|
||||
return folder.isPublicItem();
|
||||
else return false;
|
||||
} else {
|
||||
if (item instanceof FolderItem)
|
||||
if (item instanceof FolderItem folder)
|
||||
try {
|
||||
return ((FolderItem) item).isPublicItem() || hasParentPublicFolder(session, node2Item.getItem(item.getParentId(), session, Excludes.ALL));
|
||||
return (folder.isPublicItem() || hasParentPublicFolder(session, node2Item.getItem(folder.getParentId(), session, Excludes.ALL)));
|
||||
}catch (Throwable e) {
|
||||
log.warn("error checking public parents",e);
|
||||
return false;
|
||||
|
|
|
@ -3,6 +3,8 @@ package org.gcube.data.access.storagehub;
|
|||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import javax.jcr.SimpleCredentials;
|
||||
|
||||
public class Constants {
|
||||
|
||||
public static final String OLD_VRE_FOLDER_PARENT_NAME = "MySpecialFolders";
|
||||
|
@ -27,10 +29,6 @@ public class Constants {
|
|||
|
||||
public static final String QUERY_LANGUAGE ="JCR-SQL2";
|
||||
|
||||
public static final String ADMIN_PARAM_NAME ="admin-username";
|
||||
|
||||
public static final String ADMIN_PARAM_PWD ="admin-pwd";
|
||||
|
||||
public static final String HOME_VERSION_PROP = "hl:version";
|
||||
|
||||
public static final List<String> FOLDERS_TO_EXLUDE = Arrays.asList(Constants.OLD_VRE_FOLDER_PARENT_NAME, Constants.TRASH_ROOT_FOLDER_NAME);
|
||||
|
@ -39,4 +37,7 @@ public class Constants {
|
|||
|
||||
public static final List<String> PROTECTED_FOLDER = Arrays.asList(Constants.WORKSPACE_ROOT_FOLDER_NAME, Constants.OLD_VRE_FOLDER_PARENT_NAME, Constants.TRASH_ROOT_FOLDER_NAME);
|
||||
|
||||
public static final String ADMIN_USER ="admin";
|
||||
|
||||
public static final SimpleCredentials JCR_CREDENTIALS = new SimpleCredentials(ADMIN_USER,"admin".toCharArray());
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package org.gcube.data.access.storagehub;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.ws.rs.ext.Provider;
|
||||
import jakarta.inject.Inject;
|
||||
import jakarta.ws.rs.ext.Provider;
|
||||
|
||||
import org.apache.jackrabbit.api.JackrabbitRepository;
|
||||
import org.gcube.data.access.storagehub.services.RepositoryInitializer;
|
||||
|
@ -22,7 +22,6 @@ public class MyApplicationListener implements ApplicationEventListener {
|
|||
|
||||
@Override
|
||||
public void onEvent(ApplicationEvent event) {
|
||||
log.info("StorageHub - event called");
|
||||
switch (event.getType()) {
|
||||
case DESTROY_FINISHED:
|
||||
log.info("Destroying application storageHub");
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package org.gcube.data.access.storagehub;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
import jakarta.inject.Singleton;
|
||||
import javax.jcr.Node;
|
||||
import javax.jcr.RepositoryException;
|
||||
import javax.jcr.Session;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package org.gcube.data.access.storagehub;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
import jakarta.inject.Singleton;
|
||||
import javax.jcr.Repository;
|
||||
import javax.jcr.SimpleCredentials;
|
||||
import javax.naming.Context;
|
||||
|
|
|
@ -4,8 +4,8 @@ import java.io.IOException;
|
|||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
|
||||
import javax.ws.rs.WebApplicationException;
|
||||
import javax.ws.rs.core.StreamingOutput;
|
||||
import jakarta.ws.rs.WebApplicationException;
|
||||
import jakarta.ws.rs.core.StreamingOutput;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
|
|
@ -3,8 +3,8 @@ package org.gcube.data.access.storagehub;
|
|||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.core.Application;
|
||||
import jakarta.ws.rs.Path;
|
||||
import jakarta.ws.rs.core.Application;
|
||||
|
||||
import org.gcube.common.gxrest.response.entity.SerializableErrorEntityTextWriter;
|
||||
import org.gcube.data.access.storagehub.services.ACLManager;
|
||||
|
|
|
@ -1,13 +1,8 @@
|
|||
package org.gcube.data.access.storagehub;
|
||||
|
||||
|
||||
import javax.jcr.SimpleCredentials;
|
||||
|
||||
import org.gcube.data.access.storagehub.handlers.CredentialHandler;
|
||||
import org.gcube.data.access.storagehub.services.RepositoryInitializer;
|
||||
import org.gcube.smartgears.ApplicationManager;
|
||||
import org.gcube.smartgears.ContextProvider;
|
||||
import org.gcube.smartgears.context.application.ApplicationContext;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
|
@ -37,13 +32,10 @@ public class StorageHubAppllicationManager implements ApplicationManager {
|
|||
|
||||
logger.info("initializing storagehub");
|
||||
try {
|
||||
ApplicationContext ctx = ContextProvider.get();
|
||||
if (!alreadyInit) {
|
||||
logger.info("jackrabbit initialization started");
|
||||
|
||||
SimpleCredentials credentials = CredentialHandler.getAdminCredentials(ctx.application());
|
||||
|
||||
repository.initContainerAtFirstStart(credentials);
|
||||
|
||||
repository.initContainerAtFirstStart(Constants.JCR_CREDENTIALS);
|
||||
|
||||
//notificationClient = new NotificationClient();
|
||||
|
||||
|
|
|
@ -4,21 +4,17 @@ import java.util.Calendar;
|
|||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
import javax.jcr.Node;
|
||||
import javax.jcr.RepositoryException;
|
||||
import javax.jcr.Session;
|
||||
import javax.jcr.UnsupportedRepositoryOperationException;
|
||||
import javax.jcr.version.Version;
|
||||
import javax.jcr.version.VersionHistory;
|
||||
import javax.jcr.version.VersionIterator;
|
||||
import javax.jcr.version.VersionManager;
|
||||
|
||||
import org.gcube.common.storagehub.model.items.nodes.accounting.AccountingEntryType;
|
||||
import org.gcube.common.storagehub.model.types.NodeProperty;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import jakarta.inject.Singleton;
|
||||
|
||||
@Singleton
|
||||
public class AccountingHandler {
|
||||
|
||||
|
|
|
@ -1,16 +0,0 @@
|
|||
package org.gcube.data.access.storagehub.exception;
|
||||
|
||||
import javax.ws.rs.WebApplicationException;
|
||||
import javax.ws.rs.core.Response.Status;
|
||||
|
||||
public class MyAuthException extends WebApplicationException {
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public MyAuthException(Throwable cause) {
|
||||
super(cause, Status.FORBIDDEN);
|
||||
}
|
||||
|
||||
}
|
|
@ -8,7 +8,7 @@ import java.util.List;
|
|||
import java.util.zip.ZipEntry;
|
||||
import java.util.zip.ZipOutputStream;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import jakarta.inject.Inject;
|
||||
import javax.jcr.Node;
|
||||
import javax.jcr.RepositoryException;
|
||||
import javax.jcr.Session;
|
||||
|
@ -49,9 +49,8 @@ public class CompressHandler {
|
|||
if (excludes.contains(item.getId())) continue;
|
||||
if (item instanceof FolderItem)
|
||||
tempQueue.addAll(getAllNodesForZip((FolderItem) item, login, session, accountingHandler, excludes));
|
||||
else if (item instanceof AbstractFileItem){
|
||||
else if (item instanceof AbstractFileItem fileItem){
|
||||
logger.trace("adding file {}",item.getPath());
|
||||
AbstractFileItem fileItem = (AbstractFileItem) item;
|
||||
String versionName = null;
|
||||
try {
|
||||
Version version = versionHandler.getCurrentVersion((Node) item.getRelatedNode());
|
||||
|
@ -84,9 +83,8 @@ public class CompressHandler {
|
|||
}finally {
|
||||
zos.closeEntry();
|
||||
}
|
||||
} else if (item instanceof AbstractFileItem){
|
||||
} else if (item instanceof AbstractFileItem fileItem){
|
||||
try {
|
||||
AbstractFileItem fileItem = (AbstractFileItem)item;
|
||||
|
||||
StorageBackendFactory sbf = storageBackendHandler.get(fileItem.getContent().getPayloadBackend());
|
||||
|
||||
|
|
|
@ -1,18 +0,0 @@
|
|||
package org.gcube.data.access.storagehub.handlers;
|
||||
|
||||
import javax.jcr.SimpleCredentials;
|
||||
import javax.servlet.ServletContext;
|
||||
|
||||
import org.gcube.data.access.storagehub.Constants;
|
||||
|
||||
public class CredentialHandler {
|
||||
|
||||
private static SimpleCredentials credentials;
|
||||
|
||||
public static SimpleCredentials getAdminCredentials(ServletContext context) {
|
||||
if (credentials==null)
|
||||
credentials = new SimpleCredentials(context.getInitParameter(Constants.ADMIN_PARAM_NAME),context.getInitParameter(Constants.ADMIN_PARAM_PWD).toCharArray());
|
||||
return credentials;
|
||||
}
|
||||
|
||||
}
|
|
@ -8,14 +8,14 @@ import java.util.Map;
|
|||
import java.util.zip.Deflater;
|
||||
import java.util.zip.ZipOutputStream;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
import jakarta.inject.Inject;
|
||||
import jakarta.inject.Singleton;
|
||||
import javax.jcr.Node;
|
||||
import javax.jcr.RepositoryException;
|
||||
import javax.jcr.Session;
|
||||
import javax.jcr.version.Version;
|
||||
import javax.ws.rs.core.Response;
|
||||
import javax.ws.rs.core.StreamingOutput;
|
||||
import jakarta.ws.rs.core.Response;
|
||||
import jakarta.ws.rs.core.StreamingOutput;
|
||||
|
||||
import org.apache.commons.io.FilenameUtils;
|
||||
import org.gcube.common.storagehub.model.Constants;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package org.gcube.data.access.storagehub.handlers;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
import jakarta.inject.Inject;
|
||||
import jakarta.inject.Singleton;
|
||||
import javax.jcr.ItemNotFoundException;
|
||||
import javax.jcr.Node;
|
||||
import javax.jcr.NodeIterator;
|
||||
|
|
|
@ -6,8 +6,8 @@ import static org.gcube.common.storagehub.model.Constants.versionPrefix;
|
|||
|
||||
import java.util.Base64;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
import javax.servlet.ServletContext;
|
||||
import jakarta.inject.Singleton;
|
||||
import jakarta.servlet.ServletContext;
|
||||
|
||||
import org.gcube.common.encryption.encrypter.StringEncrypter;
|
||||
import org.gcube.common.security.AuthorizedTasks;
|
||||
|
|
|
@ -9,8 +9,8 @@ import java.util.concurrent.ExecutorService;
|
|||
import java.util.concurrent.Executors;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
import jakarta.inject.Inject;
|
||||
import jakarta.inject.Singleton;
|
||||
import javax.jcr.ItemNotFoundException;
|
||||
import javax.jcr.Node;
|
||||
import javax.jcr.RepositoryException;
|
||||
|
@ -216,8 +216,7 @@ public class TrashHandler {
|
|||
|
||||
if (item instanceof FolderItem) {
|
||||
trashItem.setFolder(true);
|
||||
}else if (item instanceof AbstractFileItem ) {
|
||||
AbstractFileItem file = (AbstractFileItem) item;
|
||||
}else if (item instanceof AbstractFileItem file) {
|
||||
if (file.getContent()!=null) {
|
||||
trashItem.setMimeType(file.getContent().getMimeType());
|
||||
trashItem.setLenght(file.getContent().getSize());
|
||||
|
@ -233,10 +232,10 @@ public class TrashHandler {
|
|||
log.debug("calling jcr move");
|
||||
ses.getWorkspace().move(nodeToDelete.getPath(), Paths.append(Paths.getPath(newTrashItemNode.getPath()),nodeToDelete.getName()).toPath());
|
||||
String mimetype = null;
|
||||
if (item instanceof AbstractFileItem) {
|
||||
if (((AbstractFileItem)item).getContent()!=null)
|
||||
mimetype = ((AbstractFileItem) item).getContent().getMimeType();
|
||||
else log.warn("the AbstractFileItem with id {} has no content (check it!!)", item.getId());
|
||||
if (item instanceof AbstractFileItem file) {
|
||||
if (file.getContent()!=null)
|
||||
mimetype = file.getContent().getMimeType();
|
||||
else log.warn("the AbstractFileItem with id {} has no content (check it!!)", file.getId());
|
||||
}
|
||||
accountingHandler.createFolderRemoveObj(item.getName(), item.getClass().getSimpleName(), mimetype, ses, login, (Node) item.getRelatedNode(), true);
|
||||
}catch(Throwable t) {
|
||||
|
|
|
@ -5,8 +5,8 @@ import java.util.HashSet;
|
|||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
import jakarta.inject.Inject;
|
||||
import jakarta.inject.Singleton;
|
||||
import javax.jcr.Node;
|
||||
import javax.jcr.NodeIterator;
|
||||
import javax.jcr.RepositoryException;
|
||||
|
|
|
@ -4,7 +4,7 @@ import java.util.ArrayList;
|
|||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
import jakarta.inject.Singleton;
|
||||
import javax.jcr.Node;
|
||||
import javax.jcr.RepositoryException;
|
||||
import javax.jcr.Session;
|
||||
|
|
|
@ -4,7 +4,7 @@ import java.util.Arrays;
|
|||
import java.util.HashMap;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
import jakarta.inject.Singleton;
|
||||
|
||||
import org.gcube.common.storagehub.model.annotations.MimeTypeHandler;
|
||||
import org.reflections.Reflections;
|
||||
|
|
|
@ -10,7 +10,7 @@ import java.util.Map;
|
|||
import java.util.Map.Entry;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
import jakarta.inject.Singleton;
|
||||
import javax.jcr.ItemExistsException;
|
||||
import javax.jcr.Node;
|
||||
import javax.jcr.PathNotFoundException;
|
||||
|
|
|
@ -7,8 +7,8 @@ import java.util.HashSet;
|
|||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
import jakarta.inject.Inject;
|
||||
import jakarta.inject.Singleton;
|
||||
import javax.jcr.Node;
|
||||
import javax.jcr.RepositoryException;
|
||||
import javax.jcr.Session;
|
||||
|
|
|
@ -13,7 +13,7 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
import jakarta.inject.Singleton;
|
||||
import javax.jcr.Node;
|
||||
import javax.jcr.NodeIterator;
|
||||
import javax.jcr.PathNotFoundException;
|
||||
|
|
|
@ -4,10 +4,10 @@ import java.util.Collection;
|
|||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import javax.enterprise.inject.Instance;
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
import jakarta.annotation.PostConstruct;
|
||||
import jakarta.enterprise.inject.Instance;
|
||||
import jakarta.inject.Inject;
|
||||
import jakarta.inject.Singleton;
|
||||
|
||||
import org.gcube.common.storagehub.model.Constants;
|
||||
import org.gcube.common.storagehub.model.exceptions.PluginNotFoundException;
|
||||
|
|
|
@ -2,8 +2,8 @@ package org.gcube.data.access.storagehub.handlers.plugins;
|
|||
|
||||
import java.io.InputStream;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
import jakarta.inject.Inject;
|
||||
import jakarta.inject.Singleton;
|
||||
|
||||
import org.gcube.common.storagehub.model.exceptions.StorageHubException;
|
||||
import org.gcube.common.storagehub.model.items.nodes.Content;
|
||||
|
|
|
@ -6,12 +6,8 @@ import java.util.Map;
|
|||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
import javax.jcr.Node;
|
||||
import javax.jcr.RepositoryException;
|
||||
import javax.jcr.SimpleCredentials;
|
||||
import javax.servlet.ServletContext;
|
||||
|
||||
import org.apache.jackrabbit.api.JackrabbitSession;
|
||||
import org.apache.jackrabbit.api.security.user.Group;
|
||||
|
@ -33,6 +29,9 @@ import org.gcube.data.access.storagehub.services.RepositoryInitializer;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import jakarta.inject.Inject;
|
||||
import jakarta.inject.Singleton;
|
||||
|
||||
@Singleton
|
||||
public class VREManager {
|
||||
|
||||
|
@ -54,14 +53,7 @@ public class VREManager {
|
|||
|
||||
ExecutorService executor = Executors.newFixedThreadPool(5);
|
||||
|
||||
SimpleCredentials credentials;
|
||||
|
||||
@Inject
|
||||
public VREManager(ServletContext context) {
|
||||
credentials = new SimpleCredentials(context.getInitParameter(Constants.ADMIN_PARAM_NAME),context.getInitParameter(Constants.ADMIN_PARAM_PWD).toCharArray());
|
||||
}
|
||||
|
||||
|
||||
|
||||
public synchronized VRE getVRE(String completeName) {
|
||||
logger.trace("requesting VRE {}",completeName);
|
||||
if (vreMap.containsKey(completeName))
|
||||
|
@ -75,7 +67,7 @@ public class VREManager {
|
|||
logger.trace("inserting VRE {}",vreFolder.getTitle());
|
||||
if (vreMap.containsKey(vreFolder.getTitle())) throw new RuntimeException("something went wrong (vre already present in the map)");
|
||||
else {
|
||||
VRE toReturn = new VRE(vreFolder, repository.getRepository(), credentials, node2Item, executor);
|
||||
VRE toReturn = new VRE(vreFolder, repository.getRepository(), Constants.JCR_CREDENTIALS, node2Item, executor);
|
||||
vreMap.put(vreFolder.getTitle(), toReturn);
|
||||
return toReturn;
|
||||
}
|
||||
|
@ -83,7 +75,7 @@ public class VREManager {
|
|||
}
|
||||
|
||||
public synchronized VRE getVreFolderItem(JackrabbitSession ses, String userId, List<String> excludes ) throws RepositoryException, StorageHubException{
|
||||
Secret secret = SecretManagerProvider.instance.get();
|
||||
Secret secret = SecretManagerProvider.get();
|
||||
ContextBean bean = new ContextBean(secret.getContext());
|
||||
if (!bean.is(Type.VRE)) throw new BackendGenericError("the current scope is not a VRE");
|
||||
String entireScopeName= bean.toString().replaceAll("^/(.*)/?$", "$1").replaceAll("/", "-");
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package org.gcube.data.access.storagehub.query.sql2.evaluators;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
import jakarta.inject.Singleton;
|
||||
|
||||
import org.gcube.common.storagehub.model.expressions.Expression;
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
package org.gcube.data.access.storagehub.query.sql2.evaluators;
|
||||
|
||||
import javax.enterprise.inject.Instance;
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
import jakarta.enterprise.inject.Instance;
|
||||
import jakarta.inject.Inject;
|
||||
import jakarta.inject.Singleton;
|
||||
|
||||
import org.gcube.common.storagehub.model.expressions.Expression;
|
||||
|
||||
|
@ -19,6 +19,7 @@ public class Evaluators {
|
|||
@Inject
|
||||
Instance<Evaluator<?>> evaluators;
|
||||
|
||||
@SuppressWarnings({ "rawtypes", "unchecked" })
|
||||
public String evaluate(Expression<?> expression) {
|
||||
for (Evaluator eval: evaluators) {
|
||||
if (eval.getType().equals(expression.getClass()))
|
||||
|
|
|
@ -5,7 +5,7 @@ import java.text.SimpleDateFormat;
|
|||
import java.util.List;
|
||||
import java.util.TimeZone;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
import jakarta.inject.Singleton;
|
||||
|
||||
import org.gcube.common.storagehub.model.expressions.Expression;
|
||||
import org.gcube.common.storagehub.model.expressions.date.Before;
|
||||
|
|
|
@ -4,7 +4,7 @@ import java.util.ArrayList;
|
|||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
import jakarta.inject.Singleton;
|
||||
|
||||
import org.gcube.common.storagehub.model.expressions.Expression;
|
||||
import org.gcube.common.storagehub.model.expressions.logical.And;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package org.gcube.data.access.storagehub.query.sql2.evaluators.logical;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
import jakarta.inject.Singleton;
|
||||
|
||||
import org.gcube.common.storagehub.model.expressions.Expression;
|
||||
import org.gcube.common.storagehub.model.expressions.logical.ISDescendant;
|
||||
|
|
|
@ -4,7 +4,7 @@ import java.util.ArrayList;
|
|||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
import jakarta.inject.Singleton;
|
||||
|
||||
import org.gcube.common.storagehub.model.expressions.Expression;
|
||||
import org.gcube.common.storagehub.model.expressions.logical.Or;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package org.gcube.data.access.storagehub.query.sql2.evaluators.text;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
import jakarta.inject.Singleton;
|
||||
|
||||
import org.gcube.common.storagehub.model.expressions.Expression;
|
||||
import org.gcube.common.storagehub.model.expressions.text.Contains;
|
||||
|
|
|
@ -2,24 +2,10 @@ package org.gcube.data.access.storagehub.services;
|
|||
|
||||
import java.util.Collections;
|
||||
|
||||
import javax.enterprise.context.RequestScoped;
|
||||
import javax.inject.Inject;
|
||||
import javax.jcr.Node;
|
||||
import javax.jcr.NodeIterator;
|
||||
import javax.jcr.RepositoryException;
|
||||
import javax.jcr.Session;
|
||||
import javax.servlet.ServletContext;
|
||||
import javax.ws.rs.Consumes;
|
||||
import javax.ws.rs.DELETE;
|
||||
import javax.ws.rs.GET;
|
||||
import javax.ws.rs.PUT;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.PathParam;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.WebApplicationException;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import javax.ws.rs.core.Response;
|
||||
|
||||
import org.gcube.common.gxrest.response.outbound.GXOutboundErrorResponse;
|
||||
import org.gcube.common.storagehub.model.Excludes;
|
||||
|
@ -35,9 +21,9 @@ import org.gcube.common.storagehub.model.items.SharedFolder;
|
|||
import org.gcube.common.storagehub.model.items.VreFolder;
|
||||
import org.gcube.common.storagehub.model.types.ACLList;
|
||||
import org.gcube.data.access.storagehub.AuthorizationChecker;
|
||||
import org.gcube.data.access.storagehub.Constants;
|
||||
import org.gcube.data.access.storagehub.PathUtil;
|
||||
import org.gcube.data.access.storagehub.StorageHubAppllicationManager;
|
||||
import org.gcube.data.access.storagehub.handlers.CredentialHandler;
|
||||
import org.gcube.data.access.storagehub.handlers.UnshareHandler;
|
||||
import org.gcube.data.access.storagehub.handlers.items.Node2ItemConverter;
|
||||
import org.gcube.data.access.storagehub.services.interfaces.ACLManagerInterface;
|
||||
|
@ -50,6 +36,21 @@ import org.slf4j.LoggerFactory;
|
|||
import com.webcohesion.enunciate.metadata.rs.RequestHeader;
|
||||
import com.webcohesion.enunciate.metadata.rs.RequestHeaders;
|
||||
|
||||
import jakarta.enterprise.context.RequestScoped;
|
||||
import jakarta.inject.Inject;
|
||||
import jakarta.servlet.ServletContext;
|
||||
import jakarta.ws.rs.Consumes;
|
||||
import jakarta.ws.rs.DELETE;
|
||||
import jakarta.ws.rs.GET;
|
||||
import jakarta.ws.rs.PUT;
|
||||
import jakarta.ws.rs.Path;
|
||||
import jakarta.ws.rs.PathParam;
|
||||
import jakarta.ws.rs.Produces;
|
||||
import jakarta.ws.rs.WebApplicationException;
|
||||
import jakarta.ws.rs.core.Context;
|
||||
import jakarta.ws.rs.core.MediaType;
|
||||
import jakarta.ws.rs.core.Response;
|
||||
|
||||
@Path("items")
|
||||
@ManagedBy(StorageHubAppllicationManager.class)
|
||||
@RequestHeaders({
|
||||
|
@ -90,10 +91,10 @@ public class ACLManager extends Impersonable {
|
|||
@Path("{id}/acls")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public ACLList getACL() {
|
||||
InnerMethodName.instance.set("getACLById");
|
||||
InnerMethodName.set("getACLById");
|
||||
Session ses = null;
|
||||
try{
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
Item item = node2Item.getItem(ses.getNodeByIdentifier(id), Excludes.ALL);
|
||||
authChecker.checkReadAuthorizationControl(ses, currentUser, id);
|
||||
return new ACLList(aclManagerDelegate.get(item, ses));
|
||||
|
@ -127,13 +128,13 @@ public class ACLManager extends Impersonable {
|
|||
@Consumes(MediaType.MULTIPART_FORM_DATA)
|
||||
@Path("{id}/acls")
|
||||
public void updateACL(@FormDataParam("user") String user, @FormDataParam("access") AccessType accessType) {
|
||||
InnerMethodName.instance.set("setACLById");
|
||||
InnerMethodName.set("setACLById");
|
||||
Session ses = null;
|
||||
try {
|
||||
|
||||
if (user==currentUser) throw new InvalidCallParameters("own ACLs cannot be modified");
|
||||
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
Node node = ses.getNodeByIdentifier(id);
|
||||
|
||||
Item item = node2Item.getItem(node, Excludes.ALL);
|
||||
|
@ -194,10 +195,10 @@ public class ACLManager extends Impersonable {
|
|||
@Consumes(MediaType.TEXT_PLAIN)
|
||||
@Path("{id}/acls/{user}")
|
||||
public void removeACL(@PathParam("user") String user) {
|
||||
InnerMethodName.instance.set("removeACLById");
|
||||
InnerMethodName.set("removeACLById");
|
||||
Session ses = null;
|
||||
try{
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
|
||||
Node node = ses.getNodeByIdentifier(id);
|
||||
|
||||
|
@ -228,11 +229,11 @@ public class ACLManager extends Impersonable {
|
|||
@GET
|
||||
@Path("{id}/acls/write")
|
||||
public Boolean canWriteInto() {
|
||||
InnerMethodName.instance.set("canWriteIntoFolder");
|
||||
InnerMethodName.set("canWriteIntoFolder");
|
||||
Session ses = null;
|
||||
Boolean canWrite = false;
|
||||
try{
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
Node node = ses.getNodeByIdentifier(id);
|
||||
Item item = node2Item.getItem(node, Excludes.ALL);
|
||||
if (!(item instanceof FolderItem))
|
||||
|
|
|
@ -4,12 +4,12 @@ import java.io.File;
|
|||
import java.io.FileInputStream;
|
||||
import java.io.InputStream;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.ws.rs.GET;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.WebApplicationException;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.Response.Status;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.ws.rs.GET;
|
||||
import jakarta.ws.rs.Path;
|
||||
import jakarta.ws.rs.WebApplicationException;
|
||||
import jakarta.ws.rs.core.Context;
|
||||
import jakarta.ws.rs.core.Response.Status;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
|
|
@ -10,27 +10,12 @@ import java.util.Iterator;
|
|||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.jcr.Node;
|
||||
import javax.jcr.PathNotFoundException;
|
||||
import javax.jcr.RepositoryException;
|
||||
import javax.jcr.security.AccessControlEntry;
|
||||
import javax.jcr.security.AccessControlManager;
|
||||
import javax.jcr.security.Privilege;
|
||||
import javax.servlet.ServletContext;
|
||||
import javax.ws.rs.Consumes;
|
||||
import javax.ws.rs.DELETE;
|
||||
import javax.ws.rs.DefaultValue;
|
||||
import javax.ws.rs.FormParam;
|
||||
import javax.ws.rs.GET;
|
||||
import javax.ws.rs.POST;
|
||||
import javax.ws.rs.PUT;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.PathParam;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import javax.ws.rs.core.Response;
|
||||
|
||||
import org.apache.jackrabbit.api.JackrabbitSession;
|
||||
import org.apache.jackrabbit.api.security.JackrabbitAccessControlList;
|
||||
|
@ -60,8 +45,6 @@ import org.gcube.data.access.storagehub.Constants;
|
|||
import org.gcube.data.access.storagehub.PathUtil;
|
||||
import org.gcube.data.access.storagehub.StorageHubAppllicationManager;
|
||||
import org.gcube.data.access.storagehub.Utils;
|
||||
import org.gcube.data.access.storagehub.exception.MyAuthException;
|
||||
import org.gcube.data.access.storagehub.handlers.CredentialHandler;
|
||||
import org.gcube.data.access.storagehub.handlers.GroupHandler;
|
||||
import org.gcube.data.access.storagehub.handlers.TrashHandler;
|
||||
import org.gcube.data.access.storagehub.handlers.items.Node2ItemConverter;
|
||||
|
@ -77,7 +60,25 @@ import org.slf4j.LoggerFactory;
|
|||
import com.webcohesion.enunciate.metadata.rs.RequestHeader;
|
||||
import com.webcohesion.enunciate.metadata.rs.RequestHeaders;
|
||||
|
||||
import jakarta.inject.Inject;
|
||||
import jakarta.inject.Singleton;
|
||||
import jakarta.servlet.ServletContext;
|
||||
import jakarta.ws.rs.Consumes;
|
||||
import jakarta.ws.rs.DELETE;
|
||||
import jakarta.ws.rs.DefaultValue;
|
||||
import jakarta.ws.rs.FormParam;
|
||||
import jakarta.ws.rs.GET;
|
||||
import jakarta.ws.rs.POST;
|
||||
import jakarta.ws.rs.PUT;
|
||||
import jakarta.ws.rs.Path;
|
||||
import jakarta.ws.rs.PathParam;
|
||||
import jakarta.ws.rs.Produces;
|
||||
import jakarta.ws.rs.core.Context;
|
||||
import jakarta.ws.rs.core.MediaType;
|
||||
import jakarta.ws.rs.core.Response;
|
||||
|
||||
@Path("groups")
|
||||
@Singleton
|
||||
@ManagedBy(StorageHubAppllicationManager.class)
|
||||
@RequestHeaders({
|
||||
@RequestHeader( name = "Authorization", description = "Bearer token, see https://dev.d4science.org/how-to-access-resources"),
|
||||
|
@ -86,7 +87,8 @@ public class GroupManager {
|
|||
|
||||
|
||||
|
||||
@Context ServletContext context;
|
||||
@Context
|
||||
ServletContext context;
|
||||
|
||||
@Inject
|
||||
TrashHandler trashHandler;
|
||||
|
@ -116,12 +118,12 @@ public class GroupManager {
|
|||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public List<String> getGroups(){
|
||||
|
||||
InnerMethodName.instance.set("getGroups");
|
||||
InnerMethodName.set("getGroups");
|
||||
|
||||
JackrabbitSession session = null;
|
||||
List<String> groups= new ArrayList<>();
|
||||
try {
|
||||
session = (JackrabbitSession) repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
session = (JackrabbitSession) repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
|
||||
Iterator<Authorizable> result = session.getUserManager().findAuthorizables(new Query() {
|
||||
|
||||
|
@ -149,10 +151,10 @@ public class GroupManager {
|
|||
@POST
|
||||
@Path("")
|
||||
@Consumes(MediaType.MULTIPART_FORM_DATA)
|
||||
@AuthorizationControl(allowedRoles={INFRASTRUCTURE_MANAGER_ROLE}, exception=MyAuthException.class)
|
||||
@AuthorizationControl(allowedRoles={INFRASTRUCTURE_MANAGER_ROLE})
|
||||
public String createGroup(@FormDataParam("group") String group, @FormDataParam("accessType") AccessType accessType, @FormDataParam("folderOwner") String folderOwner, @FormDataParam("useDefaultStorage") @DefaultValue("true") boolean useDefaultStorage){
|
||||
|
||||
InnerMethodName.instance.set("createGroup");
|
||||
InnerMethodName.set("createGroup");
|
||||
|
||||
JackrabbitSession session = null;
|
||||
String groupId = null;
|
||||
|
@ -160,7 +162,7 @@ public class GroupManager {
|
|||
|
||||
log.info("create group called with groupid {} , accessType {} and folderOwner {}",group, accessType, folderOwner);
|
||||
|
||||
session = (JackrabbitSession) repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
session = (JackrabbitSession) repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
|
||||
org.apache.jackrabbit.api.security.user.UserManager usrManager = session.getUserManager();
|
||||
|
||||
|
@ -192,15 +194,15 @@ public class GroupManager {
|
|||
|
||||
@DELETE
|
||||
@Path("{group}")
|
||||
@AuthorizationControl(allowedRoles={INFRASTRUCTURE_MANAGER_ROLE}, exception=MyAuthException.class)
|
||||
@AuthorizationControl(allowedRoles={INFRASTRUCTURE_MANAGER_ROLE})
|
||||
public String deleteGroup(@PathParam("group") String group){
|
||||
|
||||
InnerMethodName.instance.set("deleteGroup");
|
||||
InnerMethodName.set("deleteGroup");
|
||||
|
||||
JackrabbitSession session = null;
|
||||
try {
|
||||
|
||||
session = (JackrabbitSession) repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
session = (JackrabbitSession) repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
|
||||
org.apache.jackrabbit.api.security.user.UserManager usrManager = session.getUserManager();
|
||||
|
||||
|
@ -229,28 +231,28 @@ public class GroupManager {
|
|||
}
|
||||
|
||||
|
||||
public boolean isInfraManager() { return SecretManagerProvider.instance.get().getOwner().getRoles().contains(INFRASTRUCTURE_MANAGER_ROLE); }
|
||||
public boolean isInfraManager() { return SecretManagerProvider.get().getOwner().getRoles().contains(INFRASTRUCTURE_MANAGER_ROLE); }
|
||||
|
||||
public boolean isVREManager() { return SecretManagerProvider.instance.get().getOwner().getRoles().contains(VREMANAGER_ROLE); }
|
||||
public boolean isVREManager() { return SecretManagerProvider.get().getOwner().getRoles().contains(VREMANAGER_ROLE); }
|
||||
|
||||
@PUT
|
||||
@Path("{id}/admins")
|
||||
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
|
||||
public void addAdmin(@PathParam("id") String groupId, @FormParam("userId") String userId){
|
||||
|
||||
InnerMethodName.instance.set("addAdmin");
|
||||
InnerMethodName.set("addAdmin");
|
||||
|
||||
JackrabbitSession session = null;
|
||||
try {
|
||||
Objects.nonNull(groupId);
|
||||
Objects.nonNull(userId);
|
||||
|
||||
session = (JackrabbitSession) repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
session = (JackrabbitSession) repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
|
||||
Node vreFolder = groupHandler.getFolderNodeRelatedToGroup(session, groupId);
|
||||
|
||||
|
||||
String currentUser = SecretManagerProvider.instance.get().getOwner().getId();
|
||||
String currentUser = SecretManagerProvider.get().getOwner().getId();
|
||||
|
||||
if (!isInfraManager() && !(isVREManager() && isValidGroupForContext(groupId) ))
|
||||
authChecker.checkAdministratorControl(session, currentUser, node2Item.getItem(vreFolder, Excludes.ALL));
|
||||
|
@ -294,7 +296,7 @@ public class GroupManager {
|
|||
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
|
||||
public void removeAdmin(@PathParam("id") String groupId, @PathParam("userId") String userId){
|
||||
|
||||
InnerMethodName.instance.set("removeAdmin");
|
||||
InnerMethodName.set("removeAdmin");
|
||||
|
||||
JackrabbitSession session = null;
|
||||
|
||||
|
@ -302,9 +304,9 @@ public class GroupManager {
|
|||
Objects.nonNull(groupId);
|
||||
Objects.nonNull(userId);
|
||||
|
||||
session = (JackrabbitSession) repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
session = (JackrabbitSession) repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
Node vreFolder = groupHandler.getFolderNodeRelatedToGroup(session, groupId);
|
||||
String currentUser = SecretManagerProvider.instance.get().getOwner().getId();
|
||||
String currentUser = SecretManagerProvider.get().getOwner().getId();
|
||||
|
||||
if (!isInfraManager() && !(isVREManager() && isValidGroupForContext(groupId) ))
|
||||
authChecker.checkAdministratorControl(session, currentUser, node2Item.getItem(vreFolder, Excludes.ALL));
|
||||
|
@ -341,14 +343,14 @@ public class GroupManager {
|
|||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public List<String> getAdmins(@PathParam("groupId") String groupId){
|
||||
|
||||
InnerMethodName.instance.set("getAdmins");
|
||||
String login = SecretManagerProvider.instance.get().getOwner().getId();
|
||||
InnerMethodName.set("getAdmins");
|
||||
String login = SecretManagerProvider.get().getOwner().getId();
|
||||
|
||||
JackrabbitSession session = null;
|
||||
List<String> users = new ArrayList<>();
|
||||
try {
|
||||
|
||||
session = (JackrabbitSession) repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
session = (JackrabbitSession) repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
|
||||
VRE vreFolder = vreManager.getVreFolderItemByGroupName(session, groupId, login, Excludes.ALL);
|
||||
AccessControlManager acm = session.getAccessControlManager();
|
||||
|
@ -383,10 +385,10 @@ public class GroupManager {
|
|||
@PUT
|
||||
@Path("{id}/users")
|
||||
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
|
||||
@AuthorizationControl(allowedRoles={VREMANAGER_ROLE, INFRASTRUCTURE_MANAGER_ROLE}, exception=MyAuthException.class)
|
||||
@AuthorizationControl(allowedRoles={VREMANAGER_ROLE, INFRASTRUCTURE_MANAGER_ROLE})
|
||||
public boolean addUserToGroup(@PathParam("id") String groupId, @FormParam("userId") String userId){
|
||||
|
||||
InnerMethodName.instance.set("addUserToGroup");
|
||||
InnerMethodName.set("addUserToGroup");
|
||||
|
||||
JackrabbitSession session = null;
|
||||
boolean success = false;
|
||||
|
@ -395,7 +397,7 @@ public class GroupManager {
|
|||
if (!isInfraManager() && !isValidGroupForContext(groupId))
|
||||
throw new UserNotAuthorizedException("only VREManager of the selected VRE can execute this operation");
|
||||
|
||||
session = (JackrabbitSession) repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
session = (JackrabbitSession) repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
|
||||
org.apache.jackrabbit.api.security.user.UserManager usrManager = session.getUserManager();
|
||||
|
||||
|
@ -448,10 +450,10 @@ public class GroupManager {
|
|||
|
||||
@DELETE
|
||||
@Path("{groupId}/users/{userId}")
|
||||
@AuthorizationControl(allowedRoles={VREMANAGER_ROLE, INFRASTRUCTURE_MANAGER_ROLE}, exception=MyAuthException.class)
|
||||
@AuthorizationControl(allowedRoles={VREMANAGER_ROLE, INFRASTRUCTURE_MANAGER_ROLE})
|
||||
public boolean removeUserFromGroup(@PathParam("groupId") String groupId, @PathParam("userId") String userId){
|
||||
|
||||
InnerMethodName.instance.set("removeUserFromGroup");
|
||||
InnerMethodName.set("removeUserFromGroup");
|
||||
|
||||
JackrabbitSession session = null;
|
||||
boolean success = false;
|
||||
|
@ -460,7 +462,9 @@ public class GroupManager {
|
|||
if (!isValidGroupForContext(groupId) && !isInfraManager())
|
||||
throw new UserNotAuthorizedException("only VREManager of the selected VRE can execute this operation");
|
||||
|
||||
session = (JackrabbitSession) repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
session = (JackrabbitSession) repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
|
||||
//TODO: remove also acls of the user removed
|
||||
|
||||
success = groupHandler.removeUserFromGroup(groupId, userId, session);
|
||||
|
||||
|
@ -482,10 +486,10 @@ public class GroupManager {
|
|||
@GET
|
||||
@Path("{groupId}/users")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
@AuthorizationControl(allowedRoles={VREMANAGER_ROLE, INFRASTRUCTURE_MANAGER_ROLE}, exception=MyAuthException.class)
|
||||
@AuthorizationControl(allowedRoles={VREMANAGER_ROLE, INFRASTRUCTURE_MANAGER_ROLE})
|
||||
public List<String> getUsersOfGroup(@PathParam("groupId") String groupId){
|
||||
|
||||
InnerMethodName.instance.set("getUsersOfGroup");
|
||||
InnerMethodName.set("getUsersOfGroup");
|
||||
|
||||
JackrabbitSession session = null;
|
||||
List<String> users = new ArrayList<>();
|
||||
|
@ -494,7 +498,7 @@ public class GroupManager {
|
|||
if (!isValidGroupForContext(groupId) && !isInfraManager())
|
||||
throw new UserNotAuthorizedException("only VREManager of the selected VRE can execute this operation");
|
||||
|
||||
session = (JackrabbitSession) repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
session = (JackrabbitSession) repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
|
||||
org.apache.jackrabbit.api.security.user.UserManager usrManager = session.getUserManager();
|
||||
|
||||
|
@ -526,7 +530,7 @@ public class GroupManager {
|
|||
|
||||
String name = groupId;
|
||||
|
||||
String currentScope = SecretManagerProvider.instance.get().getContext();
|
||||
String currentScope = SecretManagerProvider.get().getContext();
|
||||
ContextBean bean = new ContextBean(currentScope);
|
||||
while (!bean.is(Type.INFRASTRUCTURE)) {
|
||||
bean = bean.enclosingScope();
|
||||
|
@ -568,7 +572,7 @@ public class GroupManager {
|
|||
|
||||
|
||||
private boolean isValidGroupForContext(String group){
|
||||
String currentContext = SecretManagerProvider.instance.get().getContext();
|
||||
String currentContext = SecretManagerProvider.get().getContext();
|
||||
String expectedGroupId= currentContext.replace("/", "-").substring(1);
|
||||
return group.equals(expectedGroupId);
|
||||
}
|
||||
|
|
|
@ -3,17 +3,17 @@ package org.gcube.data.access.storagehub.services;
|
|||
|
||||
import static org.gcube.data.access.storagehub.Roles.INFRASTRUCTURE_MANAGER_ROLE;
|
||||
|
||||
import javax.enterprise.context.RequestScoped;
|
||||
import javax.inject.Inject;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.core.Context;
|
||||
|
||||
import org.gcube.common.security.Owner;
|
||||
import org.gcube.common.security.providers.SecretManagerProvider;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import jakarta.enterprise.context.RequestScoped;
|
||||
import jakarta.inject.Inject;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.ws.rs.Path;
|
||||
import jakarta.ws.rs.core.Context;
|
||||
|
||||
@Path("")
|
||||
public abstract class Impersonable {
|
||||
|
||||
|
@ -24,9 +24,8 @@ public abstract class Impersonable {
|
|||
@RequestScoped
|
||||
@Inject
|
||||
public void setCurrentUser(@Context final HttpServletRequest request) {
|
||||
|
||||
String impersonate = request!=null ? request.getParameter("impersonate") : null ;
|
||||
Owner owner = SecretManagerProvider.instance.get().getOwner();
|
||||
Owner owner = SecretManagerProvider.get().getOwner();
|
||||
if(impersonate!=null && owner.getRoles().contains(INFRASTRUCTURE_MANAGER_ROLE)) {
|
||||
this.currentUser = impersonate;
|
||||
} else
|
||||
|
|
|
@ -4,24 +4,12 @@ import java.util.HashMap;
|
|||
import java.util.Map.Entry;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.enterprise.context.RequestScoped;
|
||||
import javax.inject.Inject;
|
||||
import javax.jcr.Node;
|
||||
import javax.jcr.RepositoryException;
|
||||
import javax.jcr.Session;
|
||||
import javax.jcr.lock.LockException;
|
||||
import javax.jcr.security.AccessControlManager;
|
||||
import javax.jcr.security.Privilege;
|
||||
import javax.servlet.ServletContext;
|
||||
import javax.ws.rs.Consumes;
|
||||
import javax.ws.rs.FormParam;
|
||||
import javax.ws.rs.POST;
|
||||
import javax.ws.rs.PUT;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.PathParam;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import javax.ws.rs.core.Response;
|
||||
|
||||
import org.apache.jackrabbit.api.security.JackrabbitAccessControlList;
|
||||
import org.apache.jackrabbit.commons.jackrabbit.authorization.AccessControlUtils;
|
||||
|
@ -46,7 +34,6 @@ import org.gcube.data.access.storagehub.PathUtil;
|
|||
import org.gcube.data.access.storagehub.StorageHubAppllicationManager;
|
||||
import org.gcube.data.access.storagehub.Utils;
|
||||
import org.gcube.data.access.storagehub.accounting.AccountingHandler;
|
||||
import org.gcube.data.access.storagehub.handlers.CredentialHandler;
|
||||
import org.gcube.data.access.storagehub.handlers.UnshareHandler;
|
||||
import org.gcube.data.access.storagehub.handlers.items.Item2NodeConverter;
|
||||
import org.gcube.data.access.storagehub.handlers.items.Node2ItemConverter;
|
||||
|
@ -58,6 +45,19 @@ import org.slf4j.LoggerFactory;
|
|||
import com.webcohesion.enunciate.metadata.rs.RequestHeader;
|
||||
import com.webcohesion.enunciate.metadata.rs.RequestHeaders;
|
||||
|
||||
import jakarta.enterprise.context.RequestScoped;
|
||||
import jakarta.inject.Inject;
|
||||
import jakarta.servlet.ServletContext;
|
||||
import jakarta.ws.rs.Consumes;
|
||||
import jakarta.ws.rs.FormParam;
|
||||
import jakarta.ws.rs.POST;
|
||||
import jakarta.ws.rs.PUT;
|
||||
import jakarta.ws.rs.Path;
|
||||
import jakarta.ws.rs.PathParam;
|
||||
import jakarta.ws.rs.core.Context;
|
||||
import jakarta.ws.rs.core.MediaType;
|
||||
import jakarta.ws.rs.core.Response;
|
||||
|
||||
|
||||
|
||||
@Path("items")
|
||||
|
@ -98,7 +98,7 @@ public class ItemSharing extends Impersonable{
|
|||
@POST
|
||||
@Path("{id}/share")
|
||||
public String shareWithMap(@FormParam("mapUserPermission") String mapUserPermissionString, @FormParam("defaultAccessType") String defaultAccessTypeString){
|
||||
InnerMethodName.instance.set("shareFolder");
|
||||
InnerMethodName.set("shareFolder");
|
||||
HashMap<String,String> mapUserPermission;
|
||||
|
||||
Session ses = null;
|
||||
|
@ -116,7 +116,7 @@ public class ItemSharing extends Impersonable{
|
|||
throw new InvalidCallParameters("invalid default accessType");
|
||||
}
|
||||
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
authChecker.checkWriteAuthorizationControl(ses, currentUser, id, false);
|
||||
|
||||
Item item = node2Item.getItem(ses.getNodeByIdentifier(id), Excludes.ALL);
|
||||
|
@ -201,11 +201,11 @@ public class ItemSharing extends Impersonable{
|
|||
@Path("{id}/share")
|
||||
@Consumes(MediaType.MULTIPART_FORM_DATA)
|
||||
public String share(@FormDataParam("users") Set<String> users, @FormDataParam("defaultAccessType") AccessType accessType){
|
||||
InnerMethodName.instance.set("shareFolder");
|
||||
InnerMethodName.set("shareFolder");
|
||||
Session ses = null;
|
||||
String toReturn = null;
|
||||
try{
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
authChecker.checkWriteAuthorizationControl(ses, currentUser, id, false);
|
||||
|
||||
Item item = node2Item.getItem(ses.getNodeByIdentifier(id), Excludes.ALL);
|
||||
|
@ -343,12 +343,12 @@ public class ItemSharing extends Impersonable{
|
|||
@Path("{id}/unshare")
|
||||
@Consumes(MediaType.MULTIPART_FORM_DATA)
|
||||
public String unshare(@FormDataParam("users") Set<String> users){
|
||||
InnerMethodName.instance.set("unshareFolder");
|
||||
InnerMethodName.set("unshareFolder");
|
||||
Session ses = null;
|
||||
String toReturn = null;
|
||||
try {
|
||||
log.debug("unsharing folder with id {} with users {}", id, users);
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
Node sharedNode = ses.getNodeByIdentifier(id);
|
||||
toReturn = unshareHandler.unshare(ses, users, sharedNode, currentUser);
|
||||
if(toReturn == null ) throw new InvalidItemException("item with id "+id+" cannot be unshared");
|
||||
|
|
|
@ -7,26 +7,16 @@ import java.net.URI;
|
|||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.jcr.RepositoryException;
|
||||
import javax.jcr.Session;
|
||||
import javax.servlet.ServletContext;
|
||||
import javax.ws.rs.Consumes;
|
||||
import javax.ws.rs.FormParam;
|
||||
import javax.ws.rs.POST;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.PathParam;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import javax.ws.rs.core.Response;
|
||||
|
||||
import org.apache.commons.compress.archivers.ArchiveException;
|
||||
import org.gcube.common.gxrest.response.outbound.GXOutboundErrorResponse;
|
||||
import org.gcube.common.storagehub.model.exceptions.BackendGenericError;
|
||||
import org.gcube.common.storagehub.model.exceptions.StorageHubException;
|
||||
import org.gcube.common.storagehub.model.items.GCubeItem;
|
||||
import org.gcube.data.access.storagehub.Constants;
|
||||
import org.gcube.data.access.storagehub.StorageHubAppllicationManager;
|
||||
import org.gcube.data.access.storagehub.handlers.CredentialHandler;
|
||||
import org.gcube.data.access.storagehub.handlers.items.ItemHandler;
|
||||
import org.gcube.data.access.storagehub.handlers.items.builders.ArchiveStructureCreationParameter;
|
||||
import org.gcube.data.access.storagehub.handlers.items.builders.FileCreationParameters;
|
||||
|
@ -44,6 +34,17 @@ import org.slf4j.LoggerFactory;
|
|||
import com.webcohesion.enunciate.metadata.rs.RequestHeader;
|
||||
import com.webcohesion.enunciate.metadata.rs.RequestHeaders;
|
||||
|
||||
import jakarta.inject.Inject;
|
||||
import jakarta.servlet.ServletContext;
|
||||
import jakarta.ws.rs.Consumes;
|
||||
import jakarta.ws.rs.FormParam;
|
||||
import jakarta.ws.rs.POST;
|
||||
import jakarta.ws.rs.Path;
|
||||
import jakarta.ws.rs.PathParam;
|
||||
import jakarta.ws.rs.core.Context;
|
||||
import jakarta.ws.rs.core.MediaType;
|
||||
import jakarta.ws.rs.core.Response;
|
||||
|
||||
|
||||
@Path("items")
|
||||
@ManagedBy(StorageHubAppllicationManager.class)
|
||||
|
@ -67,12 +68,12 @@ public class ItemsCreator extends Impersonable{
|
|||
@Path("/{id}/create/FOLDER")
|
||||
public Response createFolder(@PathParam("id") String id, @FormParam("name") String name,
|
||||
@FormParam("description") String description, @FormParam("hidden") boolean hidden) {
|
||||
InnerMethodName.instance.set("createItem(FOLDER)");
|
||||
InnerMethodName.set("createItem(FOLDER)");
|
||||
log.info("create folder item called");
|
||||
Session ses = null;
|
||||
String toReturn = null;
|
||||
try{
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
ItemsParameterBuilder<FolderCreationParameters> builder = FolderCreationParameters.builder().name(name).description(description).hidden(hidden).on(id).with(ses).author(currentUser);
|
||||
toReturn = itemHandler.create(builder.build());
|
||||
}catch(StorageHubException she ){
|
||||
|
@ -99,13 +100,13 @@ public class ItemsCreator extends Impersonable{
|
|||
@FormParam("description") String description, @FormParam("hidden") boolean hidden,
|
||||
@FormParam("pluginName") String pluginName,
|
||||
@FormParam("parameters") String pluginParameters) {
|
||||
InnerMethodName.instance.set("createItem(EXTERNALFOLDER)");
|
||||
InnerMethodName.set("createItem(EXTERNALFOLDER)");
|
||||
log.info("create folder item called");
|
||||
Session ses = null;
|
||||
String toReturn = null;
|
||||
try{
|
||||
//TODO
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
ItemsParameterBuilder<FolderCreationParameters> builder = FolderCreationParameters.builder().name(name)
|
||||
.description(description).onRepository(pluginName).withParameters(null).hidden(hidden).on(id).with(ses).author(currentUser);
|
||||
toReturn = itemHandler.create(builder.build());
|
||||
|
@ -130,12 +131,12 @@ public class ItemsCreator extends Impersonable{
|
|||
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
|
||||
@Path("/{id}/create/URL")
|
||||
public Response createURL(@PathParam("id") String id, @FormParam("name") String name, @FormParam("description") String description, @FormParam("value") URL value) {
|
||||
InnerMethodName.instance.set("createItem(URL)");
|
||||
InnerMethodName.set("createItem(URL)");
|
||||
log.info("create url called");
|
||||
Session ses = null;
|
||||
String toReturn = null;
|
||||
try{
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
|
||||
ItemsParameterBuilder<URLCreationParameters> builder = URLCreationParameters.builder().name(name).description(description).url(value).on(id).with(ses).author(currentUser);
|
||||
|
||||
|
@ -162,13 +163,13 @@ public class ItemsCreator extends Impersonable{
|
|||
@Consumes(MediaType.APPLICATION_JSON)
|
||||
@Path("/{id}/create/GCUBEITEM")
|
||||
public String createGcubeItem(@PathParam("id") String id, GCubeItem item) {
|
||||
InnerMethodName.instance.set("createItem(GCUBEITEM)");
|
||||
InnerMethodName.set("createItem(GCUBEITEM)");
|
||||
log.info("create Gcube item called");
|
||||
Session ses = null;
|
||||
String toReturn = null;
|
||||
|
||||
try{
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
ItemsParameterBuilder<GCubeItemCreationParameters> builder = GCubeItemCreationParameters.builder().item(item).on(id).with(ses).author(currentUser);
|
||||
|
||||
toReturn = itemHandler.create(builder.build());
|
||||
|
@ -195,14 +196,14 @@ public class ItemsCreator extends Impersonable{
|
|||
public String createFileItemFromUrl(@PathParam("id") String id, @FormParam("name") String name,
|
||||
@FormParam("description") String description,
|
||||
@FormParam("url") String url){
|
||||
InnerMethodName.instance.set("createItem(FILEFromUrl)");
|
||||
InnerMethodName.set("createItem(FILEFromUrl)");
|
||||
|
||||
Session ses = null;
|
||||
String toReturn = null;
|
||||
try{
|
||||
|
||||
log.debug("UPLOAD: call started");
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
|
||||
|
||||
URLConnection connectionURL = new URI(url).toURL().openConnection();
|
||||
|
@ -242,7 +243,7 @@ public class ItemsCreator extends Impersonable{
|
|||
@FormDataParam("description") String description,
|
||||
@FormDataParam("file") InputStream stream,
|
||||
@FormDataParam("file") FormDataContentDisposition fileDetail){
|
||||
InnerMethodName.instance.set("createItem(FILE)");
|
||||
InnerMethodName.set("createItem(FILE)");
|
||||
|
||||
Session ses = null;
|
||||
String toReturn = null;
|
||||
|
@ -251,7 +252,7 @@ public class ItemsCreator extends Impersonable{
|
|||
long size = fileDetail.getSize();
|
||||
|
||||
log.info("UPLOAD: call started with file size {}",size);
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
ItemsParameterBuilder<FileCreationParameters> builder = FileCreationParameters.builder().name(name).description(description).stream(stream).fileDetails(fileDetail)
|
||||
.on(id).with(ses).author(currentUser);
|
||||
log.debug("UPLOAD: item prepared");
|
||||
|
@ -283,13 +284,13 @@ public class ItemsCreator extends Impersonable{
|
|||
@Path("/{id}/create/ARCHIVE")
|
||||
public String uploadArchiveFromURL(@PathParam("id") String id, @FormParam("parentFolderName") String parentFolderName,
|
||||
@FormParam("url") String url){
|
||||
InnerMethodName.instance.set("createItem(ARCHIVEFromURL)");
|
||||
InnerMethodName.set("createItem(ARCHIVEFromURL)");
|
||||
|
||||
Session ses = null;
|
||||
String toReturn = null;
|
||||
try{
|
||||
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
try(InputStream stream = new URI(url).toURL().openStream()){
|
||||
ItemsParameterBuilder<ArchiveStructureCreationParameter> builder = ArchiveStructureCreationParameter.builder().parentName(parentFolderName).stream(stream)
|
||||
.on(id).with(ses).author(currentUser);
|
||||
|
@ -319,12 +320,12 @@ public class ItemsCreator extends Impersonable{
|
|||
public String uploadArchive(@PathParam("id") String id, @FormDataParam("parentFolderName") String parentFolderName,
|
||||
@FormDataParam("file") InputStream stream,
|
||||
@FormDataParam("file") FormDataContentDisposition fileDetail){
|
||||
InnerMethodName.instance.set("createItem(ARCHIVE)");
|
||||
InnerMethodName.set("createItem(ARCHIVE)");
|
||||
|
||||
Session ses = null;
|
||||
String toReturn = null;
|
||||
try(InputStream is = new BufferedInputStream(stream)){
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
|
||||
ItemsParameterBuilder<ArchiveStructureCreationParameter> builder = ArchiveStructureCreationParameter.builder().parentName(parentFolderName).stream(is).fileDetails(fileDetail)
|
||||
.on(id).with(ses).author(currentUser);
|
||||
|
|
|
@ -8,8 +8,6 @@ import java.util.Collections;
|
|||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.enterprise.context.RequestScoped;
|
||||
import javax.inject.Inject;
|
||||
import javax.jcr.ItemNotFoundException;
|
||||
import javax.jcr.Node;
|
||||
import javax.jcr.NodeIterator;
|
||||
|
@ -17,20 +15,6 @@ import javax.jcr.RepositoryException;
|
|||
import javax.jcr.Session;
|
||||
import javax.jcr.lock.LockException;
|
||||
import javax.jcr.version.Version;
|
||||
import javax.servlet.ServletContext;
|
||||
import javax.ws.rs.Consumes;
|
||||
import javax.ws.rs.DELETE;
|
||||
import javax.ws.rs.FormParam;
|
||||
import javax.ws.rs.GET;
|
||||
import javax.ws.rs.PUT;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.PathParam;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.QueryParam;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import javax.ws.rs.core.Response;
|
||||
import javax.ws.rs.core.Response.Status;
|
||||
|
||||
import org.gcube.common.authorization.control.annotations.AuthorizationControl;
|
||||
import org.gcube.common.gxrest.response.outbound.GXOutboundErrorResponse;
|
||||
|
@ -61,9 +45,7 @@ import org.gcube.data.access.storagehub.Range;
|
|||
import org.gcube.data.access.storagehub.StorageHubAppllicationManager;
|
||||
import org.gcube.data.access.storagehub.Utils;
|
||||
import org.gcube.data.access.storagehub.accounting.AccountingHandler;
|
||||
import org.gcube.data.access.storagehub.exception.MyAuthException;
|
||||
import org.gcube.data.access.storagehub.handlers.ClassHandler;
|
||||
import org.gcube.data.access.storagehub.handlers.CredentialHandler;
|
||||
import org.gcube.data.access.storagehub.handlers.DownloadHandler;
|
||||
import org.gcube.data.access.storagehub.handlers.PublicLinkHandler;
|
||||
import org.gcube.data.access.storagehub.handlers.TrashHandler;
|
||||
|
@ -80,6 +62,23 @@ import org.slf4j.LoggerFactory;
|
|||
import com.webcohesion.enunciate.metadata.rs.RequestHeader;
|
||||
import com.webcohesion.enunciate.metadata.rs.RequestHeaders;
|
||||
|
||||
import jakarta.enterprise.context.RequestScoped;
|
||||
import jakarta.inject.Inject;
|
||||
import jakarta.servlet.ServletContext;
|
||||
import jakarta.ws.rs.Consumes;
|
||||
import jakarta.ws.rs.DELETE;
|
||||
import jakarta.ws.rs.FormParam;
|
||||
import jakarta.ws.rs.GET;
|
||||
import jakarta.ws.rs.PUT;
|
||||
import jakarta.ws.rs.Path;
|
||||
import jakarta.ws.rs.PathParam;
|
||||
import jakarta.ws.rs.Produces;
|
||||
import jakarta.ws.rs.QueryParam;
|
||||
import jakarta.ws.rs.core.Context;
|
||||
import jakarta.ws.rs.core.MediaType;
|
||||
import jakarta.ws.rs.core.Response;
|
||||
import jakarta.ws.rs.core.Response.Status;
|
||||
|
||||
|
||||
@Path("items")
|
||||
@ManagedBy(StorageHubAppllicationManager.class)
|
||||
|
@ -133,11 +132,11 @@ public class ItemsManager extends Impersonable{
|
|||
@Path("{id}")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public ItemWrapper<Item> getById(@QueryParam("exclude") List<String> excludes){
|
||||
InnerMethodName.instance.set("getById");
|
||||
InnerMethodName.set("getById");
|
||||
Session ses = null;
|
||||
Item toReturn = null;
|
||||
try{
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
Node node = ses.getNodeByIdentifier(id);
|
||||
authChecker.checkReadAuthorizationControl(ses, currentUser, id);
|
||||
toReturn = node2Item.getItem(node, excludes);
|
||||
|
@ -162,11 +161,11 @@ public class ItemsManager extends Impersonable{
|
|||
@Path("{id}/path")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public ItemWrapper<Item> getByRelativePath(@QueryParam("path") String path, @QueryParam("exclude") List<String> excludes){
|
||||
InnerMethodName.instance.set("getByPath");
|
||||
InnerMethodName.set("getByPath");
|
||||
Session ses = null;
|
||||
Item toReturn = null;
|
||||
try{
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
authChecker.checkReadAuthorizationControl(ses, currentUser, id);
|
||||
|
||||
String relativePath = path.startsWith("/")? path.substring(1) : path;
|
||||
|
@ -224,7 +223,7 @@ public class ItemsManager extends Impersonable{
|
|||
@Path("{id}/items/{name}")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public ItemList findChildrenByNamePatternInPath(@QueryParam("exclude") List<String> excludes, @PathParam("name") String name){
|
||||
InnerMethodName.instance.set("findChildrenByNamePattern");
|
||||
InnerMethodName.set("findChildrenByNamePattern");
|
||||
return _findChildrenByNamePattern(excludes, name);
|
||||
}
|
||||
|
||||
|
@ -232,7 +231,7 @@ public class ItemsManager extends Impersonable{
|
|||
@Path("{id}/items")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public ItemList findChildrenByNamePattern(@QueryParam("exclude") List<String> excludes, @QueryParam("name") String name){
|
||||
InnerMethodName.instance.set("findChildrenByNamePattern");
|
||||
InnerMethodName.set("findChildrenByNamePattern");
|
||||
return _findChildrenByNamePattern(excludes, name);
|
||||
}
|
||||
|
||||
|
@ -240,7 +239,7 @@ public class ItemsManager extends Impersonable{
|
|||
Session ses = null;
|
||||
List<Item> toReturn = new ArrayList<>();
|
||||
try{
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
authChecker.checkReadAuthorizationControl(ses, currentUser, id);
|
||||
|
||||
//NOT using the internal pattern matching of jcr because of title for shared folder
|
||||
|
@ -281,12 +280,12 @@ public class ItemsManager extends Impersonable{
|
|||
@Path("{id}/children/count")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public Long countById(@QueryParam("showHidden") Boolean showHidden, @QueryParam("exclude") List<String> excludes, @QueryParam("onlyType") String nodeType){
|
||||
InnerMethodName.instance.set("countById");
|
||||
InnerMethodName.set("countById");
|
||||
Session ses = null;
|
||||
Long toReturn = null;
|
||||
|
||||
try{
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
authChecker.checkReadAuthorizationControl(ses, currentUser, id);
|
||||
toReturn = Utils.getItemCount(ses.getNodeByIdentifier(id), showHidden==null?false:showHidden, nodeType!=null ? ClassHandler.instance().get(nodeType) : null);
|
||||
}catch (ItemNotFoundException e) {
|
||||
|
@ -309,11 +308,11 @@ public class ItemsManager extends Impersonable{
|
|||
@Path("{id}/children")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public ItemList listById(@QueryParam("showHidden") Boolean showHidden, @QueryParam("exclude") List<String> excludes, @QueryParam("onlyType") String nodeType){
|
||||
InnerMethodName.instance.set("listById");
|
||||
InnerMethodName.set("listById");
|
||||
Session ses = null;
|
||||
List<? extends Item> toReturn = null;
|
||||
try{
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
authChecker.checkReadAuthorizationControl(ses, currentUser, id);
|
||||
toReturn = Utils.getItemList(ses.getNodeByIdentifier(id), excludes, null, showHidden==null?false:showHidden, nodeType!=null ? ClassHandler.instance().get(nodeType) : null);
|
||||
}catch (ItemNotFoundException e) {
|
||||
|
@ -337,12 +336,12 @@ public class ItemsManager extends Impersonable{
|
|||
@Path("{id}/search")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public ItemList searchItems(@QueryParam("showHidden") Boolean showHidden, @QueryParam("excludeTrashed") Boolean excludeTrashed, @QueryParam("exclude") List<String> excludes, @QueryParam("onlyType") String nodeType,@QueryParam("name") String name ){
|
||||
InnerMethodName.instance.set("search");
|
||||
InnerMethodName.set("search");
|
||||
Session ses = null;
|
||||
List<? extends Item> toReturn = null;
|
||||
try{
|
||||
log.debug("search for node {}",name);
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
authChecker.checkReadAuthorizationControl(ses, currentUser, id);
|
||||
toReturn = Utils.searchByNameOnFolder(ses, currentUser, authChecker, ses.getNodeByIdentifier(id), excludes, null, showHidden==null?false:showHidden,excludeTrashed==true?false:excludeTrashed , nodeType!=null ? ClassHandler.instance().get(nodeType) : null, name);
|
||||
log.debug("search retrieved {} elements",toReturn.size());
|
||||
|
@ -367,11 +366,11 @@ public class ItemsManager extends Impersonable{
|
|||
@Path("{id}/children/paged")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public ItemList listByIdPaged(@QueryParam("showHidden") Boolean showHidden, @QueryParam("start") Integer start, @QueryParam("limit") Integer limit, @QueryParam("exclude") List<String> excludes, @QueryParam("onlyType") String nodeType){
|
||||
InnerMethodName.instance.set("listByIdPaged");
|
||||
InnerMethodName.set("listByIdPaged");
|
||||
Session ses = null;
|
||||
List<? extends Item> toReturn = null;
|
||||
try{
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
authChecker.checkReadAuthorizationControl(ses, currentUser, id);
|
||||
toReturn = Utils.getItemList(ses.getNodeByIdentifier(id), excludes, new Range(start, limit),showHidden==null?false:showHidden, nodeType!=null ? ClassHandler.instance().get(nodeType) : null);
|
||||
}catch (ItemNotFoundException e) {
|
||||
|
@ -393,14 +392,14 @@ public class ItemsManager extends Impersonable{
|
|||
|
||||
@GET
|
||||
@Path("publiclink/{id}")
|
||||
@AuthorizationControl(allowedUsers={"URIResolver"}, exception=MyAuthException.class)
|
||||
@AuthorizationControl(allowedUsers={"URIResolver"})
|
||||
public Response resolvePublicLink() {
|
||||
InnerMethodName.instance.set("resolvePubliclink");
|
||||
InnerMethodName.set("resolvePubliclink");
|
||||
|
||||
log.warn("arrived id is {}",id);
|
||||
Session ses = null;
|
||||
try{
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
PublicLink publicLink = publicLinkHandler.resolveEnchriptedId(id);
|
||||
switch (publicLink.getType()) {
|
||||
case VOLATILE:
|
||||
|
@ -430,11 +429,11 @@ public class ItemsManager extends Impersonable{
|
|||
@Produces(MediaType.APPLICATION_JSON)
|
||||
@Path("{id}/publiclink")
|
||||
public URL getPublicLink(@QueryParam("version") String version) {
|
||||
InnerMethodName.instance.set("getPubliclink");
|
||||
InnerMethodName.set("getPubliclink");
|
||||
Session ses = null;
|
||||
URL toReturn = null;
|
||||
try{
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
authChecker.checkReadAuthorizationControl(ses, currentUser, id);
|
||||
|
||||
Node selectedNode = ses.getNodeByIdentifier(id);
|
||||
|
@ -493,11 +492,11 @@ public class ItemsManager extends Impersonable{
|
|||
@Path("{id}/publish")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String makeFolderPublic(@FormParam("publish") boolean publish){
|
||||
InnerMethodName.instance.set("makeFolderPublic("+publish+")");
|
||||
InnerMethodName.set("makeFolderPublic("+publish+")");
|
||||
Session ses = null;
|
||||
Item folder= null;
|
||||
try{
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
authChecker.checkWriteAuthorizationControl(ses, currentUser, id, false);
|
||||
Node currentNode =ses.getNodeByIdentifier(id);
|
||||
log.trace("current node is {}",currentNode.getPath());
|
||||
|
@ -529,11 +528,11 @@ public class ItemsManager extends Impersonable{
|
|||
@Path("{id}/rootSharedFolder")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public ItemWrapper<Item> getRootSharedFolder(@QueryParam("exclude") List<String> excludes){
|
||||
InnerMethodName.instance.set("getRootSharedFolder");
|
||||
InnerMethodName.set("getRootSharedFolder");
|
||||
Session ses = null;
|
||||
Item sharedParent= null;
|
||||
try{
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
authChecker.checkReadAuthorizationControl(ses, currentUser, id);
|
||||
Node currentNode =ses.getNodeByIdentifier(id);
|
||||
log.trace("current node is {}",currentNode.getPath());
|
||||
|
@ -572,11 +571,11 @@ public class ItemsManager extends Impersonable{
|
|||
@Path("{id}/versions")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public VersionList getVersions(){
|
||||
InnerMethodName.instance.set("getVersions");
|
||||
InnerMethodName.set("getVersions");
|
||||
Session ses = null;
|
||||
List<org.gcube.common.storagehub.model.service.Version> versions = new ArrayList<>();
|
||||
try{
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
authChecker.checkReadAuthorizationControl(ses, currentUser, id);
|
||||
|
||||
Node node = ses.getNodeByIdentifier(id);
|
||||
|
@ -608,10 +607,10 @@ public class ItemsManager extends Impersonable{
|
|||
@GET
|
||||
@Path("{id}/versions/{version}/download")
|
||||
public Response downloadVersion(@PathParam("version") String versionName){
|
||||
InnerMethodName.instance.set("downloadSpecificVersion");
|
||||
InnerMethodName.set("downloadSpecificVersion");
|
||||
Session ses = null;
|
||||
try{
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
authChecker.checkReadAuthorizationControl(ses, currentUser, id);
|
||||
Node node = ses.getNodeByIdentifier(id);
|
||||
Item currentItem = node2Item.getItem(node, Excludes.ALL);
|
||||
|
@ -636,10 +635,10 @@ public class ItemsManager extends Impersonable{
|
|||
@DELETE
|
||||
@Path("{id}/versions/{version}")
|
||||
public void deleteVersion(@PathParam("version") String versionName){
|
||||
InnerMethodName.instance.set("deleteVersion");
|
||||
InnerMethodName.set("deleteVersion");
|
||||
Session ses = null;
|
||||
try{
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
authChecker.checkWriteAuthorizationControl(ses, currentUser, id, false);
|
||||
Node node = ses.getNodeByIdentifier(id);
|
||||
Item currentItem = node2Item.getItem(node, Excludes.GET_ONLY_CONTENT);
|
||||
|
@ -680,13 +679,13 @@ public class ItemsManager extends Impersonable{
|
|||
@Path("{id}/anchestors")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public ItemList getAnchestors(@QueryParam("exclude") List<String> excludes){
|
||||
InnerMethodName.instance.set("getAnchestors");
|
||||
InnerMethodName.set("getAnchestors");
|
||||
org.gcube.common.storagehub.model.Path absolutePath = pathUtil.getWorkspacePath(currentUser);
|
||||
Session ses = null;
|
||||
List<Item> toReturn = new LinkedList<>();
|
||||
try{
|
||||
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
authChecker.checkReadAuthorizationControl(ses, currentUser, id);
|
||||
Node currentNode = ses.getNodeByIdentifier(id);
|
||||
Item currentItem = node2Item.getItem(currentNode, excludes);
|
||||
|
@ -736,10 +735,10 @@ public class ItemsManager extends Impersonable{
|
|||
@GET
|
||||
@Path("{id}/download")
|
||||
public Response download(@QueryParam("exclude") List<String> excludes){
|
||||
InnerMethodName.instance.set("downloadById");
|
||||
InnerMethodName.set("downloadById");
|
||||
Session ses = null;
|
||||
try{
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
final Node node = ses.getNodeByIdentifier(id);
|
||||
authChecker.checkReadAuthorizationControl(ses, currentUser, id);
|
||||
final Item item = node2Item.getItem(node, null);
|
||||
|
@ -765,12 +764,12 @@ public class ItemsManager extends Impersonable{
|
|||
@PUT
|
||||
@Path("{id}/move")
|
||||
public String move(@FormParam("destinationId") String destinationId){
|
||||
InnerMethodName.instance.set("move");
|
||||
InnerMethodName.set("move");
|
||||
|
||||
Session ses = null;
|
||||
try{
|
||||
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
|
||||
authChecker.checkMoveOpsForProtectedFolders(ses, id);
|
||||
authChecker.checkWriteAuthorizationControl(ses, currentUser, destinationId, true);
|
||||
|
@ -843,13 +842,13 @@ public class ItemsManager extends Impersonable{
|
|||
@PUT
|
||||
@Path("{id}/copy")
|
||||
public String copy(@FormParam("destinationId") String destinationId, @FormParam("fileName") String newFileName){
|
||||
InnerMethodName.instance.set("copy");
|
||||
InnerMethodName.set("copy");
|
||||
//TODO: check if identifier is The Workspace root, or the trash folder or the VREFolder root or if the item is thrashed
|
||||
Session ses = null;
|
||||
String newFileIdentifier = null;
|
||||
try{
|
||||
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
|
||||
authChecker.checkWriteAuthorizationControl(ses, currentUser, destinationId, true);
|
||||
authChecker.checkReadAuthorizationControl(ses, currentUser, id);
|
||||
|
@ -917,12 +916,12 @@ public class ItemsManager extends Impersonable{
|
|||
@PUT
|
||||
@Path("{id}/rename")
|
||||
public Response rename(@FormParam("newName") String newName){
|
||||
InnerMethodName.instance.set("rename");
|
||||
InnerMethodName.set("rename");
|
||||
Session ses = null;
|
||||
|
||||
try{
|
||||
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
|
||||
authChecker.checkMoveOpsForProtectedFolders(ses, id);
|
||||
authChecker.checkWriteAuthorizationControl(ses, currentUser, id, false);
|
||||
|
@ -975,13 +974,13 @@ public class ItemsManager extends Impersonable{
|
|||
@Consumes(MediaType.APPLICATION_JSON)
|
||||
@Path("/{id}/hidden")
|
||||
public Response setItemAsHidden(Boolean hidden){
|
||||
InnerMethodName.instance.set("setHidden");
|
||||
InnerMethodName.set("setHidden");
|
||||
|
||||
Session ses = null;
|
||||
|
||||
try{
|
||||
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
|
||||
authChecker.checkWriteAuthorizationControl(ses, currentUser, id, false);
|
||||
|
||||
|
@ -1020,13 +1019,13 @@ public class ItemsManager extends Impersonable{
|
|||
@Consumes(MediaType.APPLICATION_JSON)
|
||||
@Path("/{id}/description")
|
||||
public Response setDescription(String description){
|
||||
InnerMethodName.instance.set("setDescription");
|
||||
InnerMethodName.set("setDescription");
|
||||
|
||||
Session ses = null;
|
||||
|
||||
try{
|
||||
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
|
||||
authChecker.checkWriteAuthorizationControl(ses, currentUser, id, false);
|
||||
|
||||
|
@ -1064,13 +1063,13 @@ public class ItemsManager extends Impersonable{
|
|||
@Consumes(MediaType.APPLICATION_JSON)
|
||||
@Path("/{id}/metadata")
|
||||
public Response setMetadata(org.gcube.common.storagehub.model.Metadata metadata){
|
||||
InnerMethodName.instance.set("updateMetadata");
|
||||
InnerMethodName.set("updateMetadata");
|
||||
|
||||
Session ses = null;
|
||||
|
||||
try{
|
||||
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
|
||||
authChecker.checkWriteAuthorizationControl(ses, currentUser, id, false);
|
||||
|
||||
|
@ -1109,7 +1108,7 @@ public class ItemsManager extends Impersonable{
|
|||
@DELETE
|
||||
@Path("{id}")
|
||||
public Response deleteItem(@QueryParam("force") boolean force){
|
||||
InnerMethodName.instance.set("deleteItem("+force+")");
|
||||
InnerMethodName.set("deleteItem("+force+")");
|
||||
|
||||
Session ses = null;
|
||||
try{
|
||||
|
@ -1117,7 +1116,7 @@ public class ItemsManager extends Impersonable{
|
|||
log.info("removing node with id {}", id);
|
||||
|
||||
//TODO check if it is possible to change all the ACL on a workspace
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
|
||||
authChecker.checkWriteAuthorizationControl(ses, currentUser, id, false);
|
||||
authChecker.checkMoveOpsForProtectedFolders(ses, id);
|
||||
|
|
|
@ -5,28 +5,11 @@ import java.util.Arrays;
|
|||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
import javax.enterprise.context.RequestScoped;
|
||||
import javax.inject.Inject;
|
||||
import javax.jcr.ItemNotFoundException;
|
||||
import javax.jcr.Node;
|
||||
import javax.jcr.NodeIterator;
|
||||
import javax.jcr.RepositoryException;
|
||||
import javax.jcr.Session;
|
||||
import javax.servlet.ServletContext;
|
||||
import javax.ws.rs.Consumes;
|
||||
import javax.ws.rs.DELETE;
|
||||
import javax.ws.rs.FormParam;
|
||||
import javax.ws.rs.GET;
|
||||
import javax.ws.rs.POST;
|
||||
import javax.ws.rs.PUT;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.PathParam;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.QueryParam;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import javax.ws.rs.core.Response;
|
||||
import javax.ws.rs.core.Response.Status;
|
||||
|
||||
import org.apache.jackrabbit.api.JackrabbitSession;
|
||||
import org.apache.jackrabbit.api.security.user.User;
|
||||
|
@ -55,7 +38,6 @@ import org.gcube.data.access.storagehub.PathUtil;
|
|||
import org.gcube.data.access.storagehub.StorageHubAppllicationManager;
|
||||
import org.gcube.data.access.storagehub.Utils;
|
||||
import org.gcube.data.access.storagehub.accounting.AccountingHandler;
|
||||
import org.gcube.data.access.storagehub.handlers.CredentialHandler;
|
||||
import org.gcube.data.access.storagehub.handlers.TrashHandler;
|
||||
import org.gcube.data.access.storagehub.handlers.items.Item2NodeConverter;
|
||||
import org.gcube.data.access.storagehub.handlers.items.Item2NodeConverter.Values;
|
||||
|
@ -70,6 +52,24 @@ import org.slf4j.LoggerFactory;
|
|||
import com.webcohesion.enunciate.metadata.rs.RequestHeader;
|
||||
import com.webcohesion.enunciate.metadata.rs.RequestHeaders;
|
||||
|
||||
import jakarta.enterprise.context.RequestScoped;
|
||||
import jakarta.inject.Inject;
|
||||
import jakarta.servlet.ServletContext;
|
||||
import jakarta.ws.rs.Consumes;
|
||||
import jakarta.ws.rs.DELETE;
|
||||
import jakarta.ws.rs.FormParam;
|
||||
import jakarta.ws.rs.GET;
|
||||
import jakarta.ws.rs.POST;
|
||||
import jakarta.ws.rs.PUT;
|
||||
import jakarta.ws.rs.Path;
|
||||
import jakarta.ws.rs.PathParam;
|
||||
import jakarta.ws.rs.Produces;
|
||||
import jakarta.ws.rs.QueryParam;
|
||||
import jakarta.ws.rs.core.Context;
|
||||
import jakarta.ws.rs.core.MediaType;
|
||||
import jakarta.ws.rs.core.Response;
|
||||
import jakarta.ws.rs.core.Response.Status;
|
||||
|
||||
@Path("messages")
|
||||
@ManagedBy(StorageHubAppllicationManager.class)
|
||||
@RequestHeaders({
|
||||
|
@ -105,11 +105,11 @@ public class MessageManager extends Impersonable{
|
|||
@Path("{id}")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public Message getById(){
|
||||
InnerMethodName.instance.set("getMessageById");
|
||||
InnerMethodName.set("getMessageById");
|
||||
Session ses = null;
|
||||
Message toReturn = null;
|
||||
try{
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
Node messageNode = ses.getNodeByIdentifier(id);
|
||||
toReturn = node2Item.getMessageItem(messageNode);
|
||||
checkRights(currentUser, toReturn);
|
||||
|
@ -133,10 +133,10 @@ public class MessageManager extends Impersonable{
|
|||
@DELETE
|
||||
@Path("{id}")
|
||||
public void deleteById(){
|
||||
InnerMethodName.instance.set("deleteMessageById");
|
||||
InnerMethodName.set("deleteMessageById");
|
||||
Session ses = null;
|
||||
try{
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
Node messageNode = ses.getNodeByIdentifier(id);
|
||||
Message message = node2Item.getMessageItem(messageNode);
|
||||
Node personalNode = checkRights(currentUser, message);
|
||||
|
@ -173,11 +173,11 @@ public class MessageManager extends Impersonable{
|
|||
@Path("{id}/attachments")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public ItemList getAttachments(){
|
||||
InnerMethodName.instance.set("getAttachmentsByMessageId");
|
||||
InnerMethodName.set("getAttachmentsByMessageId");
|
||||
Session ses = null;
|
||||
List<Item> attachments = new ArrayList<>();
|
||||
try{
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
Node messageNode = ses.getNodeByIdentifier(id);
|
||||
Message messageItem = node2Item.getMessageItem(messageNode);
|
||||
checkRights(currentUser, messageItem);
|
||||
|
@ -204,11 +204,11 @@ public class MessageManager extends Impersonable{
|
|||
@Path("inbox")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public MessageList getReceivedMessages(@QueryParam("reduceBody") Integer reduceBody){
|
||||
InnerMethodName.instance.set("getReceivedMessages");
|
||||
InnerMethodName.set("getReceivedMessages");
|
||||
Session ses = null;
|
||||
List<Message> toReturn = null;
|
||||
try{
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
|
||||
Node node = ses.getNode(pathUtil.getInboxPath(currentUser).toPath());
|
||||
|
||||
|
@ -229,11 +229,11 @@ public class MessageManager extends Impersonable{
|
|||
@Path("sent")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public MessageList getSentMessages(@QueryParam("reduceBody") Integer reduceBody){
|
||||
InnerMethodName.instance.set("getSentMessages");
|
||||
InnerMethodName.set("getSentMessages");
|
||||
Session ses = null;
|
||||
List<Message> toReturn = null;
|
||||
try{
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
|
||||
Node node = ses.getNode(pathUtil.getOutboxPath(currentUser).toPath());
|
||||
|
||||
|
@ -253,10 +253,10 @@ public class MessageManager extends Impersonable{
|
|||
@Path("{id}/{prop}")
|
||||
@Consumes(MediaType.APPLICATION_JSON)
|
||||
public void setProperty(@PathParam("prop") String property,Object value){
|
||||
InnerMethodName.instance.set("setPropertyOnMessage("+property+")");
|
||||
InnerMethodName.set("setPropertyOnMessage("+property+")");
|
||||
Session ses = null;
|
||||
try{
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
Node messageNode = ses.getNodeByIdentifier(id);
|
||||
Message messageItem = node2Item.getMessageItem(messageNode);
|
||||
checkRights(currentUser, messageItem);
|
||||
|
@ -286,7 +286,7 @@ public class MessageManager extends Impersonable{
|
|||
public String sendMessage(@FormParam("to[]") List<String> addresses,
|
||||
@FormParam("subject") String subject, @FormParam("body") String body,
|
||||
@FormParam("attachments[]") List<String> attachments){
|
||||
InnerMethodName.instance.set("sendMessage");
|
||||
InnerMethodName.set("sendMessage");
|
||||
JackrabbitSession ses = null;
|
||||
String messageId = null;
|
||||
try{
|
||||
|
@ -295,7 +295,7 @@ public class MessageManager extends Impersonable{
|
|||
|
||||
log.debug("attachments send are {}",attachments);
|
||||
|
||||
ses = (JackrabbitSession) repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = (JackrabbitSession) repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
|
||||
Message message = new MessageSharable();
|
||||
message.setAddresses(addresses.toArray(new String[0]));
|
||||
|
|
|
@ -3,11 +3,11 @@ package org.gcube.data.access.storagehub.services;
|
|||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.ws.rs.GET;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import jakarta.inject.Inject;
|
||||
import jakarta.ws.rs.GET;
|
||||
import jakarta.ws.rs.Path;
|
||||
import jakarta.ws.rs.Produces;
|
||||
import jakarta.ws.rs.core.MediaType;
|
||||
|
||||
import org.gcube.common.storagehub.model.storages.StorageDescriptor;
|
||||
import org.gcube.data.access.storagehub.StorageHubAppllicationManager;
|
||||
|
@ -32,7 +32,7 @@ public class StorageManager {
|
|||
@Path("/")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public List<StorageDescriptor> getStorages(){
|
||||
InnerMethodName.instance.set("getStorages");
|
||||
InnerMethodName.set("getStorages");
|
||||
List<StorageDescriptor> storages = new ArrayList<>();
|
||||
storageBackendHandler.getAllImplementations().forEach( f -> storages.add(new StorageDescriptor(f.getName())));
|
||||
return storages;
|
||||
|
|
|
@ -9,23 +9,9 @@ import java.util.Set;
|
|||
import java.util.function.Predicate;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.jcr.Node;
|
||||
import javax.jcr.PathNotFoundException;
|
||||
import javax.jcr.RepositoryException;
|
||||
import javax.servlet.ServletContext;
|
||||
import javax.ws.rs.Consumes;
|
||||
import javax.ws.rs.DELETE;
|
||||
import javax.ws.rs.FormParam;
|
||||
import javax.ws.rs.GET;
|
||||
import javax.ws.rs.POST;
|
||||
import javax.ws.rs.PUT;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.PathParam;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import javax.ws.rs.core.Response;
|
||||
|
||||
import org.apache.jackrabbit.api.JackrabbitSession;
|
||||
import org.apache.jackrabbit.api.security.user.Authorizable;
|
||||
|
@ -51,8 +37,6 @@ import org.gcube.data.access.storagehub.Constants;
|
|||
import org.gcube.data.access.storagehub.PathUtil;
|
||||
import org.gcube.data.access.storagehub.StorageHubAppllicationManager;
|
||||
import org.gcube.data.access.storagehub.Utils;
|
||||
import org.gcube.data.access.storagehub.exception.MyAuthException;
|
||||
import org.gcube.data.access.storagehub.handlers.CredentialHandler;
|
||||
import org.gcube.data.access.storagehub.handlers.GroupHandler;
|
||||
import org.gcube.data.access.storagehub.handlers.TrashHandler;
|
||||
import org.gcube.data.access.storagehub.handlers.UnshareHandler;
|
||||
|
@ -65,6 +49,21 @@ import org.slf4j.LoggerFactory;
|
|||
import com.webcohesion.enunciate.metadata.rs.RequestHeader;
|
||||
import com.webcohesion.enunciate.metadata.rs.RequestHeaders;
|
||||
|
||||
import jakarta.inject.Inject;
|
||||
import jakarta.servlet.ServletContext;
|
||||
import jakarta.ws.rs.Consumes;
|
||||
import jakarta.ws.rs.DELETE;
|
||||
import jakarta.ws.rs.FormParam;
|
||||
import jakarta.ws.rs.GET;
|
||||
import jakarta.ws.rs.POST;
|
||||
import jakarta.ws.rs.PUT;
|
||||
import jakarta.ws.rs.Path;
|
||||
import jakarta.ws.rs.PathParam;
|
||||
import jakarta.ws.rs.Produces;
|
||||
import jakarta.ws.rs.core.Context;
|
||||
import jakarta.ws.rs.core.MediaType;
|
||||
import jakarta.ws.rs.core.Response;
|
||||
|
||||
@Path("users")
|
||||
@ManagedBy(StorageHubAppllicationManager.class)
|
||||
@RequestHeaders({
|
||||
|
@ -99,7 +98,7 @@ public class UserManager {
|
|||
JackrabbitSession session = null;
|
||||
List<SHUBUser> users = null;
|
||||
try {
|
||||
session = (JackrabbitSession) repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
session = (JackrabbitSession) repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
|
||||
Iterator<Authorizable> result = session.getUserManager().findAuthorizables(new Query() {
|
||||
|
||||
|
@ -110,8 +109,7 @@ public class UserManager {
|
|||
});
|
||||
|
||||
Set<SHUBUser> usersSet= new HashSet<>();
|
||||
String adminUser = context.getInitParameter(Constants.ADMIN_PARAM_NAME);
|
||||
|
||||
String adminUser = Constants.ADMIN_USER;
|
||||
Node homeNode = session.getNode("/Home");
|
||||
|
||||
while (result.hasNext()) {
|
||||
|
@ -150,7 +148,7 @@ public class UserManager {
|
|||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public List<SHUBUser> getUsers(){
|
||||
|
||||
InnerMethodName.instance.set("getUsers");
|
||||
InnerMethodName.set("getUsers");
|
||||
try {
|
||||
return retrieveUsers();
|
||||
}catch (Throwable e) {
|
||||
|
@ -166,11 +164,11 @@ public class UserManager {
|
|||
@Path("{user}")
|
||||
public SHUBUser getUser(@PathParam("user") String user){
|
||||
|
||||
InnerMethodName.instance.set("getUser");
|
||||
InnerMethodName.set("getUser");
|
||||
|
||||
JackrabbitSession session = null;
|
||||
try {
|
||||
session = (JackrabbitSession) repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
session = (JackrabbitSession) repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
|
||||
org.apache.jackrabbit.api.security.user.UserManager usrManager = session.getUserManager();
|
||||
Authorizable authorizable = usrManager.getAuthorizable(user);
|
||||
|
@ -207,15 +205,15 @@ public class UserManager {
|
|||
@POST
|
||||
@Path("")
|
||||
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
|
||||
@AuthorizationControl(allowedRoles={INFRASTRUCTURE_MANAGER_ROLE}, exception=MyAuthException.class)
|
||||
@AuthorizationControl(allowedRoles={INFRASTRUCTURE_MANAGER_ROLE})
|
||||
public String createUser(@FormParam("user") String user, @FormParam("password") String password){
|
||||
|
||||
InnerMethodName.instance.set("createUser");
|
||||
InnerMethodName.set("createUser");
|
||||
|
||||
JackrabbitSession session = null;
|
||||
String userId = null;
|
||||
try {
|
||||
session = (JackrabbitSession) repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
session = (JackrabbitSession) repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
|
||||
|
||||
org.apache.jackrabbit.api.security.user.UserManager usrManager = session.getUserManager();
|
||||
|
@ -265,15 +263,15 @@ public class UserManager {
|
|||
@PUT
|
||||
@Path("{user}")
|
||||
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
|
||||
@AuthorizationControl(allowedRoles={INFRASTRUCTURE_MANAGER_ROLE}, exception=MyAuthException.class)
|
||||
@AuthorizationControl(allowedRoles={INFRASTRUCTURE_MANAGER_ROLE})
|
||||
public String updateHomeUserToLatestVersion(@PathParam("user") String user){
|
||||
|
||||
InnerMethodName.instance.set("updateHomeUserToLatestVersion");
|
||||
InnerMethodName.set("updateHomeUserToLatestVersion");
|
||||
|
||||
JackrabbitSession session = null;
|
||||
String userId = null;
|
||||
try {
|
||||
session = (JackrabbitSession) repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
session = (JackrabbitSession) repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
|
||||
|
||||
org.apache.jackrabbit.api.security.user.UserManager usrManager = session.getUserManager();
|
||||
|
@ -345,15 +343,15 @@ public class UserManager {
|
|||
|
||||
@DELETE
|
||||
@Path("{user}")
|
||||
@AuthorizationControl(allowedRoles={INFRASTRUCTURE_MANAGER_ROLE}, exception=MyAuthException.class)
|
||||
@AuthorizationControl(allowedRoles={INFRASTRUCTURE_MANAGER_ROLE})
|
||||
public String deleteUser(@PathParam("user") final String user){
|
||||
|
||||
InnerMethodName.instance.set("deleteUser");
|
||||
InnerMethodName.set("deleteUser");
|
||||
|
||||
JackrabbitSession session = null;
|
||||
try {
|
||||
|
||||
session = (JackrabbitSession) repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
session = (JackrabbitSession) repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
|
||||
org.apache.jackrabbit.api.security.user.UserManager usrManager = session.getUserManager();
|
||||
|
||||
|
@ -393,12 +391,12 @@ public class UserManager {
|
|||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public List<String> getGroupsPerUser(@PathParam("user") final String user){
|
||||
|
||||
InnerMethodName.instance.set("getGroupsPerUser");
|
||||
InnerMethodName.set("getGroupsPerUser");
|
||||
|
||||
JackrabbitSession session = null;
|
||||
List<String> groups= new ArrayList<>();
|
||||
try {
|
||||
session = (JackrabbitSession) repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
session = (JackrabbitSession) repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
|
||||
org.apache.jackrabbit.api.security.user.UserManager usrManager = session.getUserManager();
|
||||
User authUser = (User) usrManager.getAuthorizable(new PrincipalImpl(user));
|
||||
|
|
|
@ -4,24 +4,9 @@ import java.io.InputStream;
|
|||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import javax.enterprise.context.RequestScoped;
|
||||
import javax.inject.Inject;
|
||||
import javax.jcr.Node;
|
||||
import javax.jcr.RepositoryException;
|
||||
import javax.jcr.Session;
|
||||
import javax.servlet.ServletContext;
|
||||
import javax.ws.rs.Consumes;
|
||||
import javax.ws.rs.DELETE;
|
||||
import javax.ws.rs.FormParam;
|
||||
import javax.ws.rs.GET;
|
||||
import javax.ws.rs.POST;
|
||||
import javax.ws.rs.PUT;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.QueryParam;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import javax.ws.rs.core.Response;
|
||||
|
||||
import org.apache.jackrabbit.api.JackrabbitSession;
|
||||
import org.gcube.common.gxrest.response.outbound.GXOutboundErrorResponse;
|
||||
|
@ -48,7 +33,6 @@ import org.gcube.data.access.storagehub.PathUtil;
|
|||
import org.gcube.data.access.storagehub.Range;
|
||||
import org.gcube.data.access.storagehub.StorageHubAppllicationManager;
|
||||
import org.gcube.data.access.storagehub.Utils;
|
||||
import org.gcube.data.access.storagehub.handlers.CredentialHandler;
|
||||
import org.gcube.data.access.storagehub.handlers.PublicLinkHandler;
|
||||
import org.gcube.data.access.storagehub.handlers.TrashHandler;
|
||||
import org.gcube.data.access.storagehub.handlers.items.Item2NodeConverter;
|
||||
|
@ -69,6 +53,22 @@ import org.slf4j.LoggerFactory;
|
|||
import com.webcohesion.enunciate.metadata.rs.RequestHeader;
|
||||
import com.webcohesion.enunciate.metadata.rs.RequestHeaders;
|
||||
|
||||
import jakarta.enterprise.context.RequestScoped;
|
||||
import jakarta.inject.Inject;
|
||||
import jakarta.servlet.ServletContext;
|
||||
import jakarta.ws.rs.Consumes;
|
||||
import jakarta.ws.rs.DELETE;
|
||||
import jakarta.ws.rs.FormParam;
|
||||
import jakarta.ws.rs.GET;
|
||||
import jakarta.ws.rs.POST;
|
||||
import jakarta.ws.rs.PUT;
|
||||
import jakarta.ws.rs.Path;
|
||||
import jakarta.ws.rs.Produces;
|
||||
import jakarta.ws.rs.QueryParam;
|
||||
import jakarta.ws.rs.core.Context;
|
||||
import jakarta.ws.rs.core.MediaType;
|
||||
import jakarta.ws.rs.core.Response;
|
||||
|
||||
@Path("/")
|
||||
@ManagedBy(StorageHubAppllicationManager.class)
|
||||
@RequestHeaders({
|
||||
|
@ -116,7 +116,7 @@ public class WorkspaceManager extends Impersonable{
|
|||
@GET
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public ItemWrapper<Item> getWorkspace(@QueryParam("relPath") String relPath){
|
||||
InnerMethodName.instance.set("getWorkspace");
|
||||
InnerMethodName.set("getWorkspace");
|
||||
Session ses = null;
|
||||
org.gcube.common.storagehub.model.Path absolutePath;
|
||||
if (relPath==null)
|
||||
|
@ -125,7 +125,7 @@ public class WorkspaceManager extends Impersonable{
|
|||
|
||||
Item toReturn = null;
|
||||
try{
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
//TODO: remove when all user will have TRASH
|
||||
org.gcube.common.storagehub.model.Path trashPath = pathUtil.getTrashPath(currentUser, ses);
|
||||
if (!ses.nodeExists(trashPath.toPath())) {
|
||||
|
@ -169,7 +169,7 @@ public class WorkspaceManager extends Impersonable{
|
|||
public String uploadVolatileFile(
|
||||
@FormDataParam("file") InputStream stream,
|
||||
@FormDataParam("file") FormDataContentDisposition fileDetail){
|
||||
InnerMethodName.instance.set("uploadToVolatileArea");
|
||||
InnerMethodName.set("uploadToVolatileArea");
|
||||
|
||||
log.info("uploading file {} of size {} to volatile area ({} - {})", fileDetail.getFileName(), fileDetail.getSize(), fileDetail.getName(), fileDetail.getParameters().toString() );
|
||||
|
||||
|
@ -206,11 +206,11 @@ public class WorkspaceManager extends Impersonable{
|
|||
@GET
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public ItemWrapper<Item> getVreRootFolder(){
|
||||
InnerMethodName.instance.set("getVreRootFolder");
|
||||
InnerMethodName.set("getVreRootFolder");
|
||||
JackrabbitSession ses = null;
|
||||
Item vreItem = null;
|
||||
try {
|
||||
ses = (JackrabbitSession) repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = (JackrabbitSession) repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
vreItem = vreManager.getVreFolderItem(ses, currentUser, excludes).getVreFolder();
|
||||
}catch(RepositoryException re ){
|
||||
log.error("jcr error getting vrefolder", re);
|
||||
|
@ -229,11 +229,11 @@ public class WorkspaceManager extends Impersonable{
|
|||
@GET
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public ItemList getVreFolderRecentsDocument(){
|
||||
InnerMethodName.instance.set("getVreFolderRecents");
|
||||
InnerMethodName.set("getVreFolderRecents");
|
||||
JackrabbitSession ses = null;
|
||||
List<Item> recentItems = Collections.emptyList();
|
||||
try{
|
||||
ses = (JackrabbitSession) repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = (JackrabbitSession) repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
|
||||
VRE vre = vreManager.getVreFolderItem(ses, currentUser, excludes);
|
||||
log.trace("VRE retrieved {}",vre.getVreFolder().getTitle());
|
||||
|
@ -261,13 +261,13 @@ public class WorkspaceManager extends Impersonable{
|
|||
@GET
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public ItemWrapper<Item> getTrashRootFolder(){
|
||||
InnerMethodName.instance.set("getTrashRootFolder");
|
||||
InnerMethodName.set("getTrashRootFolder");
|
||||
Session ses = null;
|
||||
|
||||
Item item = null;
|
||||
try{
|
||||
long start = System.currentTimeMillis();
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
org.gcube.common.storagehub.model.Path trashPath = pathUtil.getTrashPath(currentUser, ses);
|
||||
log.info("time to connect to repo {}",(System.currentTimeMillis()-start));
|
||||
|
||||
|
@ -291,11 +291,11 @@ public class WorkspaceManager extends Impersonable{
|
|||
@Path("trash/empty")
|
||||
@DELETE
|
||||
public String emptyTrash(){
|
||||
InnerMethodName.instance.set("emptyTrash");
|
||||
InnerMethodName.set("emptyTrash");
|
||||
Session ses = null;
|
||||
String toReturn = null;
|
||||
try{
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
org.gcube.common.storagehub.model.Path trashPath = pathUtil.getTrashPath(currentUser, ses);
|
||||
Node trashNode = ses.getNode(trashPath.toPath());
|
||||
List<Item> itemsToDelete = Utils.getItemList(trashNode, Excludes.ALL, null, true, null);
|
||||
|
@ -319,13 +319,13 @@ public class WorkspaceManager extends Impersonable{
|
|||
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
|
||||
@Path("trash/restore")
|
||||
public String restoreItem(@FormParam("trashedItemId") String trashedItemId,@FormParam("destinationId") String destinationFolderId){
|
||||
InnerMethodName.instance.set("restoreItem");
|
||||
InnerMethodName.set("restoreItem");
|
||||
Session ses = null;
|
||||
String toReturn = null;
|
||||
try{
|
||||
|
||||
log.info("restoring node with id {}", trashedItemId);
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
|
||||
final Node nodeToRestore = ses.getNodeByIdentifier(trashedItemId);
|
||||
|
||||
|
@ -367,12 +367,12 @@ public class WorkspaceManager extends Impersonable{
|
|||
@GET
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public ItemList getVreFolders(){
|
||||
InnerMethodName.instance.set("getVreFolders");
|
||||
InnerMethodName.set("getVreFolders");
|
||||
Session ses = null;
|
||||
List<? extends Item> toReturn = null;
|
||||
org.gcube.common.storagehub.model.Path vrePath = null;
|
||||
try{
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
vrePath = pathUtil.getVREsPath(currentUser, ses);
|
||||
log.info("vres folder path is {}",vrePath.toPath());
|
||||
|
||||
|
@ -396,12 +396,12 @@ public class WorkspaceManager extends Impersonable{
|
|||
@GET
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public ItemList getVreFoldersPaged(@QueryParam("start") Integer start, @QueryParam("limit") Integer limit){
|
||||
InnerMethodName.instance.set("getVreFoldersPaged");
|
||||
InnerMethodName.set("getVreFoldersPaged");
|
||||
Session ses = null;
|
||||
org.gcube.common.storagehub.model.Path vrePath = null;
|
||||
List<? extends Item> toReturn = null;
|
||||
try{
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
vrePath = pathUtil.getVREsPath(currentUser, ses);
|
||||
toReturn = Utils.getItemList(ses.getNode(vrePath.toPath()) , excludes, new Range(start, limit), false, null);
|
||||
}catch(RepositoryException re ){
|
||||
|
@ -423,12 +423,12 @@ public class WorkspaceManager extends Impersonable{
|
|||
@GET
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public ItemList getMySharedFolders(){
|
||||
InnerMethodName.instance.set("getMySharedFolders");
|
||||
InnerMethodName.set("getMySharedFolders");
|
||||
Session ses = null;
|
||||
List<? extends Item> toReturn = null;
|
||||
org.gcube.common.storagehub.model.Path sharedPath = null;
|
||||
try{
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
sharedPath = pathUtil.getMySharedPath(currentUser);
|
||||
log.info("my shared folder path is folder path is {}",sharedPath.toPath());
|
||||
|
||||
|
@ -451,12 +451,12 @@ public class WorkspaceManager extends Impersonable{
|
|||
@GET
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public ItemList getSharedWithMeFolders(){
|
||||
InnerMethodName.instance.set("getSharedWithMeFolders");
|
||||
InnerMethodName.set("getSharedWithMeFolders");
|
||||
Session ses = null;
|
||||
List<? extends Item> toReturn = null;
|
||||
org.gcube.common.storagehub.model.Path sharedPath = null;
|
||||
try{
|
||||
ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
sharedPath = pathUtil.getSharedWithMePath(currentUser);
|
||||
log.info("vres folder path is {}",sharedPath.toPath());
|
||||
|
||||
|
@ -479,7 +479,7 @@ public class WorkspaceManager extends Impersonable{
|
|||
@Path("count")
|
||||
@GET
|
||||
public String getTotalItemsCount(){
|
||||
InnerMethodName.instance.set("getTotalItemsCount");
|
||||
InnerMethodName.set("getTotalItemsCount");
|
||||
return "1203";
|
||||
}
|
||||
|
||||
|
@ -487,7 +487,7 @@ public class WorkspaceManager extends Impersonable{
|
|||
@Path("size")
|
||||
@GET
|
||||
public String getTotalVolume(){
|
||||
InnerMethodName.instance.set("getTotalSize");
|
||||
InnerMethodName.set("getTotalSize");
|
||||
return "120300000";
|
||||
|
||||
}
|
||||
|
|
|
@ -10,31 +10,18 @@ import java.io.StringWriter;
|
|||
import java.util.HashMap;
|
||||
import java.util.UUID;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.jcr.Node;
|
||||
import javax.jcr.Session;
|
||||
import javax.servlet.ServletContext;
|
||||
import javax.ws.rs.Consumes;
|
||||
import javax.ws.rs.DefaultValue;
|
||||
import javax.ws.rs.GET;
|
||||
import javax.ws.rs.POST;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.PathParam;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.WebApplicationException;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
|
||||
import org.apache.jackrabbit.api.JackrabbitSession;
|
||||
import org.gcube.common.authorization.control.annotations.AuthorizationControl;
|
||||
import org.gcube.common.security.AuthorizedTasks;
|
||||
import org.gcube.common.security.providers.SecretManagerProvider;
|
||||
import org.gcube.common.storagehub.model.Paths;
|
||||
import org.gcube.data.access.storagehub.Constants;
|
||||
import org.gcube.data.access.storagehub.PathUtil;
|
||||
import org.gcube.data.access.storagehub.StorageHubAppllicationManager;
|
||||
import org.gcube.data.access.storagehub.accounting.AccountingHandler;
|
||||
import org.gcube.data.access.storagehub.exception.MyAuthException;
|
||||
import org.gcube.data.access.storagehub.handlers.CredentialHandler;
|
||||
import org.gcube.data.access.storagehub.handlers.items.ItemHandler;
|
||||
import org.gcube.data.access.storagehub.handlers.items.builders.FileCreationParameters;
|
||||
import org.gcube.data.access.storagehub.handlers.items.builders.ItemsParameterBuilder;
|
||||
|
@ -53,6 +40,19 @@ import org.slf4j.LoggerFactory;
|
|||
import com.webcohesion.enunciate.metadata.rs.RequestHeader;
|
||||
import com.webcohesion.enunciate.metadata.rs.RequestHeaders;
|
||||
|
||||
import jakarta.inject.Inject;
|
||||
import jakarta.servlet.ServletContext;
|
||||
import jakarta.ws.rs.Consumes;
|
||||
import jakarta.ws.rs.DefaultValue;
|
||||
import jakarta.ws.rs.GET;
|
||||
import jakarta.ws.rs.POST;
|
||||
import jakarta.ws.rs.Path;
|
||||
import jakarta.ws.rs.PathParam;
|
||||
import jakarta.ws.rs.Produces;
|
||||
import jakarta.ws.rs.WebApplicationException;
|
||||
import jakarta.ws.rs.core.Context;
|
||||
import jakarta.ws.rs.core.MediaType;
|
||||
|
||||
@Path("admin/script")
|
||||
@RequestHeaders({
|
||||
@RequestHeader( name = "Authorization", description = "Bearer token, see https://dev.d4science.org/how-to-access-resources"),
|
||||
|
@ -83,7 +83,7 @@ public class ScriptManager {
|
|||
|
||||
@POST
|
||||
@Path("execute")
|
||||
@AuthorizationControl(allowedRoles = {INFRASTRUCTURE_MANAGER_ROLE},exception=MyAuthException.class)
|
||||
@AuthorizationControl(allowedRoles = {INFRASTRUCTURE_MANAGER_ROLE})
|
||||
@Consumes(MediaType.MULTIPART_FORM_DATA)
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public ScriptStatus run( @FormDataParam("name") String name,
|
||||
|
@ -93,7 +93,7 @@ public class ScriptManager {
|
|||
@FormDataParam("file") InputStream stream,
|
||||
@FormDataParam("file") FormDataContentDisposition fileDetail) {
|
||||
try {
|
||||
InnerMethodName.instance.set("executeScript");
|
||||
InnerMethodName.set("executeScript");
|
||||
ScriptClassLoader scriptClassLoader = new ScriptClassLoader(Thread.currentThread().getContextClassLoader());
|
||||
Class<?> scriptClass = uploadClass(stream, scriptClassLoader, fileDetail.getFileName().replace(".class", ""));
|
||||
return internalRun(scriptClass, name, destinationFolderId, asynch, writeResult);
|
||||
|
@ -105,10 +105,10 @@ public class ScriptManager {
|
|||
|
||||
@GET
|
||||
@Path("{id}/status")
|
||||
@AuthorizationControl(allowedRoles = {INFRASTRUCTURE_MANAGER_ROLE},exception=MyAuthException.class)
|
||||
@AuthorizationControl(allowedRoles = {INFRASTRUCTURE_MANAGER_ROLE})
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public ScriptStatus getStatus(@PathParam("id") String runningId) {
|
||||
InnerMethodName.instance.set("getScriptStatus");
|
||||
InnerMethodName.set("getScriptStatus");
|
||||
if (!scriptStatusMap.containsKey(runningId)) {
|
||||
log.error("script with id {} not found",runningId);
|
||||
throw new WebApplicationException("id "+runningId+" not found", 404);
|
||||
|
@ -135,7 +135,7 @@ public class ScriptManager {
|
|||
}
|
||||
|
||||
private ScriptStatus internalRun(Class<?> clazz, String name, String destinationFolderId, boolean asynch, boolean writeResult) throws Throwable {
|
||||
String login = SecretManagerProvider.instance.get().getOwner().getId();
|
||||
String login = SecretManagerProvider.get().getOwner().getId();
|
||||
log.info("script {} called by {}", clazz.getSimpleName(), login);
|
||||
try {
|
||||
|
||||
|
@ -146,7 +146,7 @@ public class ScriptManager {
|
|||
if (writeResult) {
|
||||
JackrabbitSession ses = null;
|
||||
try {
|
||||
ses = (JackrabbitSession) repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
ses = (JackrabbitSession) repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
String parentId = destinationFolderId!=null ? destinationFolderId : ses.getNode(pathUtil.getWorkspacePath(login).toPath()).getIdentifier();
|
||||
parentNode = ses.getNodeByIdentifier(parentId);
|
||||
resultPath = Paths.append(Paths.getPath(parentNode.getPath()), name).toPath();
|
||||
|
@ -214,7 +214,7 @@ public class ScriptManager {
|
|||
try {
|
||||
JackrabbitSession executeSession = null;
|
||||
try {
|
||||
executeSession = (JackrabbitSession) repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
executeSession = (JackrabbitSession) repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
result = instance.run(executeSession, null, scriptUtil);
|
||||
status.setSuccess();
|
||||
}catch(Throwable t) {
|
||||
|
@ -232,7 +232,7 @@ public class ScriptManager {
|
|||
if (this.writeResult) {
|
||||
Session writeSession = null;
|
||||
try( InputStream stream = new ByteArrayInputStream(result.getBytes())){
|
||||
writeSession = repository.getRepository().login(CredentialHandler.getAdminCredentials(context));
|
||||
writeSession = repository.getRepository().login(Constants.JCR_CREDENTIALS);
|
||||
ItemsParameterBuilder<FileCreationParameters> builder = FileCreationParameters.builder().name(name).description("result of script execution "+name)
|
||||
.stream(stream).on(parentNode.getIdentifier()).with(writeSession).author(login);
|
||||
itemHandler.create(builder.build());
|
||||
|
|
|
@ -4,8 +4,8 @@ import java.util.Collection;
|
|||
import java.util.List;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
import jakarta.inject.Inject;
|
||||
import jakarta.inject.Singleton;
|
||||
import javax.jcr.Node;
|
||||
import javax.jcr.RepositoryException;
|
||||
import javax.jcr.Session;
|
||||
|
|
|
@ -4,8 +4,8 @@ import java.security.Principal;
|
|||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
import jakarta.inject.Inject;
|
||||
import jakarta.inject.Singleton;
|
||||
import javax.jcr.Node;
|
||||
import javax.jcr.RepositoryException;
|
||||
import javax.jcr.Session;
|
||||
|
|
|
@ -38,7 +38,7 @@ public class GCubeMongoStorageBackend extends StorageBackend {
|
|||
|
||||
@Override
|
||||
public InputStream download(String id) throws StorageIdNotFoundException{
|
||||
IClient storageClient = getStorageClient(SecretManagerProvider.instance.get().getOwner().getId()).getClient();
|
||||
IClient storageClient = getStorageClient(SecretManagerProvider.get().getOwner().getId()).getClient();
|
||||
if (!storageClient.exist().RFile(id))
|
||||
throw new StorageIdNotFoundException(id, this.getPayloadConfiguration().getStorageName());
|
||||
return storageClient.get().RFileAsInputStream(id);
|
||||
|
@ -53,7 +53,7 @@ public class GCubeMongoStorageBackend extends StorageBackend {
|
|||
public MetaInfo onCopy(Content content, String newParentPath, String newName) {
|
||||
log.info("copying storage Id {} to newPath {}", content.getStorageId(), newParentPath);
|
||||
String newRemotePath = Paths.get(newParentPath, newName).toString();
|
||||
String newStorageID = getStorageClient(SecretManagerProvider.instance.get().getOwner().getId()).getClient().copyFile(true).from(content.getStorageId()).to(newRemotePath);
|
||||
String newStorageID = getStorageClient(SecretManagerProvider.get().getOwner().getId()).getClient().copyFile(true).from(content.getStorageId()).to(newRemotePath);
|
||||
log.info("The id returned by storage is {}", newStorageID);
|
||||
return new MetaInfo(content.getSize(),newStorageID, newRemotePath, getPayloadConfiguration());
|
||||
}
|
||||
|
@ -91,19 +91,19 @@ public class GCubeMongoStorageBackend extends StorageBackend {
|
|||
@Override
|
||||
public void delete(String storageId) {
|
||||
log.debug("deleting object {} ",storageId);
|
||||
IClient storageClient = getStorageClient(SecretManagerProvider.instance.get().getOwner().getId()).getClient();
|
||||
IClient storageClient = getStorageClient(SecretManagerProvider.get().getOwner().getId()).getClient();
|
||||
storageClient.remove().RFileById(storageId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTotalSizeStored() {
|
||||
IClient storageClient = getStorageClient(SecretManagerProvider.instance.get().getOwner().getId()).getClient();
|
||||
IClient storageClient = getStorageClient(SecretManagerProvider.get().getOwner().getId()).getClient();
|
||||
return storageClient.getTotalUserVolume();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTotalItemsCount() {
|
||||
IClient storageClient = getStorageClient(SecretManagerProvider.instance.get().getOwner().getId()).getClient();
|
||||
IClient storageClient = getStorageClient(SecretManagerProvider.get().getOwner().getId()).getClient();
|
||||
return storageClient.getUserTotalItems();
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package org.gcube.data.access.storagehub.storage.backend.impl;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
import jakarta.inject.Singleton;
|
||||
|
||||
import org.gcube.common.storagehub.model.Constants;
|
||||
import org.gcube.common.storagehub.model.exceptions.InvalidCallParameters;
|
||||
|
|
|
@ -7,8 +7,8 @@ import java.util.Map;
|
|||
import java.util.Properties;
|
||||
import java.util.UUID;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import javax.inject.Singleton;
|
||||
import jakarta.annotation.PostConstruct;
|
||||
import jakarta.inject.Singleton;
|
||||
|
||||
import org.gcube.common.storagehub.model.Metadata;
|
||||
import org.gcube.common.storagehub.model.exceptions.InvalidCallParameters;
|
||||
|
|
|
@ -7,8 +7,8 @@ import java.util.Map;
|
|||
import java.util.Properties;
|
||||
import java.util.UUID;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import javax.inject.Singleton;
|
||||
import jakarta.annotation.PostConstruct;
|
||||
import jakarta.inject.Singleton;
|
||||
|
||||
import org.gcube.common.storagehub.model.Constants;
|
||||
import org.gcube.common.storagehub.model.Metadata;
|
||||
|
|
|
@ -7,8 +7,8 @@ import java.util.Map;
|
|||
import java.util.Properties;
|
||||
import java.util.UUID;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import javax.inject.Singleton;
|
||||
import jakarta.annotation.PostConstruct;
|
||||
import jakarta.inject.Singleton;
|
||||
|
||||
import org.gcube.common.storagehub.model.Metadata;
|
||||
import org.gcube.common.storagehub.model.exceptions.InvalidCallParameters;
|
||||
|
|
|
@ -1,6 +0,0 @@
|
|||
<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
|
||||
http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
|
||||
bean-discovery-mode="all">
|
||||
</beans>
|
|
@ -39,7 +39,7 @@ public class CreateUsers {
|
|||
|
||||
public void setTokenAndScope() {
|
||||
UmaTokenSecret secret = new UmaTokenSecret("eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJSSklZNEpoNF9qdDdvNmREY0NlUDFfS1l0akcxVExXVW9oMkQ2Tzk1bFNBIn0.eyJleHAiOjE2NDQyNDM4ODUsImlhdCI6MTY0NDI0MzU4NSwiYXV0aF90aW1lIjoxNjQ0MjQzNTg1LCJqdGkiOiI1NWQ4ZDc5OS1kNTIzLTQ0YmEtYTRkMC1iZjIyYzVlMTg4NzQiLCJpc3MiOiJodHRwczovL2FjY291bnRzLmRldi5kNHNjaWVuY2Uub3JnL2F1dGgvcmVhbG1zL2Q0c2NpZW5jZSIsImF1ZCI6IiUyRmdjdWJlIiwic3ViIjoiNGMxMWRlODQtZGRjOS00ZGQxLWI5N2EtZWE4MmQyZDEzOGE2IiwidHlwIjoiQmVhcmVyIiwiYXpwIjoibmV4dC5kNHNjaWVuY2Uub3JnIiwic2Vzc2lvbl9zdGF0ZSI6ImZkZTA3MGE2LTVkOTUtNDc3Ni1hMTFiLTBhZTI1MzQ5NGQyMyIsImFjciI6IjEiLCJhbGxvd2VkLW9yaWdpbnMiOlsiLyoiXSwicmVzb3VyY2VfYWNjZXNzIjp7IiUyRmdjdWJlIjp7InJvbGVzIjpbIkluZnJhc3RydWN0dXJlLU1hbmFnZXIiLCJNZW1iZXIiXX19LCJhdXRob3JpemF0aW9uIjp7InBlcm1pc3Npb25zIjpbeyJyc2lkIjoiMTU5ZDcyMDQtNjlmYS00ZmY0LTlhOTQtMzVlMWUyMzA5MDQyIiwicnNuYW1lIjoiRGVmYXVsdCBSZXNvdXJjZSJ9XX0sInNjb3BlIjoiZW1haWwgcHJvZmlsZSIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJuYW1lIjoiTHVjaW8gTGVsaWkiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJsdWNpby5sZWxpaSIsImdpdmVuX25hbWUiOiJMdWNpbyIsImZhbWlseV9uYW1lIjoiTGVsaWkiLCJlbWFpbCI6Imx1Y2lvLmxlbGlpQGlzdGkuY25yLml0In0.SGuGXnY63WJ45tdypywaopO--FCxY6ZWAX74MGVw_zdNMMQI5zgtGfhZQewFWQ6HhVINDStXqvdSDluhF9JwFXCUGvxB2BipfKQYsAQnm3I4K3kgMl26kuQIL5Im-apw2XWvImTgLshX1AzpyqzFR1Jpf_p65GCMpcHLEwo_nTGLkrZNtfRdtqakZ8S8lowGaV2J2mNf4AHhtARSLJF3GqwynF5pPUXR2iOMUrjw_FLnIuPMfAjk_jHMeYKIxXNBLsoEpELju3pr2gEkv1ZRH9bZkyg7_3hW4mGzxq_Ea9w1FBVJOlkp6vypuISLNyJZcVOnBa4Dg1KRxxlp3aZ6vA");
|
||||
SecretManagerProvider.instance.set(secret);
|
||||
SecretManagerProvider.set(secret);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
@ -54,7 +54,7 @@ public class CreateUsers {
|
|||
@Before
|
||||
public void setSecret() {
|
||||
CredentialSecret secret = new CredentialSecret("sg4-test-client", "a156a7db-3b32-4cd5-b27b-2488e0e01698", "/gcube");
|
||||
SecretManagerProvider.instance.set(secret);
|
||||
SecretManagerProvider.set(secret);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -110,7 +110,7 @@ public class CreateUsers {
|
|||
|
||||
@Test
|
||||
public void getBearerToken() {
|
||||
System.out.println(SecretManagerProvider.instance.get().getHTTPAuthorizationHeaders());
|
||||
System.out.println(SecretManagerProvider.get().getHTTPAuthorizationHeaders());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -155,9 +155,9 @@ public class CreateUsers {
|
|||
public void createUser2AndAddItToVres() throws Exception{
|
||||
client.impersonate(user);
|
||||
client.createUserAccount(user2);
|
||||
client.getVreFolderManager(vreWA).addUser(user2);
|
||||
/*client.getVreFolderManager(vreWA).addUser(user2);
|
||||
client.getVreFolderManager(vreRO).addUser(user2);
|
||||
client.getVreFolderManager(vreWO).addUser(user2);
|
||||
client.getVreFolderManager(vreWO).addUser(user2);*/
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package org.gcube.data.access.storages.mock;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
import jakarta.inject.Singleton;
|
||||
|
||||
import org.gcube.common.storagehub.model.exceptions.InvalidCallParameters;
|
||||
import org.gcube.common.storagehub.model.items.nodes.PayloadBackend;
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"
|
||||
<beans xmlns="https://jakarta.ee/xml/ns/jakartaee"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd">
|
||||
xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/beans_4_0.xsd"
|
||||
version="4.0" bean-discovery-mode="all">
|
||||
|
||||
</beans>
|
Loading…
Reference in New Issue