Library implementing a full LTI Advantage tool.
This library depends on two additional libraries:
Install it using maven:
./mvnw install
The basic class in the library is edu.uoc.elc.lti.tool.Tool
, which defines a Tool. It has the basic methods:
public boolean validate(String token, String state)
public AccessTokenResponse getAccessToken() throws IOException, BadToolProviderConfigurationException
public NamesRoleService getNameRoleService()
public DeepLinkingClient getDeepLinkingClient()
public AssignmentGradeService getAssignmentGradeService()
It also has utility methods for getting claims in an agnostic way
Configuration of the Tool is made through the classes edu.uoc.elc.lti.tool.Registration
, edu.uoc.elc.lti.tool.KeySet
, edu.uoc.elc.lti.tool.Key
and edu.uoc.elc.lti.tool.Deployment
.
There you can set the following parameters of the tool:
id
: id of the keyprivateKey
: private key of the keypublicKey
: public key of the keyalgorithm
: algorithm of the key, usually RSA
Sid
: id of the keysetkeys
: list of keys of the keysetdeploymentId
: Id of the deploymentclientId
name
: Name of the toolplatform
: Name of the platformkeySetUrl
: URL of the platform's keysetaccessTokenUrl
: URL of the platform's access tokenoidcAuthUrl
: URL of the platform's OIDC authdeployments
: List of deploymentskeySet
: KeySetTool uses LTI 1.3 core interfaces for dealing
with requests and JWT generation. The definition of the implementations of these interfaces are
in the edu.uoc.elc.lti.tool.ToolBuilders
class
Set your maven installation to work with Github packages, following the Github Docs. Add the following configuration to your maven settings.xml
file:
<servers>
<server>
<id>github-uoc-lti</id>
<username>USERNAME</username>
<password>GITHUB_TOKEN</password>
</server>
<server>
<id>github-uoc-lti-core</id>
<username>USERNAME</username>
<password>GITHUB_TOKEN</password>
</server>
<server>
<id>github-uoc-lti-jwt</id>
<username>USERNAME</username>
<password>GITHUB_TOKEN</password>
</server>
</servers>
Add the dependency to your pom.xml
file:
<dependency>
<groupId>edu.uoc.elc.lti</groupId>
<artifactId>lti-13</artifactId>
<version>1.0.0</version>
</dependency>
Add the following repositories to your pom.xml
file & verify that the repositories's IDs matches the server's IDs (set at step 1):
<repositories>
<repository>
<id>github-uoc-lti-core</id>
<name>GitHub UOC Apache Maven Packages</name>
<url>https://maven.pkg.github.com/uoc/java-lti-1.3-core</url>
</repository>
<repository>
<id>github-uoc-lti-jwt</id>
<name>GitHub UOC Apache Maven Packages</name>
<url>https://maven.pkg.github.com/uoc/java-lti-1.3-jwt</url>
</repository>
<repository>
<id>github-uoc-lti</id>
<name>GitHub UOC Apache Maven Packages</name>
<url>https://maven.pkg.github.com/uoc/java-lti-1.3</url>
</repository>
</repositories>
Thanks for being interested in this project. The way of contributing is the common for almost all projects:
If you need further information contact to xaracil at uoc dot edu