diff --git a/.gitignore b/.gitignore
index aa7a307..da544d7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -19,6 +19,9 @@
*.zip
*.tar.gz
*.rar
+.settings
+.classpath
+.project
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
diff --git a/pom.xml b/pom.xml
index a791fd0..82895cc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,78 +1,80 @@
-
- 4.0.0
-
- edu.uoc.elc.lti
- lti-1.3
- jar
-
- lti
- 0.0.2
- http://maven.apache.org
-
-
- UTF-8
- UTF-8
- 1.8
- 1.8
-
-
-
-
- edu.uoc.elc.lti
- lti-1.3-core
- 0.0.2
-
-
- com.fasterxml.jackson.core
- jackson-databind
- 2.9.10.1
-
-
- org.projectlombok
- lombok
- 1.16.10
- provided
-
-
- junit
- junit
- 4.12
- test
-
-
- org.mockito
- mockito-core
- 2.15.0
-
-
- edu.uoc.elc.lti
- lti-1.3-jwt
- 0.0.2
- test
-
-
- com.fasterxml.jackson.dataformat
- jackson-dataformat-yaml
- 2.9.0
-
-
- commons-io
- commons-io
- 2.6
- compile
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
-
- 1.8
- 1.8
-
-
-
-
-
+
+ 4.0.0
+
+ edu.uoc.elc.lti
+ lti-1.3
+ jar
+
+ lti
+ 0.0.2
+ http://maven.apache.org
+
+
+ UTF-8
+ UTF-8
+ 1.8
+
+
+
+
+ edu.uoc.elc.lti
+ lti-1.3-core
+ 0.0.2
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+ 2.9.10.1
+
+
+ org.projectlombok
+ lombok
+ 1.18.12
+ provided
+
+
+ junit
+ junit
+ 4.12
+ test
+
+
+ org.mockito
+ mockito-core
+ 3.2.4
+
+
+ edu.uoc.elc.lti
+ lti-1.3-jwt
+ 0.0.2
+ test
+
+
+ com.fasterxml.jackson.dataformat
+ jackson-dataformat-yaml
+ 2.9.0
+
+
+ commons-io
+ commons-io
+ 2.6
+ compile
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.8.1
+
+ ${java.version}
+ ${java.version}
+
+
+
+
+
diff --git a/src/main/java/edu/uoc/elc/lti/platform/Member.java b/src/main/java/edu/uoc/elc/lti/platform/Member.java
index c52c3b8..deae643 100644
--- a/src/main/java/edu/uoc/elc/lti/platform/Member.java
+++ b/src/main/java/edu/uoc/elc/lti/platform/Member.java
@@ -1,12 +1,13 @@
package edu.uoc.elc.lti.platform;
+import java.util.List;
+
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
+
import lombok.Getter;
import lombok.Setter;
-import java.util.List;
-
/**
* @author xaracil@uoc.edu
*/
diff --git a/src/main/java/edu/uoc/elc/lti/platform/NamesRoleServiceResponse.java b/src/main/java/edu/uoc/elc/lti/platform/NamesRoleServiceResponse.java
index b4d2ead..0ae271d 100644
--- a/src/main/java/edu/uoc/elc/lti/platform/NamesRoleServiceResponse.java
+++ b/src/main/java/edu/uoc/elc/lti/platform/NamesRoleServiceResponse.java
@@ -1,16 +1,18 @@
-package edu.uoc.elc.lti.platform;
-
-import lombok.Getter;
-import lombok.Setter;
-
-import java.util.List;
-
-/**
- * @author xaracil@uoc.edu
- */
-@Getter
-@Setter
-public class NamesRoleServiceResponse {
- private String id;
- private List members;
-}
+package edu.uoc.elc.lti.platform;
+
+import java.util.List;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+/**
+ * @author xaracil@uoc.edu
+ */
+@Getter
+@Setter
+@ToString
+public class NamesRoleServiceResponse {
+ private String id;
+ private List members;
+}
diff --git a/src/main/java/edu/uoc/elc/lti/platform/PlatformClient.java b/src/main/java/edu/uoc/elc/lti/platform/PlatformClient.java
index 3c0f2da..58fe827 100644
--- a/src/main/java/edu/uoc/elc/lti/platform/PlatformClient.java
+++ b/src/main/java/edu/uoc/elc/lti/platform/PlatformClient.java
@@ -1,14 +1,15 @@
package edu.uoc.elc.lti.platform;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import org.apache.commons.io.IOUtils;
-
import java.io.IOException;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
+import org.apache.commons.io.IOUtils;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+
/**
* @author xaracil@uoc.edu
*/
diff --git a/src/main/java/edu/uoc/elc/lti/platform/accesstoken/AccessTokenRequestHandler.java b/src/main/java/edu/uoc/elc/lti/platform/accesstoken/AccessTokenRequestHandler.java
index 3f00c6b..326a016 100644
--- a/src/main/java/edu/uoc/elc/lti/platform/accesstoken/AccessTokenRequestHandler.java
+++ b/src/main/java/edu/uoc/elc/lti/platform/accesstoken/AccessTokenRequestHandler.java
@@ -1,5 +1,11 @@
package edu.uoc.elc.lti.platform.accesstoken;
+import java.io.IOException;
+import java.net.URL;
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+
import edu.uoc.elc.lti.platform.PlatformClient;
import edu.uoc.elc.lti.tool.ScopeEnum;
import edu.uoc.elc.lti.tool.ToolDefinition;
@@ -9,12 +15,6 @@
import edu.uoc.lti.clientcredentials.ClientCredentialsTokenBuilder;
import lombok.RequiredArgsConstructor;
-import java.io.IOException;
-import java.net.URL;
-import java.util.Arrays;
-import java.util.List;
-import java.util.stream.Collectors;
-
/**
* @author xaracil@uoc.edu
*/
diff --git a/src/main/java/edu/uoc/elc/lti/platform/accesstoken/AccessTokenResponse.java b/src/main/java/edu/uoc/elc/lti/platform/accesstoken/AccessTokenResponse.java
index cfe5227..cd3f9b0 100644
--- a/src/main/java/edu/uoc/elc/lti/platform/accesstoken/AccessTokenResponse.java
+++ b/src/main/java/edu/uoc/elc/lti/platform/accesstoken/AccessTokenResponse.java
@@ -1,6 +1,7 @@
package edu.uoc.elc.lti.platform.accesstoken;
import com.fasterxml.jackson.annotation.JsonProperty;
+
import lombok.Getter;
/**
diff --git a/src/main/java/edu/uoc/elc/lti/platform/ags/AgsClientFactory.java b/src/main/java/edu/uoc/elc/lti/platform/ags/AgsClientFactory.java
index 3e4f5e3..8c4154e 100644
--- a/src/main/java/edu/uoc/elc/lti/platform/ags/AgsClientFactory.java
+++ b/src/main/java/edu/uoc/elc/lti/platform/ags/AgsClientFactory.java
@@ -1,5 +1,8 @@
package edu.uoc.elc.lti.platform.ags;
+import java.net.URI;
+import java.net.URISyntaxException;
+
import edu.uoc.elc.lti.exception.UnauthorizedAgsCallException;
import edu.uoc.elc.lti.platform.ags.empty.EmptyResultServiceClient;
import edu.uoc.elc.lti.platform.ags.empty.EmptyScoreServiceClient;
@@ -11,9 +14,6 @@
import edu.uoc.lti.ags.ScoreServiceClient;
import lombok.RequiredArgsConstructor;
-import java.net.URI;
-import java.net.URISyntaxException;
-
/**
* @author xaracil@uoc.edu
*/
diff --git a/src/main/java/edu/uoc/elc/lti/platform/ags/GenericResultServiceClient.java b/src/main/java/edu/uoc/elc/lti/platform/ags/GenericResultServiceClient.java
index 0d1cdbe..69c1ba1 100644
--- a/src/main/java/edu/uoc/elc/lti/platform/ags/GenericResultServiceClient.java
+++ b/src/main/java/edu/uoc/elc/lti/platform/ags/GenericResultServiceClient.java
@@ -1,12 +1,12 @@
package edu.uoc.elc.lti.platform.ags;
+import java.util.List;
+
import edu.uoc.elc.lti.exception.UnauthorizedAgsCallException;
import edu.uoc.lti.ags.Result;
import edu.uoc.lti.ags.ResultServiceClient;
import lombok.RequiredArgsConstructor;
-import java.util.List;
-
/**
* @author xaracil@uoc.edu
*/
diff --git a/src/main/java/edu/uoc/elc/lti/platform/ags/ToolLineItemServiceClient.java b/src/main/java/edu/uoc/elc/lti/platform/ags/ToolLineItemServiceClient.java
index d3d3a4e..5457242 100644
--- a/src/main/java/edu/uoc/elc/lti/platform/ags/ToolLineItemServiceClient.java
+++ b/src/main/java/edu/uoc/elc/lti/platform/ags/ToolLineItemServiceClient.java
@@ -1,13 +1,13 @@
package edu.uoc.elc.lti.platform.ags;
+import java.net.URI;
+import java.util.List;
+
import edu.uoc.elc.lti.exception.UnauthorizedAgsCallException;
import edu.uoc.lti.ags.LineItem;
import edu.uoc.lti.ags.LineItemServiceClient;
import lombok.RequiredArgsConstructor;
-import java.net.URI;
-import java.util.List;
-
/**
* @author xaracil@uoc.edu
*/
diff --git a/src/main/java/edu/uoc/elc/lti/platform/deeplinking/DeepLinkingClient.java b/src/main/java/edu/uoc/elc/lti/platform/deeplinking/DeepLinkingClient.java
index abc5b26..91235df 100644
--- a/src/main/java/edu/uoc/elc/lti/platform/deeplinking/DeepLinkingClient.java
+++ b/src/main/java/edu/uoc/elc/lti/platform/deeplinking/DeepLinkingClient.java
@@ -1,5 +1,10 @@
package edu.uoc.elc.lti.platform.deeplinking;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+
import edu.uoc.elc.lti.exception.InvalidLTICallException;
import edu.uoc.elc.lti.tool.deeplinking.Settings;
import edu.uoc.lti.deeplink.DeepLinkingResponse;
@@ -8,11 +13,6 @@
import lombok.Getter;
import lombok.RequiredArgsConstructor;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.List;
-
/**
* @author xaracil@uoc.edu
*/
diff --git a/src/main/java/edu/uoc/elc/lti/platform/deeplinking/FileItemValidator.java b/src/main/java/edu/uoc/elc/lti/platform/deeplinking/FileItemValidator.java
index a57e50d..b03f65c 100644
--- a/src/main/java/edu/uoc/elc/lti/platform/deeplinking/FileItemValidator.java
+++ b/src/main/java/edu/uoc/elc/lti/platform/deeplinking/FileItemValidator.java
@@ -1,11 +1,11 @@
package edu.uoc.elc.lti.platform.deeplinking;
+import java.util.List;
+
import edu.uoc.elc.lti.tool.deeplinking.Settings;
import edu.uoc.lti.deeplink.content.FileItem;
import edu.uoc.lti.deeplink.content.Item;
-import java.util.List;
-
/**
* @author xaracil@uoc.edu
*/
diff --git a/src/main/java/edu/uoc/elc/lti/platform/deeplinking/ItemValidator.java b/src/main/java/edu/uoc/elc/lti/platform/deeplinking/ItemValidator.java
index 47fe82f..f7d6d39 100644
--- a/src/main/java/edu/uoc/elc/lti/platform/deeplinking/ItemValidator.java
+++ b/src/main/java/edu/uoc/elc/lti/platform/deeplinking/ItemValidator.java
@@ -1,12 +1,12 @@
package edu.uoc.elc.lti.platform.deeplinking;
+import java.util.List;
+
import edu.uoc.elc.lti.tool.deeplinking.Settings;
import edu.uoc.lti.deeplink.content.Item;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
-import java.util.List;
-
/**
* @author xaracil@uoc.edu
*/
diff --git a/src/main/java/edu/uoc/elc/lti/tool/AssignmentGradeService.java b/src/main/java/edu/uoc/elc/lti/tool/AssignmentGradeService.java
index c67ebff..84521d7 100644
--- a/src/main/java/edu/uoc/elc/lti/tool/AssignmentGradeService.java
+++ b/src/main/java/edu/uoc/elc/lti/tool/AssignmentGradeService.java
@@ -1,33 +1,31 @@
-package edu.uoc.elc.lti.tool;
-
-import lombok.Getter;
-import lombok.Setter;
-
-import java.util.List;
-
-/**
- * @author xaracil@uoc.edu
- */
-@Getter
-@Setter
-public class AssignmentGradeService {
- private List scope;
- private String lineitems;
- private String lineitem;
-
- public boolean canReadResults() {
- return scope != null && scope.contains(ScopeEnum.AGS_SCOPE_RESULT.getScope());
- }
-
- public boolean canReadLineItems() {
- return canManageLineItems() || (scope != null && scope.contains(ScopeEnum.AGS_SCOPE_LINE_ITEM_READONLY.getScope()));
- }
-
- public boolean canManageLineItems() {
- return scope != null && scope.contains(ScopeEnum.AGS_SCOPE_LINE_ITEM.getScope());
- }
-
- public boolean canScore() {
- return scope != null && scope.contains(ScopeEnum.AGS_SCOPE_SCORE.getScope());
- }
-}
+package edu.uoc.elc.lti.tool;
+
+import java.util.List;
+
+import lombok.Data;
+
+/**
+ * @author xaracil@uoc.edu
+ */
+@Data
+public class AssignmentGradeService {
+ private List scope;
+ private String lineitems;
+ private String lineitem;
+
+ public boolean canReadResults() {
+ return scope != null && scope.contains(ScopeEnum.AGS_SCOPE_RESULT.getScope());
+ }
+
+ public boolean canReadLineItems() {
+ return canManageLineItems() || (scope != null && scope.contains(ScopeEnum.AGS_SCOPE_LINE_ITEM_READONLY.getScope()));
+ }
+
+ public boolean canManageLineItems() {
+ return scope != null && scope.contains(ScopeEnum.AGS_SCOPE_LINE_ITEM.getScope());
+ }
+
+ public boolean canScore() {
+ return scope != null && scope.contains(ScopeEnum.AGS_SCOPE_SCORE.getScope());
+ }
+}
diff --git a/src/main/java/edu/uoc/elc/lti/tool/AuthenticationResponseValidator.java b/src/main/java/edu/uoc/elc/lti/tool/AuthenticationResponseValidator.java
index 3115866..85f9cb4 100644
--- a/src/main/java/edu/uoc/elc/lti/tool/AuthenticationResponseValidator.java
+++ b/src/main/java/edu/uoc/elc/lti/tool/AuthenticationResponseValidator.java
@@ -1,15 +1,14 @@
package edu.uoc.elc.lti.tool;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+
import edu.uoc.lti.claims.ClaimAccessor;
import edu.uoc.lti.claims.ClaimsEnum;
-import edu.uoc.lti.oidc.OIDCLaunchSession;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
-
/**
* @author xaracil@uoc.edu
*/
diff --git a/src/main/java/edu/uoc/elc/lti/tool/Context.java b/src/main/java/edu/uoc/elc/lti/tool/Context.java
index f5a8b33..579f6de 100644
--- a/src/main/java/edu/uoc/elc/lti/tool/Context.java
+++ b/src/main/java/edu/uoc/elc/lti/tool/Context.java
@@ -1,19 +1,17 @@
-package edu.uoc.elc.lti.tool;
-
-import lombok.Getter;
-import lombok.Setter;
-
-import java.util.List;
-
-/**
- * @author xaracil@uoc.edu
- */
-@Getter
-@Setter
-public class Context {
- private String id;
- private String label;
- private String title;
- private List type;
-
-}
+package edu.uoc.elc.lti.tool;
+
+import java.util.List;
+
+import lombok.Data;
+
+/**
+ * @author xaracil@uoc.edu
+ */
+@Data
+public class Context {
+ private String id;
+ private String label;
+ private String title;
+ private List type;
+
+}
diff --git a/src/main/java/edu/uoc/elc/lti/tool/LaunchValidator.java b/src/main/java/edu/uoc/elc/lti/tool/LaunchValidator.java
index b187e2f..999bbc4 100644
--- a/src/main/java/edu/uoc/elc/lti/tool/LaunchValidator.java
+++ b/src/main/java/edu/uoc/elc/lti/tool/LaunchValidator.java
@@ -2,19 +2,12 @@
import edu.uoc.elc.lti.tool.validator.LaunchValidatable;
import edu.uoc.elc.lti.tool.validator.MessageTypesValidatorEnum;
-import edu.uoc.lti.MessageTypesEnum;
import edu.uoc.lti.claims.ClaimAccessor;
import edu.uoc.lti.claims.ClaimsEnum;
-import edu.uoc.lti.deeplink.content.DocumentTargetEnum;
-import edu.uoc.lti.deeplink.content.Presentation;
import edu.uoc.lti.oidc.OIDCLaunchSession;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
-import java.util.Arrays;
-import java.util.List;
-import java.util.stream.Collectors;
-
/**
* @author xaracil@uoc.edu
*/
diff --git a/src/main/java/edu/uoc/elc/lti/tool/NamesRoleService.java b/src/main/java/edu/uoc/elc/lti/tool/NamesRoleService.java
index f086cf8..4699965 100644
--- a/src/main/java/edu/uoc/elc/lti/tool/NamesRoleService.java
+++ b/src/main/java/edu/uoc/elc/lti/tool/NamesRoleService.java
@@ -1,16 +1,14 @@
-package edu.uoc.elc.lti.tool;
-
-import lombok.Getter;
-import lombok.Setter;
-
-import java.util.List;
-
-/**
- * @author xaracil@uoc.edu
- */
-@Getter
-@Setter
-public class NamesRoleService {
- private String context_memberships_url;
- private List service_versions;
-}
+package edu.uoc.elc.lti.tool;
+
+import java.util.List;
+
+import lombok.Data;
+
+/**
+ * @author xaracil@uoc.edu
+ */
+@Data
+public class NamesRoleService {
+ private String context_memberships_url;
+ private List service_versions;
+}
diff --git a/src/main/java/edu/uoc/elc/lti/tool/Platform.java b/src/main/java/edu/uoc/elc/lti/tool/Platform.java
index 3211719..d1eb154 100644
--- a/src/main/java/edu/uoc/elc/lti/tool/Platform.java
+++ b/src/main/java/edu/uoc/elc/lti/tool/Platform.java
@@ -1,19 +1,28 @@
-package edu.uoc.elc.lti.tool;
-
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * @author xaracil@uoc.edu
- */
-@Getter
-@Setter
-public class Platform {
- private String guid;
- private String name;
- private String contact_email;
- private String description;
- private String url;
- private String product_family_code;
- private String version;
-}
+package edu.uoc.elc.lti.tool;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+
+import lombok.Data;
+
+/**
+ * @author xaracil@uoc.edu
+ */
+@Data
+/*
+ * To fix an issue with Moodle 3.8 not compliant with LTI. While LTI 1.3
+ * specifies the key to be "product_family_code", Moodle 3.8 uses
+ * "familiy_code". The @JsonIgnoreProperties annotation ignores the bad key for
+ * now without remapping it to the original spec.
+ *
+ * @author heutelbeck
+ */
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class Platform {
+ private String guid;
+ private String name;
+ private String contact_email;
+ private String description;
+ private String url;
+ private String product_family_code;
+ private String version;
+}
diff --git a/src/main/java/edu/uoc/elc/lti/tool/ResourceLink.java b/src/main/java/edu/uoc/elc/lti/tool/ResourceLink.java
index 7e18d08..79db71d 100644
--- a/src/main/java/edu/uoc/elc/lti/tool/ResourceLink.java
+++ b/src/main/java/edu/uoc/elc/lti/tool/ResourceLink.java
@@ -1,15 +1,13 @@
-package edu.uoc.elc.lti.tool;
-
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * @author xaracil@uoc.edu
- */
-@Getter
-@Setter
-public class ResourceLink {
- private String id;
- private String title;
- private String description;
-}
+package edu.uoc.elc.lti.tool;
+
+import lombok.Data;
+
+/**
+ * @author xaracil@uoc.edu
+ */
+@Data
+public class ResourceLink {
+ private String id;
+ private String title;
+ private String description;
+}
diff --git a/src/main/java/edu/uoc/elc/lti/tool/Tool.java b/src/main/java/edu/uoc/elc/lti/tool/Tool.java
index 67b7644..d8d21c4 100644
--- a/src/main/java/edu/uoc/elc/lti/tool/Tool.java
+++ b/src/main/java/edu/uoc/elc/lti/tool/Tool.java
@@ -1,234 +1,220 @@
-package edu.uoc.elc.lti.tool;
-
-import edu.uoc.elc.lti.exception.BadToolProviderConfigurationException;
-import edu.uoc.elc.lti.platform.accesstoken.AccessTokenRequestHandler;
-import edu.uoc.elc.lti.platform.accesstoken.AccessTokenResponse;
-import edu.uoc.elc.lti.platform.ags.AgsClientFactory;
-import edu.uoc.elc.lti.platform.deeplinking.DeepLinkingClient;
-import edu.uoc.elc.lti.tool.deeplinking.Settings;
-import edu.uoc.elc.lti.tool.oidc.AuthRequestUrlBuilder;
-import edu.uoc.elc.lti.tool.oidc.LoginRequest;
-import edu.uoc.elc.lti.tool.oidc.LoginResponse;
-import edu.uoc.lti.MessageTypesEnum;
-import edu.uoc.lti.claims.ClaimAccessor;
-import edu.uoc.lti.claims.ClaimsEnum;
-import edu.uoc.lti.oidc.OIDCLaunchSession;
-import lombok.Getter;
-import lombok.RequiredArgsConstructor;
-
-import java.io.IOException;
-import java.math.BigInteger;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.security.SecureRandom;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-/**
- * @author xaracil@uoc.edu
- */
-@RequiredArgsConstructor
-public class Tool {
- @Getter
- String issuer;
- @Getter
- String audience;
-
- @Getter
- String kid;
-
- @Getter
- Date issuedAt;
-
- @Getter
- Date expiresAt;
-
- @Getter
- private User user;
-
- @Getter
- private String locale;
-
- @Getter
- private boolean valid;
-
- @Getter
- private String reason;
-
- private AccessTokenResponse accessTokenResponse;
-
- private final ToolDefinition toolDefinition;
- private final ClaimAccessor claimAccessor;
- private final OIDCLaunchSession oidcLaunchSession;
- private final ToolBuilders toolBuilders;
-
- public boolean validate(String token, String state) {
- LaunchValidator launchValidator = new LaunchValidator(toolDefinition, claimAccessor, oidcLaunchSession);
- this.valid = launchValidator.validate(token, state);
- if (!this.valid) {
- this.reason = launchValidator.getReason();
- return false;
- }
-
- // get the standard JWT payload claims
- this.issuer = this.claimAccessor.getIssuer();
- this.audience = this.claimAccessor.getAudience();
- this.issuedAt = this.claimAccessor.getIssuedAt();
- this.expiresAt = this.claimAccessor.getExpiration();
-
- // create the user attribute
- createUser(this.claimAccessor.getSubject());
-
- // update locale attribute
- this.locale = this.claimAccessor.get(ClaimsEnum.LOCALE);
-
- return this.valid;
- }
-
- public AccessTokenResponse getAccessToken() throws IOException, BadToolProviderConfigurationException {
- if (!this.isValid()) {
- return null;
- }
-
- if (accessTokenResponse == null) {
- AccessTokenRequestHandler accessTokenRequestHandler = new AccessTokenRequestHandler(kid,
- toolDefinition,
- toolBuilders.getClientCredentialsTokenBuilder(),
- toolBuilders.getAccessTokenRequestBuilder());
- accessTokenResponse = accessTokenRequestHandler.getAccessToken();
- }
-
- return accessTokenResponse;
- }
-
- private void createUser(String subject) {
- this.user = User.builder()
- .id(subject)
- .givenName(this.claimAccessor.get(ClaimsEnum.GIVEN_NAME))
- .familyName(this.claimAccessor.get(ClaimsEnum.FAMILY_NAME))
- .middleName(this.claimAccessor.get(ClaimsEnum.MIDDLE_NAME))
- .picture(this.claimAccessor.get(ClaimsEnum.PICTURE))
- .email(this.claimAccessor.get(ClaimsEnum.EMAIL))
- .name(this.claimAccessor.get(ClaimsEnum.NAME))
- .build();
- }
-
-
- // general claims getters
- public Platform getPlatform() {
- return this.claimAccessor.get(ClaimsEnum.TOOL_PLATFORM, Platform.class);
- }
-
- public Context getContext() {
- return this.claimAccessor.get(ClaimsEnum.CONTEXT, Context.class);
- }
-
- public ResourceLink getResourceLink() {
- return this.claimAccessor.get(ClaimsEnum.RESOURCE_LINK, ResourceLink.class);
- }
-
- public NamesRoleService getNameRoleService() {
- return this.claimAccessor.get(ClaimsEnum.NAMES_ROLE_SERVICE, NamesRoleService.class);
- }
-
- public AssignmentGradeService getAssignmentGradeService() {
- return this.claimAccessor.get(ClaimsEnum.ASSIGNMENT_GRADE_SERVICE, AssignmentGradeService.class);
- }
-
- public String getDeploymentId() {
- if (!isDeepLinkingRequest()) {
- return null;
- }
- return this.claimAccessor.get(ClaimsEnum.DEPLOYMENT_ID);
- }
-
- public Settings getDeepLinkingSettings() {
- if (!isDeepLinkingRequest()) {
- return null;
- }
- return this.claimAccessor.get(ClaimsEnum.DEEP_LINKING_SETTINGS, Settings.class);
- }
-
-
- public List getRoles() {
- Class> rolesClass = (Class) List.class;
- return this.claimAccessor.get(ClaimsEnum.ROLES, rolesClass);
- }
-
- public String getCustomParameter(String name) {
- Class