diff --git a/.classpath b/.classpath index 534b5e5..953de0b 100644 --- a/.classpath +++ b/.classpath @@ -22,12 +22,12 @@ - + - + diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs index 6b3352d..6249222 100644 --- a/.settings/org.eclipse.jdt.core.prefs +++ b/.settings/org.eclipse.jdt.core.prefs @@ -1,13 +1,12 @@ -#Fri Oct 11 15:08:46 CEST 2013 eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.compliance=1.7 org.eclipse.jdt.core.compiler.debug.lineNumber=generate org.eclipse.jdt.core.compiler.debug.localVariable=generate org.eclipse.jdt.core.compiler.debug.sourceFile=generate org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.source=1.6 +org.eclipse.jdt.core.compiler.source=1.7 diff --git a/distro/README b/distro/README index 8ba3d75..a9741d4 100644 --- a/distro/README +++ b/distro/README @@ -1,8 +1,9 @@ The gCube System - ${name} ---------------------- -This work has been partially supported by the following European projects: DILIGENT (FP6-2003-IST-2), D4Science (FP7-INFRA-2007-1.2.2), -D4Science-II (FP7-INFRA-2008-1.2.2), iMarine (FP7-INFRASTRUCTURES-2011-2), and EUBrazilOpenBio (FP7-ICT-2011-EU-Brazil). +This work has been partially supported by the following European projects: DILIGENT (FP6-2003-IST-2), +D4Science (FP7-INFRA-2007-1.2.2), D4Science-II (FP7-INFRA-2008-1.2.2), iMarine (FP7-INFRASTRUCTURES-2011-2), +and EUBrazilOpenBio (FP7-ICT-2011-EU-Brazil), Parthenos (H2020-INFRADEV-1-2014-1), BlueBridge (H2020-EINFRA-2015-1). Authors ------- diff --git a/distro/changelog.xml b/distro/changelog.xml index a4d71f9..e338032 100644 --- a/distro/changelog.xml +++ b/distro/changelog.xml @@ -1,4 +1,8 @@ + + MethodInterceptor added + AuthorizationInterceptor added + First Release diff --git a/pom.xml b/pom.xml index 7c36ca1..4e27039 100644 --- a/pom.xml +++ b/pom.xml @@ -1,16 +1,16 @@ 4.0.0 - + - org.gcube.tools - maven-parent - 1.0.0 - - + org.gcube.tools + maven-parent + 1.0.0 + + org.gcube.core common-gcube-calls - 1.0.0-SNAPSHOT + 1.0.1-SNAPSHOT distro @@ -23,6 +23,11 @@ + + org.gcube.common + common-authorization + [1.0.0-SNAPSHOT,2.0.0-SNAPSHOT) + org.gcube.core common-scope @@ -34,7 +39,7 @@ 1.7.5 - + diff --git a/src/main/java/org/gcube/common/calls/interceptors/AuthorizationInterceptor.java b/src/main/java/org/gcube/common/calls/interceptors/AuthorizationInterceptor.java new file mode 100644 index 0000000..06d4643 --- /dev/null +++ b/src/main/java/org/gcube/common/calls/interceptors/AuthorizationInterceptor.java @@ -0,0 +1,31 @@ +package org.gcube.common.calls.interceptors; + +import org.gcube.common.authorization.library.provider.SecurityTokenProvider; +import org.gcube.common.calls.Call; +import org.gcube.common.calls.Interceptor; +import org.gcube.common.calls.Request; +import org.gcube.common.calls.Response; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class AuthorizationInterceptor implements Interceptor { + + private Logger logger = LoggerFactory.getLogger(AuthorizationInterceptor.class); + + public static final String token_header="gcube-token"; + + @Override + public void handleRequest(Request request, Call call) { + String token = SecurityTokenProvider.instance.get(); + + if (token==null) + logger.warn("security token is not set"); + else{ + request.addHeader(token_header, token); + logger.trace("security token set in the header is "+token); + } + } + + @Override + public void handleResponse(Response context, Call callContext) {} +} diff --git a/src/main/java/org/gcube/common/calls/interceptors/CalledMethodInterceptor.java b/src/main/java/org/gcube/common/calls/interceptors/CalledMethodInterceptor.java new file mode 100644 index 0000000..553db9d --- /dev/null +++ b/src/main/java/org/gcube/common/calls/interceptors/CalledMethodInterceptor.java @@ -0,0 +1,29 @@ +package org.gcube.common.calls.interceptors; + +import org.gcube.common.authorization.library.provider.CalledMethodProvider; +import org.gcube.common.calls.Call; +import org.gcube.common.calls.Interceptor; +import org.gcube.common.calls.Request; +import org.gcube.common.calls.Response; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class CalledMethodInterceptor implements Interceptor { + + private Logger logger = LoggerFactory.getLogger(CalledMethodInterceptor.class); + + public static final String calledMethodHeader="gcube-method"; + + @Override + public void handleRequest(Request request, Call call) { + String calledMethod = CalledMethodProvider.instance.get(); + + request.addHeader(calledMethodHeader, calledMethod); + logger.trace("called method set in the header is "+calledMethod); + + } + + @Override + public void handleResponse(Response context, Call callContext) {} + +} diff --git a/src/main/java/org/gcube/common/calls/interceptors/ScopeInterceptor.java b/src/main/java/org/gcube/common/calls/interceptors/ScopeInterceptor.java index 0e1d2b6..dd3494c 100644 --- a/src/main/java/org/gcube/common/calls/interceptors/ScopeInterceptor.java +++ b/src/main/java/org/gcube/common/calls/interceptors/ScopeInterceptor.java @@ -19,12 +19,11 @@ public class ScopeInterceptor implements Interceptor { String scope = ScopeProvider.instance.get(); if (scope==null) - throw new RuntimeException("call is unscoped"); - - request.addHeader(scope_header, scope); - - logger.trace("scope set in the header is "+scope); - + logger.warn("scope is not set in this call"); + else{ + request.addHeader(scope_header, scope); + logger.trace("scope set in the header is "+scope); + } } public void handleResponse(Response context, Call callContext) {} diff --git a/src/main/resources/META-INF/services/org.gcube.common.calls.Interceptor b/src/main/resources/META-INF/services/org.gcube.common.calls.Interceptor index 2aff37d..0d56726 100644 --- a/src/main/resources/META-INF/services/org.gcube.common.calls.Interceptor +++ b/src/main/resources/META-INF/services/org.gcube.common.calls.Interceptor @@ -1 +1,3 @@ -org.gcube.common.calls.interceptors.ScopeInterceptor \ No newline at end of file +org.gcube.common.calls.interceptors.ScopeInterceptor +org.gcube.common.calls.interceptors.AuthorizationInterceptor +org.gcube.common.calls.interceptors.CalledMethodInterceptor \ No newline at end of file