IMS Global Learning Tools Interoperability 1.1を利用した、LTI Tool Providerのサンプルプログラムです。 Webアプリケーションフレームワークとして、Spring Bootを利用しています。
- Learning Tools Interoperability | IMS Global Learning Consortium
- IMSGlobal/basiclti-util-java
- Spring Boot
- LMSからのローンチに成功すれば"success"、失敗すれば"error"と表示します。LTI Launchリクエストで渡された各種パラメータをコンソール(標準出力)に出力します。
- Web画面にLTI Launchリクエストで渡された各種パラメータを表示します。
LTI Tool Consumerから渡されたkeyを受け取り、対応するsecretを返す。 本来であれば、渡されたキーに対応するSecretをDBや認証サーバに問い合わせて取得することが想定されるが、ここではサンプルのため、固定文字列”secret”を返却。
MockKeyService.java
@Override
public String getSecretForKey(String key) {
return "secret";
}
引数HttpServletRequestでLTI Tool ConsumerからのLaunchリクエストを、LtiVerificationResultで上記1の認証情報の検証結果を受け取る。
LtiController.java
@Lti
@RequestMapping(value="/launch", method=RequestMethod.POST)
public String ltiEntry(HttpServletRequest request, LtiVerificationResult result) {
...中略...
}
- Windowsであればコマンドプロンプト,Macであればターミナルでサンプルプロジェクトの直下に移動
- サンプルプログラムの実行パッケージを作成
$ mvn package
- targetディレクトリの中に,サンプルプログラムの実行パッケージができている
$ ls ./target/
classes maven-archiver
demo-0.0.1-SNAPSHOT.jar maven-status
demo-0.0.1-SNAPSHOT.jar.original surefire-reports
generated-sources test-classes
generated-test-sources
- サンプルプログラム実行パッケージを実行し,学習ツール(Spring Bootサーバ)を起動
$ java -jar target/demo-0.0.1-SNAPSHOT.jar
- ブラウザでSakaiからアクセス,動作を確認
- LtiController: http://[host]/launch
- LtiWebController: http://[host]/launchweb
- (終了方法) Ctrl + C でサーバを終了