├── .github └── workflows │ ├── pr.yml │ └── push.yml ├── .gitignore ├── .java-version ├── LICENSE.txt ├── README.md ├── pom.xml └── src ├── main ├── java │ └── uk │ │ └── ac │ │ └── ox │ │ └── ctl │ │ └── lti13 │ │ ├── KeyPairService.java │ │ ├── Lti13Configurer.java │ │ ├── Lti13ConfigurerUtils.java │ │ ├── OAuth2Interceptor.java │ │ ├── SingleKeyPairService.java │ │ ├── TokenRetriever.java │ │ ├── lti │ │ ├── Claims.java │ │ ├── ContextTypes.java │ │ └── Role.java │ │ ├── nrps │ │ ├── Context.java │ │ ├── LtiScopes.java │ │ ├── Member.java │ │ ├── Message.java │ │ ├── NRPSResponse.java │ │ └── NamesRoleService.java │ │ ├── security │ │ └── oauth2 │ │ │ ├── OAuthAuthenticationFailureHandler.java │ │ │ ├── client │ │ │ └── lti │ │ │ │ ├── authentication │ │ │ │ ├── OidcAuthenticationToken.java │ │ │ │ ├── OidcLaunchFlowAuthenticationProvider.java │ │ │ │ ├── OidcLaunchFlowToken.java │ │ │ │ ├── OidcTokenValidator.java │ │ │ │ └── TargetLinkUriAuthenticationSuccessHandler.java │ │ │ │ └── web │ │ │ │ ├── AuthorizationRedirectHandler.java │ │ │ │ ├── HttpSessionOAuth2AuthorizationRequestRepository.java │ │ │ │ ├── InvalidClientRegistrationIdException.java │ │ │ │ ├── InvalidInitiationRequestException.java │ │ │ │ ├── LTIAuthorizationGrantType.java │ │ │ │ ├── OAuth2AuthorizationRequestRedirectFilter.java │ │ │ │ ├── OAuth2LoginAuthenticationFilter.java │ │ │ │ ├── OIDCInitiatingLoginRequestResolver.java │ │ │ │ ├── OIDCInitiationRegistrationResolver.java │ │ │ │ ├── OptimisticAuthorizationRequestRepository.java │ │ │ │ ├── PathOIDCInitiationRegistrationResolver.java │ │ │ │ ├── StateAuthorizationRedirectHandler.java │ │ │ │ ├── StateAuthorizationRequestRepository.java │ │ │ │ └── StateCheckingAuthenticationSuccessHandler.java │ │ │ └── core │ │ │ ├── endpoint │ │ │ ├── OIDCLaunchFlowExchange.java │ │ │ └── OIDCLaunchFlowResponse.java │ │ │ └── user │ │ │ └── LtiOauth2User.java │ │ └── utils │ │ ├── KeyStoreKeyFactory.java │ │ └── StringReader.java └── resources │ └── uk │ └── ac │ └── ox │ └── ctl │ └── lti13 │ ├── step-1-redirect.html │ └── step-3-redirect.html └── test └── java └── uk └── ac └── ox └── ctl └── lti13 ├── config └── Lti13Configuration.java ├── stateful ├── Lti13Step1Test.java └── Lti13Step3Test.java └── stateless ├── Lti13Step1Test.java └── Lti13Step3Test.java /.github/workflows/pr.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/.github/workflows/pr.yml -------------------------------------------------------------------------------- /.github/workflows/push.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/.github/workflows/push.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/.gitignore -------------------------------------------------------------------------------- /.java-version: -------------------------------------------------------------------------------- 1 | 17 -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/LICENSE.txt -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/README.md -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/pom.xml -------------------------------------------------------------------------------- /src/main/java/uk/ac/ox/ctl/lti13/KeyPairService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/main/java/uk/ac/ox/ctl/lti13/KeyPairService.java -------------------------------------------------------------------------------- /src/main/java/uk/ac/ox/ctl/lti13/Lti13Configurer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/main/java/uk/ac/ox/ctl/lti13/Lti13Configurer.java -------------------------------------------------------------------------------- /src/main/java/uk/ac/ox/ctl/lti13/Lti13ConfigurerUtils.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/main/java/uk/ac/ox/ctl/lti13/Lti13ConfigurerUtils.java -------------------------------------------------------------------------------- /src/main/java/uk/ac/ox/ctl/lti13/OAuth2Interceptor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/main/java/uk/ac/ox/ctl/lti13/OAuth2Interceptor.java -------------------------------------------------------------------------------- /src/main/java/uk/ac/ox/ctl/lti13/SingleKeyPairService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/main/java/uk/ac/ox/ctl/lti13/SingleKeyPairService.java -------------------------------------------------------------------------------- /src/main/java/uk/ac/ox/ctl/lti13/TokenRetriever.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/main/java/uk/ac/ox/ctl/lti13/TokenRetriever.java -------------------------------------------------------------------------------- /src/main/java/uk/ac/ox/ctl/lti13/lti/Claims.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/main/java/uk/ac/ox/ctl/lti13/lti/Claims.java -------------------------------------------------------------------------------- /src/main/java/uk/ac/ox/ctl/lti13/lti/ContextTypes.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/main/java/uk/ac/ox/ctl/lti13/lti/ContextTypes.java -------------------------------------------------------------------------------- /src/main/java/uk/ac/ox/ctl/lti13/lti/Role.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/main/java/uk/ac/ox/ctl/lti13/lti/Role.java -------------------------------------------------------------------------------- /src/main/java/uk/ac/ox/ctl/lti13/nrps/Context.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/main/java/uk/ac/ox/ctl/lti13/nrps/Context.java -------------------------------------------------------------------------------- /src/main/java/uk/ac/ox/ctl/lti13/nrps/LtiScopes.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/main/java/uk/ac/ox/ctl/lti13/nrps/LtiScopes.java -------------------------------------------------------------------------------- /src/main/java/uk/ac/ox/ctl/lti13/nrps/Member.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/main/java/uk/ac/ox/ctl/lti13/nrps/Member.java -------------------------------------------------------------------------------- /src/main/java/uk/ac/ox/ctl/lti13/nrps/Message.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/main/java/uk/ac/ox/ctl/lti13/nrps/Message.java -------------------------------------------------------------------------------- /src/main/java/uk/ac/ox/ctl/lti13/nrps/NRPSResponse.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/main/java/uk/ac/ox/ctl/lti13/nrps/NRPSResponse.java -------------------------------------------------------------------------------- /src/main/java/uk/ac/ox/ctl/lti13/nrps/NamesRoleService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/main/java/uk/ac/ox/ctl/lti13/nrps/NamesRoleService.java -------------------------------------------------------------------------------- /src/main/java/uk/ac/ox/ctl/lti13/security/oauth2/OAuthAuthenticationFailureHandler.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/main/java/uk/ac/ox/ctl/lti13/security/oauth2/OAuthAuthenticationFailureHandler.java -------------------------------------------------------------------------------- /src/main/java/uk/ac/ox/ctl/lti13/security/oauth2/client/lti/authentication/OidcAuthenticationToken.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/main/java/uk/ac/ox/ctl/lti13/security/oauth2/client/lti/authentication/OidcAuthenticationToken.java -------------------------------------------------------------------------------- /src/main/java/uk/ac/ox/ctl/lti13/security/oauth2/client/lti/authentication/OidcLaunchFlowAuthenticationProvider.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/main/java/uk/ac/ox/ctl/lti13/security/oauth2/client/lti/authentication/OidcLaunchFlowAuthenticationProvider.java -------------------------------------------------------------------------------- /src/main/java/uk/ac/ox/ctl/lti13/security/oauth2/client/lti/authentication/OidcLaunchFlowToken.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/main/java/uk/ac/ox/ctl/lti13/security/oauth2/client/lti/authentication/OidcLaunchFlowToken.java -------------------------------------------------------------------------------- /src/main/java/uk/ac/ox/ctl/lti13/security/oauth2/client/lti/authentication/OidcTokenValidator.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/main/java/uk/ac/ox/ctl/lti13/security/oauth2/client/lti/authentication/OidcTokenValidator.java -------------------------------------------------------------------------------- /src/main/java/uk/ac/ox/ctl/lti13/security/oauth2/client/lti/authentication/TargetLinkUriAuthenticationSuccessHandler.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/main/java/uk/ac/ox/ctl/lti13/security/oauth2/client/lti/authentication/TargetLinkUriAuthenticationSuccessHandler.java -------------------------------------------------------------------------------- /src/main/java/uk/ac/ox/ctl/lti13/security/oauth2/client/lti/web/AuthorizationRedirectHandler.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/main/java/uk/ac/ox/ctl/lti13/security/oauth2/client/lti/web/AuthorizationRedirectHandler.java -------------------------------------------------------------------------------- /src/main/java/uk/ac/ox/ctl/lti13/security/oauth2/client/lti/web/HttpSessionOAuth2AuthorizationRequestRepository.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/main/java/uk/ac/ox/ctl/lti13/security/oauth2/client/lti/web/HttpSessionOAuth2AuthorizationRequestRepository.java -------------------------------------------------------------------------------- /src/main/java/uk/ac/ox/ctl/lti13/security/oauth2/client/lti/web/InvalidClientRegistrationIdException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/main/java/uk/ac/ox/ctl/lti13/security/oauth2/client/lti/web/InvalidClientRegistrationIdException.java -------------------------------------------------------------------------------- /src/main/java/uk/ac/ox/ctl/lti13/security/oauth2/client/lti/web/InvalidInitiationRequestException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/main/java/uk/ac/ox/ctl/lti13/security/oauth2/client/lti/web/InvalidInitiationRequestException.java -------------------------------------------------------------------------------- /src/main/java/uk/ac/ox/ctl/lti13/security/oauth2/client/lti/web/LTIAuthorizationGrantType.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/main/java/uk/ac/ox/ctl/lti13/security/oauth2/client/lti/web/LTIAuthorizationGrantType.java -------------------------------------------------------------------------------- /src/main/java/uk/ac/ox/ctl/lti13/security/oauth2/client/lti/web/OAuth2AuthorizationRequestRedirectFilter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/main/java/uk/ac/ox/ctl/lti13/security/oauth2/client/lti/web/OAuth2AuthorizationRequestRedirectFilter.java -------------------------------------------------------------------------------- /src/main/java/uk/ac/ox/ctl/lti13/security/oauth2/client/lti/web/OAuth2LoginAuthenticationFilter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/main/java/uk/ac/ox/ctl/lti13/security/oauth2/client/lti/web/OAuth2LoginAuthenticationFilter.java -------------------------------------------------------------------------------- /src/main/java/uk/ac/ox/ctl/lti13/security/oauth2/client/lti/web/OIDCInitiatingLoginRequestResolver.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/main/java/uk/ac/ox/ctl/lti13/security/oauth2/client/lti/web/OIDCInitiatingLoginRequestResolver.java -------------------------------------------------------------------------------- /src/main/java/uk/ac/ox/ctl/lti13/security/oauth2/client/lti/web/OIDCInitiationRegistrationResolver.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/main/java/uk/ac/ox/ctl/lti13/security/oauth2/client/lti/web/OIDCInitiationRegistrationResolver.java -------------------------------------------------------------------------------- /src/main/java/uk/ac/ox/ctl/lti13/security/oauth2/client/lti/web/OptimisticAuthorizationRequestRepository.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/main/java/uk/ac/ox/ctl/lti13/security/oauth2/client/lti/web/OptimisticAuthorizationRequestRepository.java -------------------------------------------------------------------------------- /src/main/java/uk/ac/ox/ctl/lti13/security/oauth2/client/lti/web/PathOIDCInitiationRegistrationResolver.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/main/java/uk/ac/ox/ctl/lti13/security/oauth2/client/lti/web/PathOIDCInitiationRegistrationResolver.java -------------------------------------------------------------------------------- /src/main/java/uk/ac/ox/ctl/lti13/security/oauth2/client/lti/web/StateAuthorizationRedirectHandler.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/main/java/uk/ac/ox/ctl/lti13/security/oauth2/client/lti/web/StateAuthorizationRedirectHandler.java -------------------------------------------------------------------------------- /src/main/java/uk/ac/ox/ctl/lti13/security/oauth2/client/lti/web/StateAuthorizationRequestRepository.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/main/java/uk/ac/ox/ctl/lti13/security/oauth2/client/lti/web/StateAuthorizationRequestRepository.java -------------------------------------------------------------------------------- /src/main/java/uk/ac/ox/ctl/lti13/security/oauth2/client/lti/web/StateCheckingAuthenticationSuccessHandler.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/main/java/uk/ac/ox/ctl/lti13/security/oauth2/client/lti/web/StateCheckingAuthenticationSuccessHandler.java -------------------------------------------------------------------------------- /src/main/java/uk/ac/ox/ctl/lti13/security/oauth2/core/endpoint/OIDCLaunchFlowExchange.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/main/java/uk/ac/ox/ctl/lti13/security/oauth2/core/endpoint/OIDCLaunchFlowExchange.java -------------------------------------------------------------------------------- /src/main/java/uk/ac/ox/ctl/lti13/security/oauth2/core/endpoint/OIDCLaunchFlowResponse.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/main/java/uk/ac/ox/ctl/lti13/security/oauth2/core/endpoint/OIDCLaunchFlowResponse.java -------------------------------------------------------------------------------- /src/main/java/uk/ac/ox/ctl/lti13/security/oauth2/core/user/LtiOauth2User.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/main/java/uk/ac/ox/ctl/lti13/security/oauth2/core/user/LtiOauth2User.java -------------------------------------------------------------------------------- /src/main/java/uk/ac/ox/ctl/lti13/utils/KeyStoreKeyFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/main/java/uk/ac/ox/ctl/lti13/utils/KeyStoreKeyFactory.java -------------------------------------------------------------------------------- /src/main/java/uk/ac/ox/ctl/lti13/utils/StringReader.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/main/java/uk/ac/ox/ctl/lti13/utils/StringReader.java -------------------------------------------------------------------------------- /src/main/resources/uk/ac/ox/ctl/lti13/step-1-redirect.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/main/resources/uk/ac/ox/ctl/lti13/step-1-redirect.html -------------------------------------------------------------------------------- /src/main/resources/uk/ac/ox/ctl/lti13/step-3-redirect.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/main/resources/uk/ac/ox/ctl/lti13/step-3-redirect.html -------------------------------------------------------------------------------- /src/test/java/uk/ac/ox/ctl/lti13/config/Lti13Configuration.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/test/java/uk/ac/ox/ctl/lti13/config/Lti13Configuration.java -------------------------------------------------------------------------------- /src/test/java/uk/ac/ox/ctl/lti13/stateful/Lti13Step1Test.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/test/java/uk/ac/ox/ctl/lti13/stateful/Lti13Step1Test.java -------------------------------------------------------------------------------- /src/test/java/uk/ac/ox/ctl/lti13/stateful/Lti13Step3Test.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/test/java/uk/ac/ox/ctl/lti13/stateful/Lti13Step3Test.java -------------------------------------------------------------------------------- /src/test/java/uk/ac/ox/ctl/lti13/stateless/Lti13Step1Test.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/test/java/uk/ac/ox/ctl/lti13/stateless/Lti13Step1Test.java -------------------------------------------------------------------------------- /src/test/java/uk/ac/ox/ctl/lti13/stateless/Lti13Step3Test.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oxctl/spring-security-lti13/HEAD/src/test/java/uk/ac/ox/ctl/lti13/stateless/Lti13Step3Test.java --------------------------------------------------------------------------------