Library implementing a full LTI Advantage tool.
This library depends on two additional libraries:
- LTI 1.3 core
- LTI 1.3 JWT for testing
Install it using maven:
./mvnw installThe 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, BadToolProviderConfigurationExceptionpublic 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, usuallyRSAS
id: id of the keysetkeys: list of keys of the keyset
deploymentId: Id of the deployment
clientIdname: 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: KeySet
Tool 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.xmlfile:<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.xmlfile:<dependency> <groupId>edu.uoc.elc.lti</groupId> <artifactId>lti-13</artifactId> <version>1.0.0</version> </dependency>
-
Add the following repositories to your
pom.xmlfile & 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:
- Fork the project to your account
- Implement your changes
- Make a pull request
If you need further information contact to xaracil at uoc dot edu