From a66c1da525a0d8cb5bb47cd42075221713f90121 Mon Sep 17 00:00:00 2001 From: Luca Frosini Date: Fri, 25 Feb 2022 11:37:19 +0100 Subject: [PATCH] Removed code not needed if the library is integrated in Smartgears --- CHANGELOG.md | 2 +- pom.xml | 2 +- .../utils/manager/SecretManager.java | 49 +++++-------------- 3 files changed, 15 insertions(+), 38 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a0d8c64..eb5c6d3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm # Changelog for Authorization utils -## [v1.0.1-SNAPSHOT] +## [v2.0.0-SNAPSHOT] - Fixed getRoles for JWTSecret [#22754] - diff --git a/pom.xml b/pom.xml index ad3229d..3dac1b3 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ org.gcube.common authorization-utils - 1.0.1-SNAPSHOT + 2.0.0-SNAPSHOT UTF-8 diff --git a/src/main/java/org/gcube/common/authorization/utils/manager/SecretManager.java b/src/main/java/org/gcube/common/authorization/utils/manager/SecretManager.java index 34ae46a..e0497f4 100644 --- a/src/main/java/org/gcube/common/authorization/utils/manager/SecretManager.java +++ b/src/main/java/org/gcube/common/authorization/utils/manager/SecretManager.java @@ -1,12 +1,7 @@ package org.gcube.common.authorization.utils.manager; -import java.util.ArrayList; -import java.util.List; import java.util.SortedSet; -import org.gcube.common.authorization.utils.provider.GCubeSecretProvider; -import org.gcube.common.authorization.utils.provider.JWTSecretProvider; -import org.gcube.common.authorization.utils.provider.SecretProvider; import org.gcube.common.authorization.utils.secret.Secret; import org.gcube.common.authorization.utils.user.User; @@ -23,43 +18,19 @@ public class SecretManager { } }; - - private List secretProviders; - + private SecretHolder initialSecretHolder; private SecretHolder currentSecretHolder; private SecretManager(){ initialSecretHolder = new SecretHolder(); currentSecretHolder = initialSecretHolder; - initSecretProviders(); } - protected void initSecretProviders() { - secretProviders = new ArrayList<>(); - - @SuppressWarnings("unchecked") - Class[] classes = new Class[]{ - JWTSecretProvider.class, GCubeSecretProvider.class - }; - - for(Class clz : classes) { - try { - SecretProvider authorizationSecretProvider = clz.newInstance(); - addSecretProvider(authorizationSecretProvider); - } catch (Exception e) { - - } + public synchronized void addSecret(Secret secret) throws Exception { + if(currentSecretHolder!=initialSecretHolder) { + throw new Exception("You can't add a Secret in a session. You must terminate the session first."); } - } - - public List getSecretProviders(){ - return secretProviders; - } - - public void addSecretProvider(SecretProvider secretProvider) { - secretProviders.add(secretProvider); - Secret secret = secretProvider.getSecret(); initialSecretHolder.addSecret(secret); } @@ -67,23 +38,29 @@ public class SecretManager { if(currentSecretHolder!=initialSecretHolder) { throw new Exception("You are already in a session. You must terminate the session first."); } + initialSecretHolder.reset(); currentSecretHolder = new SecretHolder(secret); currentSecretHolder.set(); } public synchronized void startSession(SortedSet secrets) throws Exception { + if(currentSecretHolder!=initialSecretHolder) { + throw new Exception("You are already in a session. You must terminate the session first."); + } + initialSecretHolder.reset(); currentSecretHolder = new SecretHolder(secrets); currentSecretHolder.set(); } public synchronized void endSession() throws Exception { if(currentSecretHolder!=initialSecretHolder) { + currentSecretHolder.reset(); initialSecretHolder.set(); currentSecretHolder = initialSecretHolder; } } - public void reset() { + public synchronized void reset() { initialSecretHolder.reset(); if(initialSecretHolder!=currentSecretHolder) { currentSecretHolder.reset(); @@ -91,11 +68,11 @@ public class SecretManager { instance.remove(); } - public String getContext() { + public synchronized String getContext() { return currentSecretHolder.getContext(); } - public User getUser() { + public synchronized User getUser() { return currentSecretHolder.getUser(); }