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 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, usuallyRSA
S
id
: id of the keysetkeys
: list of keys of the keyset
deploymentId
: Id of the deployment
clientId
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
: 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.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:
- 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