diff --git a/.classpath b/.classpath index 953de0b..441d9c3 100644 --- a/.classpath +++ b/.classpath @@ -15,11 +15,7 @@ - - - - - + @@ -27,7 +23,7 @@ - + diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs index 6249222..db24ee7 100644 --- a/.settings/org.eclipse.jdt.core.prefs +++ b/.settings/org.eclipse.jdt.core.prefs @@ -1,12 +1,15 @@ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.compliance=1.8 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.enablePreviewFeatures=disabled org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.source=1.7 +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore +org.eclipse.jdt.core.compiler.release=disabled +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/distro/changelog.xml b/distro/changelog.xml index e338032..3541fb7 100644 --- a/distro/changelog.xml +++ b/distro/changelog.xml @@ -1,9 +1,13 @@ - + + MethodInterceptor added + AuthorizationInterceptor added + + MethodInterceptor added AuthorizationInterceptor added - + First Release \ No newline at end of file diff --git a/pom.xml b/pom.xml index bda8365..4e908e6 100644 --- a/pom.xml +++ b/pom.xml @@ -1,4 +1,5 @@ - 4.0.0 @@ -10,16 +11,16 @@ org.gcube.core common-gcube-calls - 1.0.2 + 2.0.0-SNAPSHOT distro - scm:git:https://code-repo.d4science.org/gCubeSystem/${project.artifactId}.git - scm:git:https://code-repo.d4science.org/gCubeSystem/${project.artifactId}.git - https://code-repo.d4science.org/gCubeSystem/${project.artifactId} + scm:git:https://code-repo.d4science.org/gCubeSystem/${project.artifactId}.git + scm:git:https://code-repo.d4science.org/gCubeSystem/${project.artifactId}.git + https://code-repo.d4science.org/gCubeSystem/${project.artifactId} @@ -28,6 +29,15 @@ common-authorization [2.0.0-SNAPSHOT,3.0.0-SNAPSHOT) + + + + com.googlecode.json-simple + json-simple + 1.1.1 + + + org.gcube.core common-scope diff --git a/src/main/java/org/gcube/common/calls/interceptors/AuthorizationInterceptor.java b/src/main/java/org/gcube/common/calls/interceptors/AuthorizationInterceptor.java index 06d4643..0ebc6b3 100644 --- a/src/main/java/org/gcube/common/calls/interceptors/AuthorizationInterceptor.java +++ b/src/main/java/org/gcube/common/calls/interceptors/AuthorizationInterceptor.java @@ -1,10 +1,13 @@ package org.gcube.common.calls.interceptors; import org.gcube.common.authorization.library.provider.SecurityTokenProvider; +import org.gcube.common.authorization.library.provider.UmaJWTProvider; 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.json.simple.JSONObject; +import org.json.simple.parser.JSONParser; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -13,10 +16,24 @@ public class AuthorizationInterceptor implements Interceptor { private Logger logger = LoggerFactory.getLogger(AuthorizationInterceptor.class); public static final String token_header="gcube-token"; + public static final String uma_token_header="Authorization"; @Override public void handleRequest(Request request, Call call) { String token = SecurityTokenProvider.instance.get(); + String umaToken = UmaJWTProvider.instance.get(); + + if (umaToken!=null) { + try { + JSONParser parser = new JSONParser(); + JSONObject jsonObject = (JSONObject) parser.parse(umaToken); + String accesToken = (String) jsonObject.get("access_token"); + request.addHeader(uma_token_header, "Bearer "+accesToken); + logger.trace("uma token set"); + }catch (Exception e) { + logger.error("error parsing uma token",e); + } + } else logger.trace("uma token is not set"); if (token==null) logger.warn("security token is not set");