From 4b8a31baae275305b32c8561e6f87a9087a21778 Mon Sep 17 00:00:00 2001 From: Youn <yct@kereval.com> Date: Thu, 3 Sep 2020 09:29:27 +0200 Subject: [PATCH] IUAINFRA-47 quality --- .../application/DummyAuthzServerSoapui.java | 13 +++-- .../application/TokenGenerator.java | 2 +- .../resources/getToken-soapui-project.xml | 19 +++++-- .../AudienceSecretRetrieverForSoapui.java | 51 +++++++++++-------- 4 files changed, 54 insertions(+), 31 deletions(-) diff --git a/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/application/DummyAuthzServerSoapui.java b/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/application/DummyAuthzServerSoapui.java index 4f9c7f5..8b850a5 100644 --- a/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/application/DummyAuthzServerSoapui.java +++ b/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/application/DummyAuthzServerSoapui.java @@ -3,8 +3,9 @@ package net.ihe.gazelle.app.accesstokenproviderapi.application; import net.ihe.gazelle.app.accesstokenproviderapi.business.AccessTokenRequest; import net.ihe.gazelle.app.accesstokenproviderapi.business.SymmetricSignature; import net.ihe.gazelle.app.audienceretriever.adapter.AudienceSecretRetrieverForSoapui; -import net.ihe.gazelle.app.audienceretriever.adapter.AudienceSecretRetrieverImpl; import net.ihe.gazelle.app.audienceretriever.application.AudienceSecretRetriever; +import net.ihe.gazelle.framework.loggerservice.application.GazelleLogger; +import net.ihe.gazelle.framework.loggerservice.application.GazelleLoggerFactory; import net.ihe.gazelle.modelapi.sb.business.EncodingException; import net.ihe.gazelle.sb.iua.business.TokenType; @@ -15,6 +16,7 @@ import java.time.Duration; */ public class DummyAuthzServerSoapui implements DummyAuthzServer { + private static final GazelleLogger LOGGER = GazelleLoggerFactory.getInstance().getLogger(DummyAuthzServerSoapui.class); private static final String ALGORITHM = "HS256"; private static final String ISSUER = "https://ehealthsuisse.ihe-europe.net/access-token-provider"; @@ -85,14 +87,11 @@ public class DummyAuthzServerSoapui implements DummyAuthzServer { byte[] token = null; try { token = tokenGenerator.generateAccessToken(getAccessTokenRequest(userId, audienceId)).getToken(); - } catch (EncodingException e) { - e.printStackTrace(); - } catch (TokenRequestException e) { - e.printStackTrace(); - } finally { + } catch (EncodingException | TokenRequestException e) { + LOGGER.error("Error generating Access Token", e); + } return token; } - } } diff --git a/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/application/TokenGenerator.java b/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/application/TokenGenerator.java index 6c96638..6889020 100644 --- a/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/application/TokenGenerator.java +++ b/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/application/TokenGenerator.java @@ -45,7 +45,7 @@ public class TokenGenerator { throw new TokenRequestException("Unsupported Algorithm"); } - Duration duration = !accessTokenRequest.getValidityTime().equals(null) ? accessTokenRequest.getValidityTime() : DEFAULT_DURATION; + Duration duration = accessTokenRequest.getValidityTime() != null ? accessTokenRequest.getValidityTime() : DEFAULT_DURATION; if (accessTokenRequest.getTokenType() == null || !accessTokenRequest.getTokenType().equals(TOKEN_TYPE)) { throw new TokenRequestException("Unsupported token type"); diff --git a/access-token-provider-api/src/main/resources/getToken-soapui-project.xml b/access-token-provider-api/src/main/resources/getToken-soapui-project.xml index 6472e75..1b910e1 100644 --- a/access-token-provider-api/src/main/resources/getToken-soapui-project.xml +++ b/access-token-provider-api/src/main/resources/getToken-soapui-project.xml @@ -1,6 +1,19 @@ <?xml version="1.0" encoding="UTF-8"?> <con:soapui-project id="4527283c-83fc-419a-9fa3-d9c072053eac" activeEnvironment="Default" name="getToken" resourceRoot="" soapui-version="5.6.0" abortOnError="false" runType="SEQUENTIAL" xmlns:con="http://eviware.com/soapui/config"><con:settings/><con:testSuite id="a7dd34e8-2441-4bf8-b2bc-3ea43c3b0f42" name="getToken"><con:settings/><con:runType>SEQUENTIAL</con:runType><con:testCase id="f8ac5a96-e7e9-4a60-9e9c-84f80664db91" failOnError="true" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="getToken" searchProperties="true"><con:settings/><con:testStep type="groovy" name="exemple" id="c65c443d-1476-4c4a-b9e6-b63eac62939f"><con:settings/><con:config><script>import net.ihe.gazelle.app.accesstokenproviderapi.application.DummyAuthzServerSoapui -def server = new DummyAuthzServerSoapui(); -def token = server.getAccessToken("aamrein", "audience", null, null); -log.info new String(token)</script></con:config></con:testStep><con:properties/></con:testCase><con:properties/></con:testSuite><con:properties/><con:wssContainer/><con:oAuth2ProfileContainer/><con:oAuth1ProfileContainer/><con:sensitiveInformation/></con:soapui-project> \ No newline at end of file + def server = new DummyAuthzServerSoapui("/opt/simulators/audience.properties"); + def token = server.getAccessToken("aamrein", "audience", null, null ); + log.info new String(token) +</script> +</con:config> +</con:testStep> + <con:properties/> +</con:testCase> + <con:properties/> +</con:testSuite> + <con:properties/> + <con:wssContainer/> + <con:oAuth2ProfileContainer/> + <con:oAuth1ProfileContainer/> + <con:sensitiveInformation/> +</con:soapui-project> \ No newline at end of file diff --git a/audience-retriever/src/main/java/net/ihe/gazelle/app/audienceretriever/adapter/AudienceSecretRetrieverForSoapui.java b/audience-retriever/src/main/java/net/ihe/gazelle/app/audienceretriever/adapter/AudienceSecretRetrieverForSoapui.java index a4cac1b..3252c5b 100644 --- a/audience-retriever/src/main/java/net/ihe/gazelle/app/audienceretriever/adapter/AudienceSecretRetrieverForSoapui.java +++ b/audience-retriever/src/main/java/net/ihe/gazelle/app/audienceretriever/adapter/AudienceSecretRetrieverForSoapui.java @@ -1,50 +1,61 @@ package net.ihe.gazelle.app.audienceretriever.adapter; import net.ihe.gazelle.app.audienceretriever.application.AudienceSecretRetriever; +import net.ihe.gazelle.framework.loggerservice.application.GazelleLogger; +import net.ihe.gazelle.framework.loggerservice.application.GazelleLoggerFactory; import java.io.FileInputStream; -import java.io.FileNotFoundException; import java.io.IOException; import java.util.Properties; +/** + * {@link AudienceSecretRetriever} used by SoapUI project to retrieve secrets. + */ public class AudienceSecretRetrieverForSoapui implements AudienceSecretRetriever { + private static final GazelleLogger LOGGER = GazelleLoggerFactory.getInstance().getLogger(AudienceSecretRetrieverForSoapui.class); + private String propertiesFile = "/opt/simulators/audience.properties"; + /** + * Default constructor for the class. + */ public AudienceSecretRetrieverForSoapui() { + //Empty Constructor } + /** + * Constructor allowing to configure the properties file path. + * + * @param propertiesFile path to the properties file. + */ public AudienceSecretRetrieverForSoapui(String propertiesFile) { this.propertiesFile = propertiesFile; } - public static Properties readPropertiesFile(String fileName) throws IOException { - FileInputStream fis = null; + /** + * Read property file as {@link Properties}. + * + * @param filePath path to hte properties file. + * @return the {@link Properties} defined by the file. + */ + private static Properties readPropertiesFile(String filePath) { Properties prop = null; - try { - fis = new FileInputStream(fileName); + try (FileInputStream fis = new FileInputStream(filePath)) { prop = new Properties(); prop.load(fis); - } catch(FileNotFoundException fnfe) { - fnfe.printStackTrace(); - } catch(IOException ioe) { - ioe.printStackTrace(); - } finally { - fis.close(); + } catch (IOException e) { + LOGGER.error("Error reading properties file !", e); } return prop; } + /** + * {@inheritDoc} + */ @Override public String retrieveSecretForAudience(String audience) { - String secret = null; - try { - Properties prop = readPropertiesFile(propertiesFile); - secret = prop.getProperty(audience); - } catch (IOException e) { - e.printStackTrace(); - } finally { - return secret; - } + Properties prop = readPropertiesFile(propertiesFile); + return prop != null ? prop.getProperty(audience) : null; } } -- GitLab