GithubHelp home page GithubHelp logo

java-lti-1.3's Introduction

LTI 1.3 & LTI Advantage Java Library

Library implementing a full LTI Advantage tool.

Install

This library depends on two additional libraries:

Install it using maven:

./mvnw install

Documentation

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

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:

Key

  • id: id of the key
  • privateKey: private key of the key
  • publicKey: public key of the key
  • algorithm: algorithm of the key, usually RSAS

KeySet

  • id: id of the keyset
  • keys: list of keys of the keyset

Deployment

  • deploymentId: Id of the deployment

Registration

  • clientId
  • name: Name of the tool
  • platform: Name of the platform
  • keySetUrl: URL of the platform's keyset
  • accessTokenUrl: URL of the platform's access token
  • oidcAuthUrl: URL of the platform's OIDC auth
  • deployments: List of deployments
  • keySet: 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

Usage

  1. Set your maven installation to work with Github packages, following https://help.github.com/en/packages/using-github-packages-with-your-projects-ecosystem/configuring-apache-maven-for-use-with-github-packages#authenticating-to-github-packages

Repository info:

<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>
  1. Add the dependency to your pom.xml file:
  <dependency>
    <groupId>edu.uoc.elc.lti</groupId>
    <artifactId>lti-13</artifactId>
    <version>0.0.2</version>
  </dependency>

Contributing

Thanks for being interested in this project. The way of contributing is the common for almost all projects:

  1. Fork the project to your account
  2. Implement your changes
  3. Make a pull request

If you need further information contact to xaracil at uoc dot edu

java-lti-1.3's People

Contributors

abertranb avatar dependabot[bot] avatar xaviaracil avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.