diff --git a/access-token-provider-api/pom.xml b/access-token-provider-api/pom.xml index 221869243b545c1f064d4fc7461d124eac937d0e..5bba8d240d87ee36103a0dfa3ccdcf32214fe5a2 100644 --- a/access-token-provider-api/pom.xml +++ b/access-token-provider-api/pom.xml @@ -50,12 +50,12 @@ <dependency> <groupId>net.ihe.gazelle</groupId> <artifactId>sb.iua-standard-block</artifactId> - <version>1.0.0</version> + <version>1.0.1-SNAPSHOT</version> </dependency> <dependency> <groupId>net.ihe.gazelle</groupId> <artifactId>sb.jwt-standard-block</artifactId> - <version>1.0.0</version> + <version>1.0.1-SNAPSHOT</version> </dependency> <dependency> <groupId>net.ihe.gazelle</groupId> 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 3bd9b28b25f470cc6b81a3099380cbbe1185375c..91cc07ebf8cae1a388b9d7368994201506bb1b62 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 @@ -16,6 +16,7 @@ import net.ihe.gazelle.sb.jwtstandardblock.business.jwt.JSONWebToken; import net.ihe.gazelle.sb.jwtstandardblock.business.jwt.JSONWebTokenClaimSet; import java.nio.charset.StandardCharsets; +import java.sql.Date; import java.time.Duration; import java.time.ZoneId; import java.time.ZonedDateTime; @@ -92,8 +93,8 @@ public class TokenGenerator { claimSet.setAudience(accessTokenRequest.getAudience()); ZonedDateTime now = ZonedDateTime.now(ZoneId.of("UTC")); - claimSet.setIssuedAt(String.valueOf(now.toEpochSecond())); - claimSet.setExpiration(String.valueOf(now.plus(duration).toEpochSecond())); + claimSet.setIssuedAt(new Date(now.toEpochSecond()*1000)); + claimSet.setExpiration(new Date(now.plus(duration).toEpochSecond()*1000)); claimSet.setJwtId(UUID.randomUUID().toString()); 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 544e903ac4ae75f960e84b0409355bbd04d6da78..e18ec2d73cbde3d132944c430359121d0f3b73eb 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 @@ -4,6 +4,7 @@ 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 javax.enterprise.inject.Alternative; import java.io.FileInputStream; import java.io.IOException; import java.util.Properties; @@ -11,12 +12,19 @@ import java.util.Properties; /** * {@link AudienceSecretRetriever} used by SoapUI project to retrieve secrets. */ +@Alternative public class AudienceSecretRetrieverForSoapui implements AudienceSecretRetriever { private static final GazelleLogger LOGGER = GazelleLoggerFactory.getInstance().getLogger(AudienceSecretRetrieverForSoapui.class); private String propertiesFile; + /** + * Default empty construction for injection and alternative + */ + public AudienceSecretRetrieverForSoapui() { + //Empty constructor for injection + } /** * Constructor allowing to configure the properties file path. diff --git a/audience-retriever/src/main/java/net/ihe/gazelle/app/audienceretriever/adapter/AudienceSecretRetrieverImpl.java b/audience-retriever/src/main/java/net/ihe/gazelle/app/audienceretriever/adapter/AudienceSecretRetrieverImpl.java index 7eac1c608f7e3fe0f3745674685c26474e729dd8..1f3cdba350e5fecb1a8df88e5f146bfeb3b9a188 100644 --- a/audience-retriever/src/main/java/net/ihe/gazelle/app/audienceretriever/adapter/AudienceSecretRetrieverImpl.java +++ b/audience-retriever/src/main/java/net/ihe/gazelle/app/audienceretriever/adapter/AudienceSecretRetrieverImpl.java @@ -7,15 +7,17 @@ import net.ihe.gazelle.framework.preferencesmodelapi.application.NamespaceExcept import net.ihe.gazelle.framework.preferencesmodelapi.application.OperationalPreferencesService; import net.ihe.gazelle.framework.preferencesmodelapi.application.PreferenceException; +import javax.enterprise.inject.Default; import javax.inject.Inject; /** * AudienceSecretRetriever implementation */ +@Default public class AudienceSecretRetrieverImpl implements AudienceSecretRetriever { private static final GazelleLogger LOGGER = GazelleLoggerFactory.getInstance().getLogger(AudienceSecretRetrieverImpl.class); - private static final String AUDIENCE_JNDI_NAMESPACE = "java:/app/gazelle/chiua-validator-service/operational-preferences"; + private static final String AUDIENCE_JNDI_NAMESPACE = "java:/app/gazelle/audience-retriever/operational-preferences"; @Inject private OperationalPreferencesService preferencesService; diff --git a/dummy-authorization-server-service/src/main/java/net/ihe/gazelle/app/dummyauthorizationserverservice/adapter/AuthorizationServerService.java b/dummy-authorization-server-service/src/main/java/net/ihe/gazelle/app/dummyauthorizationserverservice/adapter/AuthorizationServerService.java index a445982f1222feb810d2f21a74def8affcfb7fa7..b9646e593326baca66b29ffb8d1a7173587d628a 100644 --- a/dummy-authorization-server-service/src/main/java/net/ihe/gazelle/app/dummyauthorizationserverservice/adapter/AuthorizationServerService.java +++ b/dummy-authorization-server-service/src/main/java/net/ihe/gazelle/app/dummyauthorizationserverservice/adapter/AuthorizationServerService.java @@ -3,7 +3,9 @@ package net.ihe.gazelle.app.dummyauthorizationserverservice.adapter; import net.ihe.gazelle.app.accesstokenproviderapi.application.DummyAuthzServer; import net.ihe.gazelle.app.accesstokenproviderapi.application.DummyAuthzServerSoapui; +import net.ihe.gazelle.app.audienceretriever.application.AudienceSecretRetriever; +import javax.inject.Inject; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.QueryParam; @@ -19,10 +21,22 @@ public class AuthorizationServerService { private DummyAuthzServer dummyAuthzServer; /** - * Default constructor for the class. + * Default constructor + * */ public AuthorizationServerService() { + //EMPTY + } + + /** + * Injected constructor. + * + * @param audienceSecretRetriever audience secret retriever + */ + @Inject + public AuthorizationServerService(AudienceSecretRetriever audienceSecretRetriever) { dummyAuthzServer = new DummyAuthzServerSoapui(); + ((DummyAuthzServerSoapui) dummyAuthzServer).setAudienceSecretRetriever(audienceSecretRetriever); } /** @@ -37,10 +51,10 @@ public class AuthorizationServerService { /** * get a dummy access token * - * @param userId - * @param audienceId - * @param purposeOfUse - * @param resourceId + * @param userId user id + * @param audienceId audience id + * @param purposeOfUse purpose of use + * @param resourceId resource id * @return an access token */ @GET diff --git a/dummy-authorization-server-service/src/test/java/net/ihe/gazelle/app/dummyauthorizationserverservice/adapter/AuthorizationServerServiceTest.java b/dummy-authorization-server-service/src/test/java/net/ihe/gazelle/app/dummyauthorizationserverservice/adapter/AuthorizationServerServiceTest.java index b0d55465d28b9e78a1a6c869c774169e3824f22c..ee8884089b33929aa866f574cd9135626505b3ce 100644 --- a/dummy-authorization-server-service/src/test/java/net/ihe/gazelle/app/dummyauthorizationserverservice/adapter/AuthorizationServerServiceTest.java +++ b/dummy-authorization-server-service/src/test/java/net/ihe/gazelle/app/dummyauthorizationserverservice/adapter/AuthorizationServerServiceTest.java @@ -1,6 +1,5 @@ package net.ihe.gazelle.app.dummyauthorizationserverservice.adapter; -import net.ihe.gazelle.app.accesstokenproviderapi.application.DummyAuthzServerSoapui; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertNotNull; @@ -18,11 +17,7 @@ class AuthorizationServerServiceTest { */ @Test public void getAccessToken() { - AuthorizationServerService authorizationServerService = new AuthorizationServerService(); - DummyAuthzServerSoapui dummyAuthzServer = new DummyAuthzServerSoapui(); - dummyAuthzServer.setAudienceSecretRetriever((String audience) -> "myBeautifulKeyWhichIsAJWTSecretSoSecret"); - authorizationServerService.setDummyAuthzServer(dummyAuthzServer); - + AuthorizationServerService authorizationServerService = new AuthorizationServerService((String audience) -> "myBeautifulKeyWhichIsAJWTSecretSoSecret"); assertNotNull(authorizationServerService.getAccessToken(SUBJECT, AUDIENCE, null, null), "Provided access token shall not be null !"); }