├── .gitignore ├── .gitmodules ├── .travis.yml ├── NOTICE ├── OktaGettingStarted.md ├── README.md ├── api ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── stormpath │ │ └── sdk │ │ ├── account │ │ ├── Account.java │ │ ├── AccountCriteria.java │ │ ├── AccountLink.java │ │ ├── AccountLinkCriteria.java │ │ ├── AccountLinkList.java │ │ ├── AccountLinkOptions.java │ │ ├── AccountLinker.java │ │ ├── AccountLinkingPolicy.java │ │ ├── AccountLinkingStatus.java │ │ ├── AccountLinks.java │ │ ├── AccountList.java │ │ ├── AccountOptions.java │ │ ├── AccountStatus.java │ │ ├── Accounts.java │ │ ├── AutomaticProvisioningStatus.java │ │ ├── CreateAccountRequest.java │ │ ├── CreateAccountRequestBuilder.java │ │ ├── EmailVerificationStatus.java │ │ ├── EmailVerificationToken.java │ │ ├── PasswordFormat.java │ │ ├── PasswordResetToken.java │ │ ├── VerificationEmailRequest.java │ │ └── VerificationEmailRequestBuilder.java │ │ ├── accountStoreMapping │ │ └── AccountStoreMapping.java │ │ ├── api │ │ ├── ApiAuthenticationResult.java │ │ ├── ApiKey.java │ │ ├── ApiKeyBuilder.java │ │ ├── ApiKeyCriteria.java │ │ ├── ApiKeyList.java │ │ ├── ApiKeyOptions.java │ │ ├── ApiKeyStatus.java │ │ ├── ApiKeys.java │ │ ├── ApiRequestAuthenticator.java │ │ └── package.java │ │ ├── application │ │ ├── AccountStoreHolder.java │ │ ├── Application.java │ │ ├── ApplicationAccountStoreMapping.java │ │ ├── ApplicationAccountStoreMappingCriteria.java │ │ ├── ApplicationAccountStoreMappingList.java │ │ ├── ApplicationAccountStoreMappingOptions.java │ │ ├── ApplicationAccountStoreMappings.java │ │ ├── ApplicationCriteria.java │ │ ├── ApplicationList.java │ │ ├── ApplicationOptions.java │ │ ├── ApplicationStatus.java │ │ ├── Applications.java │ │ ├── CreateApplicationRequest.java │ │ ├── CreateApplicationRequestBuilder.java │ │ ├── OAuthApplication.java │ │ ├── OAuthAuthenticator.java │ │ └── webconfig │ │ │ ├── ApplicationWebConfig.java │ │ │ ├── ApplicationWebConfigStatus.java │ │ │ ├── ChangePasswordConfig.java │ │ │ ├── ForgotPasswordConfig.java │ │ │ ├── LoginConfig.java │ │ │ ├── MeConfig.java │ │ │ ├── MeExpansionConfig.java │ │ │ ├── Oauth2Config.java │ │ │ ├── RegisterConfig.java │ │ │ ├── VerifyEmailConfig.java │ │ │ └── WebFeatureConfig.java │ │ ├── authc │ │ ├── AuthenticationOptions.java │ │ ├── AuthenticationRequest.java │ │ ├── AuthenticationRequestBuilder.java │ │ ├── AuthenticationResult.java │ │ ├── AuthenticationResultVisitor.java │ │ ├── AuthenticationResultVisitorAdapter.java │ │ ├── BasicAuthenticationOptions.java │ │ ├── OktaAuthNAuthenticator.java │ │ ├── UsernamePasswordRequestBuilder.java │ │ └── UsernamePasswordRequests.java │ │ ├── cache │ │ ├── Cache.java │ │ ├── CacheConfigurationBuilder.java │ │ ├── CacheManager.java │ │ ├── CacheManagerBuilder.java │ │ ├── Caches.java │ │ └── OktaCacheable.java │ │ ├── cert │ │ └── X509SigningCert.java │ │ ├── challenge │ │ ├── Challenge.java │ │ ├── ChallengeCriteria.java │ │ ├── ChallengeList.java │ │ ├── ChallengeOptions.java │ │ ├── Challenges.java │ │ ├── CreateChallengeRequest.java │ │ ├── CreateChallengeRequestBuilder.java │ │ ├── google │ │ │ ├── GoogleAuthenticatorChallenge.java │ │ │ ├── GoogleAuthenticatorChallengeCriteria.java │ │ │ ├── GoogleAuthenticatorChallengeOptions.java │ │ │ ├── GoogleAuthenticatorChallengeStatus.java │ │ │ ├── GoogleAuthenticatorChallenges.java │ │ │ ├── GoogleAuthenticatorCreateChallengeRequest.java │ │ │ └── GoogleAuthenticatorCreateChallengeRequestBuilder.java │ │ └── sms │ │ │ ├── SmsChallenge.java │ │ │ ├── SmsChallengeCriteria.java │ │ │ ├── SmsChallengeOptions.java │ │ │ ├── SmsChallengeStatus.java │ │ │ └── SmsChallenges.java │ │ ├── client │ │ ├── AuthenticationScheme.java │ │ ├── Client.java │ │ ├── ClientBuilder.java │ │ ├── Clients.java │ │ ├── DefaultPairedApiKey.java │ │ ├── PairedApiKey.java │ │ └── Proxy.java │ │ ├── directory │ │ ├── AccountCreationPolicy.java │ │ ├── AccountStore.java │ │ ├── AccountStoreOptions.java │ │ ├── AccountStoreVisitor.java │ │ ├── AccountStoreVisitorAdapter.java │ │ ├── CreateDirectoryRequest.java │ │ ├── CreateDirectoryRequestBuilder.java │ │ ├── CustomData.java │ │ ├── Directories.java │ │ ├── Directory.java │ │ ├── DirectoryCriteria.java │ │ ├── DirectoryList.java │ │ ├── DirectoryOptions.java │ │ ├── DirectoryStatus.java │ │ ├── OktaPasswordPolicy.java │ │ ├── OktaPasswordPolicyList.java │ │ ├── PasswordPolicy.java │ │ └── PasswordStrength.java │ │ ├── ds │ │ └── DataStore.java │ │ ├── error │ │ ├── Error.java │ │ ├── authc │ │ │ ├── AccessTokenOAuthException.java │ │ │ ├── DisabledAccountException.java │ │ │ ├── DisabledApiKeyException.java │ │ │ ├── IncorrectCredentialsException.java │ │ │ ├── InvalidApiKeyException.java │ │ │ ├── InvalidAuthenticationException.java │ │ │ ├── MissingApiKeyException.java │ │ │ ├── OAuthAuthenticationException.java │ │ │ └── UnsupportedAuthenticationSchemeException.java │ │ └── jwt │ │ │ └── InvalidJwtException.java │ │ ├── factor │ │ ├── CreateFactorRequest.java │ │ ├── CreateFactorRequestBuilder.java │ │ ├── Factor.java │ │ ├── FactorCriteria.java │ │ ├── FactorList.java │ │ ├── FactorOptions.java │ │ ├── FactorStatus.java │ │ ├── FactorType.java │ │ ├── FactorVerificationStatus.java │ │ ├── Factors.java │ │ ├── google │ │ │ ├── CreateGoogleAuthenticatorFactorRequest.java │ │ │ ├── CreateGoogleAuthenticatorFactorRequestBuilder.java │ │ │ ├── GoogleAuthenticatorFactor.java │ │ │ ├── GoogleAuthenticatorFactorCriteria.java │ │ │ ├── GoogleAuthenticatorFactorOptions.java │ │ │ └── GoogleAuthenticatorFactors.java │ │ └── sms │ │ │ ├── CreateSmsFactorRequest.java │ │ │ ├── CreateSmsFactorRequestBuilder.java │ │ │ ├── SmsFactor.java │ │ │ ├── SmsFactorCriteria.java │ │ │ ├── SmsFactorOptions.java │ │ │ └── SmsFactors.java │ │ ├── group │ │ ├── CreateGroupRequest.java │ │ ├── CreateGroupRequestBuilder.java │ │ ├── Group.java │ │ ├── GroupCriteria.java │ │ ├── GroupList.java │ │ ├── GroupMembership.java │ │ ├── GroupMembershipList.java │ │ ├── GroupOptions.java │ │ ├── GroupStatus.java │ │ └── Groups.java │ │ ├── http │ │ ├── HttpMethod.java │ │ ├── HttpRequest.java │ │ ├── HttpRequestBuilder.java │ │ ├── HttpRequests.java │ │ └── package.java │ │ ├── idsite │ │ ├── AccountResult.java │ │ ├── AuthenticationResult.java │ │ ├── IDSiteException.java │ │ ├── IDSiteRuntimeException.java │ │ ├── IDSiteSessionTimeoutException.java │ │ ├── IdSiteCallbackHandler.java │ │ ├── IdSiteResultListener.java │ │ ├── IdSiteResultStatus.java │ │ ├── IdSiteUrlBuilder.java │ │ ├── InvalidIDSiteTokenException.java │ │ ├── LogoutResult.java │ │ ├── Nonce.java │ │ ├── NonceStore.java │ │ ├── RegistrationResult.java │ │ └── package.java │ │ ├── lang │ │ ├── Assert.java │ │ ├── BiPredicate.java │ │ ├── Classes.java │ │ ├── Collections.java │ │ ├── CompoundComparator.java │ │ ├── DefaultRuntimeEnvironment.java │ │ ├── Duration.java │ │ ├── Function.java │ │ ├── InstantiationException.java │ │ ├── Instants.java │ │ ├── InvertibleComparator.java │ │ ├── Objects.java │ │ ├── RuntimeEnvironment.java │ │ ├── Strings.java │ │ └── UnknownClassException.java │ │ ├── mail │ │ ├── EmailRequest.java │ │ ├── EmailService.java │ │ ├── EmailServiceBuilder.java │ │ ├── EmailStatus.java │ │ ├── EmailTemplate.java │ │ ├── MimeType.java │ │ ├── ModeledEmailTemplate.java │ │ ├── ModeledEmailTemplateList.java │ │ ├── UnmodeledEmailTemplate.java │ │ ├── UnmodeledEmailTemplateList.java │ │ ├── config │ │ │ ├── DefaultEmailServiceConfig.java │ │ │ └── EmailServiceConfig.java │ │ └── templates │ │ │ ├── TemplateRenderRequest.java │ │ │ └── TemplateRenderer.java │ │ ├── oauth │ │ ├── AccessToken.java │ │ ├── AccessTokenList.java │ │ ├── AccessTokenRequestAuthenticator.java │ │ ├── AccessTokenResult.java │ │ ├── Authenticators.java │ │ ├── BaseOAuthToken.java │ │ ├── GrantAuthenticationToken.java │ │ ├── IdSiteAuthenticationRequest.java │ │ ├── IdSiteAuthenticationRequestBuilder.java │ │ ├── IdSiteAuthenticationRequestFactory.java │ │ ├── IdSiteAuthenticator.java │ │ ├── IdSiteAuthenticatorFactory.java │ │ ├── OAuthApiRequestAuthenticator.java │ │ ├── OAuthAuthenticationResult.java │ │ ├── OAuthBearerRequestAuthentication.java │ │ ├── OAuthBearerRequestAuthenticationBuilder.java │ │ ├── OAuthBearerRequestAuthenticationFactory.java │ │ ├── OAuthBearerRequestAuthenticationResult.java │ │ ├── OAuthBearerRequestAuthenticator.java │ │ ├── OAuthBearerRequestAuthenticatorFactory.java │ │ ├── OAuthClientCredentialsGrantRequestAuthentication.java │ │ ├── OAuthClientCredentialsGrantRequestAuthenticationBuilder.java │ │ ├── OAuthClientCredentialsGrantRequestAuthenticationFactory.java │ │ ├── OAuthClientCredentialsGrantRequestAuthenticator.java │ │ ├── OAuthClientCredentialsRequestAuthenticatorFactory.java │ │ ├── OAuthGrantRequestAuthentication.java │ │ ├── OAuthGrantRequestAuthenticationResult.java │ │ ├── OAuthPasswordGrantRequestAuthentication.java │ │ ├── OAuthPasswordGrantRequestAuthenticationBuilder.java │ │ ├── OAuthPasswordGrantRequestAuthenticationFactory.java │ │ ├── OAuthPasswordGrantRequestAuthenticator.java │ │ ├── OAuthPasswordRequestAuthenticatorFactory.java │ │ ├── OAuthPolicy.java │ │ ├── OAuthRefreshTokenRequestAuthentication.java │ │ ├── OAuthRefreshTokenRequestAuthenticationBuilder.java │ │ ├── OAuthRefreshTokenRequestAuthenticationFactory.java │ │ ├── OAuthRefreshTokenRequestAuthenticator.java │ │ ├── OAuthRefreshTokenRequestAuthenticatorFactory.java │ │ ├── OAuthRequestAuthentication.java │ │ ├── OAuthRequestAuthenticationBuilder.java │ │ ├── OAuthRequestAuthenticationFactory.java │ │ ├── OAuthRequestAuthenticationResult.java │ │ ├── OAuthRequestAuthenticator.java │ │ ├── OAuthRequestAuthenticatorFactory.java │ │ ├── OAuthRequests.java │ │ ├── OAuthRevocationRequest.java │ │ ├── OAuthRevocationRequestBuilder.java │ │ ├── OAuthStormpathFactorChallengeGrantRequestAuthentication.java │ │ ├── OAuthStormpathFactorChallengeGrantRequestAuthenticator.java │ │ ├── OAuthStormpathFactorChallengeGrantRequestAuthenticatorFactory.java │ │ ├── OAuthStormpathSocialGrantRequestAuthentication.java │ │ ├── OAuthStormpathSocialGrantRequestAuthenticator.java │ │ ├── OAuthStormpathSocialRequestAuthenticatorFactory.java │ │ ├── OAuthTokenRevocationRequestFactory.java │ │ ├── OAuthTokenRevocator.java │ │ ├── OAuthTokenRevocatorFactory.java │ │ ├── OAuthTokenRevocators.java │ │ ├── OktaAccessTokenResult.java │ │ ├── RefreshToken.java │ │ ├── RefreshTokenList.java │ │ ├── RequestLocation.java │ │ ├── ResourceRequestAuthenticator.java │ │ ├── ScopeFactory.java │ │ ├── TokenResponse.java │ │ ├── TokenTypeHint.java │ │ └── package.java │ │ ├── okta │ │ ├── ApplicationCredentials.java │ │ ├── AuthNRequest.java │ │ ├── AuthNResult.java │ │ ├── ClientApiKeyResolver.java │ │ ├── OIDCKey.java │ │ ├── OIDCKeysList.java │ │ ├── OIDCWellKnownResource.java │ │ ├── OktaActivateAccountResponse.java │ │ ├── OktaApplicationConfigResource.java │ │ ├── OktaForgotPasswordRequest.java │ │ ├── OktaForgotPasswordResult.java │ │ ├── OktaIdentityProviderList.java │ │ ├── OktaTokenRequest.java │ │ ├── OktaTokenResponse.java │ │ ├── OktaUserToApplicationMapping.java │ │ ├── TokenIntrospectRequest.java │ │ ├── TokenIntrospectResponse.java │ │ └── UserStatus.java │ │ ├── organization │ │ ├── CreateOrganizationRequest.java │ │ ├── CreateOrganizationRequestBuilder.java │ │ ├── Organization.java │ │ ├── OrganizationAccountStoreMapping.java │ │ ├── OrganizationAccountStoreMappingCriteria.java │ │ ├── OrganizationAccountStoreMappingList.java │ │ ├── OrganizationAccountStoreMappingOptions.java │ │ ├── OrganizationAccountStoreMappings.java │ │ ├── OrganizationCriteria.java │ │ ├── OrganizationList.java │ │ ├── OrganizationOptions.java │ │ ├── OrganizationStatus.java │ │ └── Organizations.java │ │ ├── phone │ │ ├── CreatePhoneRequest.java │ │ ├── CreatePhoneRequestBuilder.java │ │ ├── Phone.java │ │ ├── PhoneCriteria.java │ │ ├── PhoneList.java │ │ ├── PhoneOptions.java │ │ ├── PhoneStatus.java │ │ ├── PhoneVerificationStatus.java │ │ └── Phones.java │ │ ├── provider │ │ ├── AccessTokenType.java │ │ ├── CreateProviderRequest.java │ │ ├── CreateProviderRequestBuilder.java │ │ ├── FacebookAccountRequestBuilder.java │ │ ├── FacebookCreateProviderRequestBuilder.java │ │ ├── FacebookProvider.java │ │ ├── FacebookProviderData.java │ │ ├── FacebookRequestFactory.java │ │ ├── GenericOAuth2CreateProviderRequestBuilder.java │ │ ├── GenericOAuth2Provider.java │ │ ├── GenericOAuth2ProviderAccountRequestBuilder.java │ │ ├── GenericOAuth2ProviderData.java │ │ ├── GenericOAuth2ProviderRequestFactory.java │ │ ├── GithubAccountRequestBuilder.java │ │ ├── GithubCreateProviderRequestBuilder.java │ │ ├── GithubProvider.java │ │ ├── GithubProviderData.java │ │ ├── GithubRequestFactory.java │ │ ├── GoogleAccountRequestBuilder.java │ │ ├── GoogleCreateProviderRequestBuilder.java │ │ ├── GoogleProvider.java │ │ ├── GoogleProviderAccessType.java │ │ ├── GoogleProviderData.java │ │ ├── GoogleProviderDisplay.java │ │ ├── GoogleRequestFactory.java │ │ ├── LinkedInAccountRequestBuilder.java │ │ ├── LinkedInCreateProviderRequestBuilder.java │ │ ├── LinkedInProvider.java │ │ ├── LinkedInProviderData.java │ │ ├── LinkedInRequestFactory.java │ │ ├── MappingRule.java │ │ ├── MappingRuleBuilder.java │ │ ├── OAuthProvider.java │ │ ├── OktaAccountRequestBuilder.java │ │ ├── OktaCreateProviderRequestBuilder.java │ │ ├── OktaProvider.java │ │ ├── OktaProviderAccountResult.java │ │ ├── OktaProviderData.java │ │ ├── OktaRequestFactory.java │ │ ├── Provider.java │ │ ├── ProviderAccountRequest.java │ │ ├── ProviderAccountRequestBuilder.java │ │ ├── ProviderAccountResult.java │ │ ├── ProviderData.java │ │ ├── ProviderRequestFactory.java │ │ ├── Providers.java │ │ ├── RedirectableOAuthProvider.java │ │ ├── TwitterAccountRequestBuilder.java │ │ ├── TwitterCreateProviderRequestBuilder.java │ │ ├── TwitterProvider.java │ │ ├── TwitterProviderData.java │ │ ├── TwitterRequestFactory.java │ │ ├── saml │ │ │ ├── CreateSamlProviderRequestBuilder.java │ │ │ ├── SamlAccountRequestBuilder.java │ │ │ ├── SamlProvider.java │ │ │ ├── SamlProviderData.java │ │ │ ├── SamlRequestFactory.java │ │ │ └── StormpathProvider.java │ │ └── social │ │ │ ├── SocialUserInfoMappingRules.java │ │ │ ├── UserInfoMappingRule.java │ │ │ ├── UserInfoMappingRuleBuilder.java │ │ │ ├── UserInfoMappingRules.java │ │ │ └── UserInfoMappingRulesBuilder.java │ │ ├── query │ │ ├── Criteria.java │ │ ├── Criterion.java │ │ ├── DateExpressionFactory.java │ │ ├── EqualsExpressionFactory.java │ │ ├── Options.java │ │ └── StringExpressionFactory.java │ │ ├── resource │ │ ├── Auditable.java │ │ ├── CollectionResource.java │ │ ├── Deletable.java │ │ ├── Extendable.java │ │ ├── Resource.java │ │ ├── ResourceException.java │ │ ├── Saveable.java │ │ └── VoidResource.java │ │ ├── saml │ │ ├── AssertionConsumerServicePostEndpoint.java │ │ ├── AttributeStatementMappingRule.java │ │ ├── AttributeStatementMappingRuleBuilder.java │ │ ├── AttributeStatementMappingRules.java │ │ ├── AttributeStatementMappingRulesBuilder.java │ │ ├── AuthnVerification.java │ │ ├── AuthnVerificationRequest.java │ │ ├── CreateRegisteredSamlServiceProviderRequest.java │ │ ├── CreateRegisteredSamlServiceProviderRequestBuilder.java │ │ ├── CreateSamlResponseRequest.java │ │ ├── CreateSamlServiceProviderRegistrationRequest.java │ │ ├── CreateSamlServiceProviderRegistrationRequestBuilder.java │ │ ├── InvalidSamlTokenException.java │ │ ├── RegisteredSamlServiceProvider.java │ │ ├── RegisteredSamlServiceProviderCriteria.java │ │ ├── RegisteredSamlServiceProviderList.java │ │ ├── RegisteredSamlServiceProviderOptions.java │ │ ├── RegisteredSamlServiceProviders.java │ │ ├── SamlAttributeStatementMappingRules.java │ │ ├── SamlCallbackHandler.java │ │ ├── SamlException.java │ │ ├── SamlIdentityProvider.java │ │ ├── SamlIdentityProviderCriteria.java │ │ ├── SamlIdentityProviderMetadata.java │ │ ├── SamlIdentityProviderOptions.java │ │ ├── SamlIdentityProviderStatus.java │ │ ├── SamlIdentityProviders.java │ │ ├── SamlIdpUrlBuilder.java │ │ ├── SamlPolicy.java │ │ ├── SamlResponse.java │ │ ├── SamlResultListener.java │ │ ├── SamlRuntimeException.java │ │ ├── SamlServiceProvider.java │ │ ├── SamlServiceProviderMetadata.java │ │ ├── SamlServiceProviderRegistration.java │ │ ├── SamlServiceProviderRegistrationCriteria.java │ │ ├── SamlServiceProviderRegistrationList.java │ │ ├── SamlServiceProviderRegistrationOptions.java │ │ ├── SamlServiceProviderRegistrationStatus.java │ │ ├── SamlServiceProviderRegistrations.java │ │ ├── SamlSessionTimeoutException.java │ │ └── SsoInitiationEndpoint.java │ │ ├── schema │ │ ├── Field.java │ │ ├── FieldList.java │ │ └── Schema.java │ │ └── tenant │ │ ├── Tenant.java │ │ ├── TenantActions.java │ │ ├── TenantCriteria.java │ │ ├── TenantOptions.java │ │ └── Tenants.java │ └── test │ └── groovy │ └── com │ └── stormpath │ └── sdk │ ├── authc │ └── AuthenticationResultVisitorAdapterTest.groovy │ ├── lang │ ├── CollectionsTest.groovy │ └── StringsTest.groovy │ └── resource │ └── ResourceExceptionTest.groovy ├── bom └── pom.xml ├── changelog.md ├── ci ├── after_success.sh ├── before_install.sh ├── build.sh ├── build_docs.sh ├── common.sh ├── install.sh ├── install_aws_cli.sh ├── install_scms.sh ├── junit-errors-to-stdout.sh ├── junit-xml-format-errors.xsl ├── publish_coverage_report.sh ├── publish_docs.sh ├── requirements.txt ├── settings.xml ├── transfer_logs_to_s3.sh └── travis_bootstrap.sh ├── clover └── pom.xml ├── docs ├── .scms.groovy ├── Makefile ├── build.sh ├── readme.md └── source │ ├── _static │ ├── console-application-href.png │ ├── console-applications-ann.png │ ├── console-directories-ann.png │ ├── console-directory-ann.png │ ├── console-directory-workflows-ann.png │ ├── console-directory-workflows-pwreset-success-email.png │ ├── console-directory-workflows-pwreset.png │ ├── facebook-new-project.png │ ├── facebook-url-settings.png │ ├── forgot-password-change.png │ ├── forgot-password-email.png │ ├── forgot-result.png │ ├── forgot.png │ ├── google-enable-login.png │ ├── google-new-project.png │ ├── google-oauth-settings.png │ ├── group.png │ ├── idsite-config.png │ ├── idsite-login.png │ ├── linkedin-add-authorized-urls.gif │ ├── linkedin-add-permissions.gif │ ├── linkedin-new-application.gif │ ├── linkedin-permissions-page.png │ ├── login-changed.png │ ├── login-page-facebook-permissions.png │ ├── login-page-facebook.png │ ├── login-page-google-account.png │ ├── login-page-google.png │ ├── login-page-linkedin.png │ ├── login-verified.png │ ├── login.png │ ├── password-changed-email.png │ ├── register-verify-email.png │ ├── register-verify.png │ ├── register-with-birthday.png │ ├── register.png │ ├── social-login.png │ ├── theme_overrides.css │ ├── user-custom-data.png │ └── user-no-custom-data.png │ ├── about.rst │ ├── about_sczuul.rst │ ├── access-control.rst │ ├── appendix.rst │ ├── appendix │ ├── change-password.rst │ ├── default-stormpath-properties.rst │ ├── forgot-password.rst │ ├── head.rst │ ├── i18n-properties.rst │ ├── login.rst │ ├── register.rst │ ├── spring-boot-core-properties.rst │ ├── spring-boot-web-properties.rst │ ├── stormpath-css.rst │ ├── verify.rst │ └── web-stormpath-properties.rst │ ├── authorization.rst │ ├── caching.rst │ ├── conf.py │ ├── config-zuul.rst.inc │ ├── config.rst │ ├── events.rst │ ├── forgot-password.rst │ ├── forwarded-request.rst │ ├── i18n.rst │ ├── idsite.rst │ ├── index.rst │ ├── login.rst │ ├── logout.rst │ ├── quickstart.rst │ ├── registration.rst │ ├── request-authentication.rst │ ├── request.rst │ ├── social.rst │ ├── stormpath-setup.txt │ ├── stormpath-spring-boot-circular-warning.txt │ ├── tutorial.rst │ └── views.rst ├── examples ├── README.md ├── pom.xml ├── quickstart │ ├── README.md │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── quickstart │ │ │ │ └── Quickstart.java │ │ └── resources │ │ │ └── logback.xml │ │ └── test │ │ └── groovy │ │ └── com.stormpath.sdk.examples │ │ └── QuickstartIT.groovy ├── servlet │ ├── README.md │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── stormpath │ │ │ │ └── sdk │ │ │ │ └── examples │ │ │ │ └── servlet │ │ │ │ ├── AjaxLoginController.java │ │ │ │ ├── DashboardController.java │ │ │ │ ├── PostLoginHandler.java │ │ │ │ ├── PostRegisterHandler.java │ │ │ │ ├── PreLoginHandler.java │ │ │ │ ├── PreRegisterHandler.java │ │ │ │ ├── RegisterController.java │ │ │ │ └── WelcomeController.java │ │ ├── resources │ │ │ ├── com │ │ │ │ └── stormpath │ │ │ │ │ └── sdk │ │ │ │ │ └── servlet │ │ │ │ │ └── i18n_es.properties │ │ │ └── logback.xml │ │ └── webapp │ │ │ ├── WEB-INF │ │ │ ├── jsp │ │ │ │ ├── ajaxLogin.jsp │ │ │ │ ├── dashboard.jsp │ │ │ │ └── welcome.jsp │ │ │ ├── stormpath.properties │ │ │ ├── tags │ │ │ │ └── page.tag │ │ │ └── web.xml │ │ │ └── assets │ │ │ ├── css │ │ │ ├── bootstrap-theme.css │ │ │ ├── bootstrap-theme.css.map │ │ │ ├── bootstrap-theme.min.css │ │ │ ├── bootstrap.css │ │ │ ├── bootstrap.css.map │ │ │ ├── bootstrap.min.css │ │ │ └── style.css │ │ │ ├── fonts │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ └── glyphicons-halflings-regular.woff │ │ │ └── js │ │ │ ├── bootstrap.js │ │ │ └── bootstrap.min.js │ │ └── test │ │ └── groovy │ │ └── com │ │ └── stormpath │ │ └── sdk │ │ └── examples │ │ └── servlet │ │ └── i18n │ │ └── I18nIT.groovy ├── spring-boot-default │ ├── README.md │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── stormpath │ │ │ └── spring │ │ │ └── boot │ │ │ └── examples │ │ │ ├── Application.java │ │ │ ├── HelloController.java │ │ │ ├── HelloService.java │ │ │ ├── RestrictedErrorController.java │ │ │ └── SpringSecurityWebAppConfig.java │ │ └── resources │ │ ├── application.properties │ │ ├── logback.xml │ │ └── templates │ │ ├── error.html │ │ ├── fragments │ │ └── head.html │ │ ├── home.html │ │ └── restricted.html ├── spring-boot-webmvc-angular │ ├── README.md │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── stormpath │ │ │ └── spring │ │ │ └── boot │ │ │ └── examples │ │ │ ├── AngularController.java │ │ │ ├── Application.java │ │ │ └── ProfileController.java │ │ └── resources │ │ ├── application.properties │ │ ├── logback.xml │ │ └── static │ │ ├── app.css │ │ ├── app.js │ │ ├── change-password │ │ ├── change-password.html │ │ └── change-password.js │ │ ├── forgot-password │ │ ├── forgot-password.html │ │ └── forgot-password.js │ │ ├── home │ │ ├── home.html │ │ └── home.js │ │ ├── index.html │ │ ├── login │ │ ├── login.html │ │ └── login.js │ │ ├── navbar │ │ ├── navbar.html │ │ └── navbar.js │ │ ├── profile │ │ ├── profile.html │ │ └── profile.js │ │ ├── register │ │ ├── register.html │ │ └── register.js │ │ ├── spinner │ │ └── spinner.html │ │ └── verify-email │ │ ├── verify-email.html │ │ └── verify-email.js ├── spring-boot-webmvc │ ├── README.md │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── stormpath │ │ │ └── spring │ │ │ └── boot │ │ │ └── examples │ │ │ ├── Application.java │ │ │ └── HelloController.java │ │ └── resources │ │ ├── application.properties │ │ ├── logback.xml │ │ └── templates │ │ └── hello.html ├── spring-boot │ ├── README.md │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── stormpath │ │ │ └── spring │ │ │ └── boot │ │ │ └── examples │ │ │ └── App.java │ │ └── resources │ │ ├── application.properties │ │ └── logback.xml ├── spring-security-spring-boot-webmvc-bare-bones │ ├── README.md │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── stormpath │ │ │ └── spring │ │ │ └── boot │ │ │ └── examples │ │ │ └── Application.java │ │ └── resources │ │ ├── application.properties │ │ ├── logback.xml │ │ └── static │ │ └── index.html ├── spring-security-spring-boot-webmvc │ ├── README.md │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── stormpath │ │ │ └── spring │ │ │ └── boot │ │ │ └── examples │ │ │ ├── Application.java │ │ │ ├── HelloController.java │ │ │ ├── HelloService.java │ │ │ ├── RestrictedErrorController.java │ │ │ └── SpringSecurityWebAppConfig.java │ │ └── resources │ │ ├── application.properties │ │ ├── logback.xml │ │ └── templates │ │ ├── error.html │ │ ├── fragments │ │ └── head.html │ │ ├── hello.html │ │ └── restricted.html ├── spring-security-webmvc │ ├── README.md │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── stormpath │ │ │ └── spring │ │ │ └── examples │ │ │ ├── HelloController.java │ │ │ ├── HelloService.java │ │ │ ├── SpringSecurityWebAppConfig.java │ │ │ └── WebAppInitializer.java │ │ ├── resources │ │ ├── application.properties │ │ └── logback.xml │ │ └── webapp │ │ └── WEB-INF │ │ ├── jsp │ │ ├── home.jsp │ │ └── restricted.jsp │ │ └── web.xml ├── spring-webmvc │ ├── README.md │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── stormpath │ │ │ └── spring │ │ │ └── examples │ │ │ ├── HelloController.java │ │ │ ├── WebAppConfig.java │ │ │ └── WebAppInitializer.java │ │ ├── resources │ │ ├── application.properties │ │ └── logback.xml │ │ └── webapp │ │ └── WEB-INF │ │ ├── jsp │ │ └── home.jsp │ │ └── web.xml ├── spring │ ├── README.md │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── stormpath │ │ │ └── spring │ │ │ └── examples │ │ │ ├── App.java │ │ │ └── AppConfig.java │ │ └── resources │ │ ├── application.properties │ │ └── logback.xml └── zuul-spring-cloud-starter │ ├── pom.xml │ └── src │ └── main │ ├── java │ └── com │ │ └── stormpath │ │ └── spring │ │ └── cloud │ │ └── examples │ │ ├── Application.java │ │ └── SecurityConfig.java │ └── resources │ ├── README.md │ ├── application.yml │ ├── rsatest.priv.pem │ ├── rsatest.pub.pem │ ├── secp384r1.priv.pem │ └── secp384r1.pub.pem ├── extensions ├── hazelcast │ ├── pom.xml │ └── src │ │ ├── main │ │ └── java │ │ │ └── com │ │ │ └── stormpath │ │ │ └── sdk │ │ │ └── hazelcast │ │ │ ├── HazelcastCache.java │ │ │ └── HazelcastCacheManager.java │ │ └── test │ │ └── groovy │ │ └── com │ │ └── stormpath │ │ └── sdk │ │ └── hazelcast │ │ ├── HazelcastCacheManagerTest.groovy │ │ └── HazelcastCacheTest.groovy ├── httpclient │ ├── pom.xml │ └── src │ │ ├── main │ │ └── java │ │ │ └── com │ │ │ └── stormpath │ │ │ └── sdk │ │ │ └── impl │ │ │ └── http │ │ │ └── httpclient │ │ │ ├── HttpClientRequestExecutor.java │ │ │ ├── HttpClientRequestFactory.java │ │ │ └── RepeatableInputStreamEntity.java │ │ └── test │ │ ├── groovy │ │ └── com │ │ │ └── stormpath │ │ │ └── sdk │ │ │ ├── client │ │ │ ├── AbstractCustomDataIT.groovy │ │ │ ├── AccountCreationPolicyIT.groovy │ │ │ ├── ApiKeysTest.groovy │ │ │ ├── ApplicationAccountStoreMappingIT.groovy │ │ │ ├── ApplicationCustomDataIT.groovy │ │ │ ├── BasicAuthenticationClientIT.groovy │ │ │ ├── ClientIT.groovy │ │ │ ├── ClientTestDeeperDive.groovy │ │ │ ├── ClientsTest.groovy │ │ │ ├── CustomDataEntityIT.groovy │ │ │ ├── DeleteAllAppsAndDirsManualIT.groovy │ │ │ ├── DirectoryAccountCustomDataIT.groovy │ │ │ ├── DirectoryGroupCustomDataIT.groovy │ │ │ ├── DirectoryIT.groovy │ │ │ ├── GroupCreationTest.groovy │ │ │ ├── HammerManualIT.groovy │ │ │ ├── ListingManualIT.groovy │ │ │ ├── PasswordPolicyIT.groovy │ │ │ ├── PasswordResetAndAuthenticationManualIT.groovy │ │ │ ├── PasswordResetManualIT.groovy │ │ │ ├── PasswordStrengthPolicyIT.groovy │ │ │ └── Util.groovy │ │ │ └── impl │ │ │ ├── account │ │ │ └── AccountIT.groovy │ │ │ ├── api │ │ │ └── ApiKeyIT.groovy │ │ │ ├── application │ │ │ ├── ApplicationIT.groovy │ │ │ └── webconfig │ │ │ │ └── WebConfigurationIT.groovy │ │ │ ├── authc │ │ │ └── ApiAuthenticationIT.groovy │ │ │ ├── challenge │ │ │ ├── GoogleAuthenticatorChallengeIT.groovy │ │ │ ├── SmsChallengeIT.groovy │ │ │ └── SmsChallengeManualIT.groovy │ │ │ ├── client │ │ │ ├── DefaultClientIT.groovy │ │ │ ├── DefaultClientTest.groovy │ │ │ └── RequestCountingClient.groovy │ │ │ ├── factor │ │ │ ├── GoogleAuthenticatorFactorIT.groovy │ │ │ └── SmsFactorIT.groovy │ │ │ ├── group │ │ │ └── GroupIT.groovy │ │ │ ├── http │ │ │ ├── HttpRequestBuilderTest.groovy │ │ │ └── httpclient │ │ │ │ ├── HttpClientRequestExecutorIT.groovy │ │ │ │ └── HttpClientRequestExecutorTest.groovy │ │ │ ├── idsite │ │ │ └── IdSiteReplyIT.groovy │ │ │ ├── multifactor │ │ │ └── AbstractMultiFactorIT.groovy │ │ │ ├── organization │ │ │ ├── OrganizationAccountStoreMappingIT.groovy │ │ │ └── OrganizationIT.groovy │ │ │ ├── phone │ │ │ └── PhoneIT.groovy │ │ │ ├── resource │ │ │ ├── CollectionIterationIT.groovy │ │ │ └── ResourceExceptionIT.groovy │ │ │ ├── saml │ │ │ ├── AbstractSamlIT.groovy │ │ │ ├── RegisteredSamlServiceProviderIT.groovy │ │ │ ├── SAMLServiceProviderRegistrationIT.groovy │ │ │ └── SamlIdentityProviderIT.groovy │ │ │ ├── schema │ │ │ └── SchemaIT.groovy │ │ │ └── tenant │ │ │ └── TenantIT.groovy │ │ ├── java │ │ └── com │ │ │ └── stormpath │ │ │ └── sdk │ │ │ └── impl │ │ │ └── challenge │ │ │ └── TOTPService.java │ │ └── resources │ │ └── logback.xml ├── oauth │ ├── pom.xml │ └── src │ │ ├── main │ │ └── java │ │ │ └── com │ │ │ └── stormpath │ │ │ └── sdk │ │ │ └── impl │ │ │ └── oauth │ │ │ ├── authc │ │ │ ├── AccessTokenAuthenticationRequest.java │ │ │ ├── AccessTokenRequestAuthenticator.java │ │ │ ├── DefaultAccessTokenRequestAuthenticator.java │ │ │ ├── DefaultAccessTokenResult.java │ │ │ ├── DefaultOAuthApiRequestAuthenticator.java │ │ │ ├── DefaultOAuthAuthenticationResult.java │ │ │ ├── DefaultResourceRequestAuthenticator.java │ │ │ ├── OAuthAuthenticationRequestDispatcher.java │ │ │ ├── OAuthAuthenticationRequestFactory.java │ │ │ ├── ResourceAuthenticationRequest.java │ │ │ └── ResourceRequestAuthenticator.java │ │ │ ├── authz │ │ │ └── DefaultTokenResponse.java │ │ │ ├── http │ │ │ └── OAuthHttpServletRequest.java │ │ │ └── issuer │ │ │ └── JwtOAuthIssuer.java │ │ └── test │ │ └── groovy │ │ └── com │ │ └── stormpath │ │ └── sdk │ │ └── impl │ │ └── oauth │ │ ├── AccessTokenAuthenticationRequestTest.groovy │ │ └── authz │ │ └── DefaultTokenResponseTest.groovy ├── pom.xml ├── servlet-plugin │ ├── pom.xml │ └── src │ │ └── main │ │ └── resources │ │ └── META-INF │ │ └── web-fragment.xml ├── servlet │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── stormpath │ │ │ │ └── sdk │ │ │ │ ├── convert │ │ │ │ ├── Conversion.java │ │ │ │ ├── ConversionStrategyName.java │ │ │ │ ├── Conversions.java │ │ │ │ ├── ElementsConversion.java │ │ │ │ ├── MapToJwtConverter.java │ │ │ │ └── ResourceConverter.java │ │ │ │ └── servlet │ │ │ │ ├── account │ │ │ │ ├── AccountResolver.java │ │ │ │ ├── AccountStringResolver.java │ │ │ │ ├── DefaultAccountResolver.java │ │ │ │ └── event │ │ │ │ │ ├── AccountRequestEvent.java │ │ │ │ │ ├── RegisteredAccountRequestEvent.java │ │ │ │ │ ├── VerifiedAccountRequestEvent.java │ │ │ │ │ └── impl │ │ │ │ │ ├── AbstractAccountRequestEvent.java │ │ │ │ │ ├── DefaultRegisteredAccountRequestEvent.java │ │ │ │ │ └── DefaultVerifiedAccountRequestEvent.java │ │ │ │ ├── api │ │ │ │ ├── ServletApiRequestAuthenticator.java │ │ │ │ └── impl │ │ │ │ │ └── DefaultServletApiRequestAuthenticator.java │ │ │ │ ├── application │ │ │ │ ├── ApplicationLoader.java │ │ │ │ ├── ApplicationResolver.java │ │ │ │ ├── DefaultApplicationLoaderListener.java │ │ │ │ ├── DefaultApplicationResolver.java │ │ │ │ └── okta │ │ │ │ │ └── OktaJwtSigningKeyResolver.java │ │ │ │ ├── authc │ │ │ │ ├── AuthenticationRequestEvent.java │ │ │ │ ├── FailedAuthenticationRequestEvent.java │ │ │ │ ├── LogoutRequestEvent.java │ │ │ │ ├── SuccessfulAuthenticationRequestEvent.java │ │ │ │ └── impl │ │ │ │ │ ├── AbstractAuthenticationRequestEvent.java │ │ │ │ │ ├── DefaultFailedAuthenticationRequestEvent.java │ │ │ │ │ ├── DefaultLogoutRequestEvent.java │ │ │ │ │ ├── DefaultSuccessfulAuthenticationRequestEvent.java │ │ │ │ │ └── TransientAuthenticationResult.java │ │ │ │ ├── authz │ │ │ │ └── RequestAuthorizer.java │ │ │ │ ├── cache │ │ │ │ ├── CacheManagerFactory.java │ │ │ │ ├── PropertiesCacheManagerFactory.java │ │ │ │ └── config │ │ │ │ │ └── DefaultCacheManagerFactory.java │ │ │ │ ├── client │ │ │ │ ├── ClientLoader.java │ │ │ │ ├── ClientResolver.java │ │ │ │ ├── DefaultClientLoaderListener.java │ │ │ │ ├── DefaultClientResolver.java │ │ │ │ ├── DefaultServletContextClientFactory.java │ │ │ │ └── ServletContextClientFactory.java │ │ │ │ ├── config │ │ │ │ ├── Config.java │ │ │ │ ├── ConfigFactory.java │ │ │ │ ├── ConfigLoader.java │ │ │ │ ├── ConfigResolver.java │ │ │ │ ├── ConfigSingletonFactory.java │ │ │ │ ├── CookieConfig.java │ │ │ │ ├── CookieProperties.java │ │ │ │ ├── DefaultConfigLoaderListener.java │ │ │ │ ├── Factory.java │ │ │ │ ├── ImplementationClassResolver.java │ │ │ │ ├── IsRequestSecureResolver.java │ │ │ │ ├── RegisterEnabledPredicate.java │ │ │ │ ├── RegisterEnabledResolver.java │ │ │ │ ├── SecureForwardedProtoAwareResolver.java │ │ │ │ ├── SecureResolverFactory.java │ │ │ │ ├── UriCleaner.java │ │ │ │ ├── filter │ │ │ │ │ ├── AbstractIDSiteFilterFactory.java │ │ │ │ │ ├── AccessControlFilterFactory.java │ │ │ │ │ ├── AccessTokenFilterFactory.java │ │ │ │ │ ├── AccountAuthorizationFilterFactory.java │ │ │ │ │ ├── AccountResolverFilterFactory.java │ │ │ │ │ ├── AuthenticationFilterFactory.java │ │ │ │ │ ├── CallbackControllerFilterFactory.java │ │ │ │ │ ├── ChangePasswordFilterFactory.java │ │ │ │ │ ├── ControllerFilterFactory.java │ │ │ │ │ ├── CorsFilterFactory.java │ │ │ │ │ ├── DefaultFilterChainManagerConfigurer.java │ │ │ │ │ ├── FacebookCallbackFilterFactory.java │ │ │ │ │ ├── FilterChainManagerFactory.java │ │ │ │ │ ├── FilterChainResolverFactory.java │ │ │ │ │ ├── FilterFactory.java │ │ │ │ │ ├── ForgotPasswordFilterFactory.java │ │ │ │ │ ├── FormControllerFilterFactory.java │ │ │ │ │ ├── GenericOAuth2CallbackFilterFactory.java │ │ │ │ │ ├── GithubCallbackFilterFactory.java │ │ │ │ │ ├── GoogleCallbackFilterFactory.java │ │ │ │ │ ├── IDSiteForgotFilterFactory.java │ │ │ │ │ ├── IDSiteLoginFilterFactory.java │ │ │ │ │ ├── IDSiteRegisterFilterFactory.java │ │ │ │ │ ├── IDSiteResultFilterFactory.java │ │ │ │ │ ├── IdSiteLogoutFilterFactory.java │ │ │ │ │ ├── LinkedInCallbackFilterFactory.java │ │ │ │ │ ├── LoginFilterFactory.java │ │ │ │ │ ├── LogoutFilterFactory.java │ │ │ │ │ ├── MeFilterFactory.java │ │ │ │ │ ├── OktaOIDCCallbackFilterFactory.java │ │ │ │ │ ├── RegisterFilterFactory.java │ │ │ │ │ ├── RevokeTokenFilterFactory.java │ │ │ │ │ ├── SamlFilterFactory.java │ │ │ │ │ ├── SamlResultFilterFactory.java │ │ │ │ │ ├── SelfConfiguredStormpathFilter.java │ │ │ │ │ ├── SocialCallbackControllerFilterFactory.java │ │ │ │ │ ├── StaticResourceFilterFactory.java │ │ │ │ │ ├── TwitterCallbackFilterFactory.java │ │ │ │ │ └── VerifyFilterFactory.java │ │ │ │ └── impl │ │ │ │ │ ├── AbstractCookieConfig.java │ │ │ │ │ ├── AccessTokenCookieConfig.java │ │ │ │ │ ├── ConfigReader.java │ │ │ │ │ ├── DefaultConfig.java │ │ │ │ │ ├── DefaultConfigFactory.java │ │ │ │ │ ├── DefaultConfigResolver.java │ │ │ │ │ ├── DefaultUriCleaner.java │ │ │ │ │ ├── EvaluationModel.java │ │ │ │ │ ├── ExpressionConfigReader.java │ │ │ │ │ └── RefreshTokenCookieConfig.java │ │ │ │ ├── csrf │ │ │ │ ├── CsrfTokenManager.java │ │ │ │ ├── DefaultCsrfTokenManager.java │ │ │ │ ├── DisabledCsrfTokenManager.java │ │ │ │ └── config │ │ │ │ │ └── CsrfTokenManagerFactory.java │ │ │ │ ├── event │ │ │ │ ├── RequestEvent.java │ │ │ │ ├── RequestEventListener.java │ │ │ │ ├── RequestEventListenerAdapter.java │ │ │ │ ├── TokenRevocationRequestEventListener.java │ │ │ │ └── impl │ │ │ │ │ ├── AbstractRequestEvent.java │ │ │ │ │ ├── EventPublisherFactory.java │ │ │ │ │ ├── Publisher.java │ │ │ │ │ └── RequestEventPublisher.java │ │ │ │ ├── filter │ │ │ │ ├── AccessControlFilter.java │ │ │ │ ├── AnonymousFilter.java │ │ │ │ ├── AuthenticationFilter.java │ │ │ │ ├── ChangePasswordConfig.java │ │ │ │ ├── ChangePasswordServletControllerConfig.java │ │ │ │ ├── ContentNegotiationResolver.java │ │ │ │ ├── ControllerConfig.java │ │ │ │ ├── DefaultContentNegotiationResolver.java │ │ │ │ ├── DefaultFilter.java │ │ │ │ ├── DefaultFilterBuilder.java │ │ │ │ ├── DefaultFilterChainManager.java │ │ │ │ ├── DefaultFilterChainResolver.java │ │ │ │ ├── DefaultFilterConfig.java │ │ │ │ ├── DefaultLoginPageRedirector.java │ │ │ │ ├── DefaultServerUriResolver.java │ │ │ │ ├── DefaultUnauthenticatedHandler.java │ │ │ │ ├── DefaultUnauthorizedHandler.java │ │ │ │ ├── DefaultUsernamePasswordRequestFactory.java │ │ │ │ ├── DefaultWrappedServletRequestFactory.java │ │ │ │ ├── FilterBuilder.java │ │ │ │ ├── FilterChainManager.java │ │ │ │ ├── FilterChainResolver.java │ │ │ │ ├── Filters.java │ │ │ │ ├── HttpFilter.java │ │ │ │ ├── LoginPageRedirector.java │ │ │ │ ├── MeFilter.java │ │ │ │ ├── PathMatchingFilterChainResolver.java │ │ │ │ ├── PrioritizedFilterChainResolver.java │ │ │ │ ├── ProxiedFilterChain.java │ │ │ │ ├── ServerUriResolver.java │ │ │ │ ├── ServletControllerConfig.java │ │ │ │ ├── StaticResourceFilter.java │ │ │ │ ├── StormpathFilter.java │ │ │ │ ├── UnauthenticatedHandler.java │ │ │ │ ├── UnauthorizedFilter.java │ │ │ │ ├── UnauthorizedHandler.java │ │ │ │ ├── UsernamePasswordRequestFactory.java │ │ │ │ ├── WrappedServletRequestFactory.java │ │ │ │ ├── account │ │ │ │ │ ├── AccountAuthorizationFilter.java │ │ │ │ │ ├── AccountResolverFilter.java │ │ │ │ │ ├── AuthenticationJwtFactory.java │ │ │ │ │ ├── AuthenticationResultSaver.java │ │ │ │ │ ├── AuthorizationHeaderAccountResolver.java │ │ │ │ │ ├── CookieAccountResolver.java │ │ │ │ │ ├── CookieAuthenticationResultSaver.java │ │ │ │ │ ├── DefaultJwtAccountResolver.java │ │ │ │ │ ├── DefaultJwtSigningKeyResolver.java │ │ │ │ │ ├── HttpImmutableAccount.java │ │ │ │ │ ├── ImmutableAccount.java │ │ │ │ │ ├── InsecureCookieException.java │ │ │ │ │ ├── JwtAccountResolver.java │ │ │ │ │ ├── JwtSigningKeyResolver.java │ │ │ │ │ ├── OktaJwtAccountResolver.java │ │ │ │ │ └── config │ │ │ │ │ │ ├── AuthenticationResultSaverFactory.java │ │ │ │ │ │ ├── AuthorizationHeaderAccountResolverFactory.java │ │ │ │ │ │ ├── CookieAccountResolverFactory.java │ │ │ │ │ │ ├── CookieAuthenticationResultSaverFactory.java │ │ │ │ │ │ ├── JwtAccountResolverFactory.java │ │ │ │ │ │ ├── OktaJwtAccountResolverFactory.java │ │ │ │ │ │ ├── OktaJwtSigningKeyResolverFactory.java │ │ │ │ │ │ └── OktaSigningKeyResolverFactory.java │ │ │ │ ├── config │ │ │ │ │ ├── DefaultIDSiteOrganizationResolverFactory.java │ │ │ │ │ ├── StormpathServletRequestFactoryFactory.java │ │ │ │ │ ├── UnauthenticatedHandlerFactory.java │ │ │ │ │ ├── UnauthorizedHandlerFactory.java │ │ │ │ │ └── UsernamePasswordRequestFactoryFactory.java │ │ │ │ ├── cors │ │ │ │ │ └── CorsFilter.java │ │ │ │ ├── mvc │ │ │ │ │ └── ControllerFilter.java │ │ │ │ └── oauth │ │ │ │ │ ├── AccessTokenAuthenticationRequestFactory.java │ │ │ │ │ ├── AccessTokenResultFactory.java │ │ │ │ │ ├── DefaultAccessTokenAuthenticationRequestFactory.java │ │ │ │ │ ├── DefaultAccessTokenRequestAuthorizer.java │ │ │ │ │ ├── DefaultAccessTokenResultFactory.java │ │ │ │ │ ├── DefaultRefreshTokenAuthenticationRequestFactory.java │ │ │ │ │ ├── DefaultRefreshTokenResultFactory.java │ │ │ │ │ ├── OAuthErrorCode.java │ │ │ │ │ ├── OAuthException.java │ │ │ │ │ ├── OktaAccessTokenResultFactory.java │ │ │ │ │ ├── OktaRefreshTokenResultFactory.java │ │ │ │ │ ├── OriginAccessTokenRequestAuthorizer.java │ │ │ │ │ ├── PasswordGrantAccessTokenResult.java │ │ │ │ │ ├── RefreshTokenAuthenticationRequestFactory.java │ │ │ │ │ ├── RefreshTokenResultFactory.java │ │ │ │ │ └── config │ │ │ │ │ ├── AccessTokenAuthenticationRequestFactoryFactory.java │ │ │ │ │ ├── AccessTokenRequestAuthorizerFactory.java │ │ │ │ │ ├── AccessTokenResultFactoryFactory.java │ │ │ │ │ ├── OktaRefreshTokenResultFactoryFactory.java │ │ │ │ │ ├── OriginAccessTokenRequestAuthorizerFactory.java │ │ │ │ │ ├── RefreshTokenAuthenticationRequestFactoryFactory.java │ │ │ │ │ └── RefreshTokenResultFactoryFactory.java │ │ │ │ ├── form │ │ │ │ ├── DefaultField.java │ │ │ │ ├── DefaultForm.java │ │ │ │ ├── Field.java │ │ │ │ └── Form.java │ │ │ │ ├── http │ │ │ │ ├── AccountPrincipal.java │ │ │ │ ├── CookieResolver.java │ │ │ │ ├── CookieSaver.java │ │ │ │ ├── EmailPrincipal.java │ │ │ │ ├── GivenNamePrincipal.java │ │ │ │ ├── HrefPrincipal.java │ │ │ │ ├── InvalidMediaTypeException.java │ │ │ │ ├── InvalidMimeTypeException.java │ │ │ │ ├── MediaType.java │ │ │ │ ├── MimeType.java │ │ │ │ ├── MimeTypes.java │ │ │ │ ├── Resolver.java │ │ │ │ ├── Saver.java │ │ │ │ ├── StringPrincipal.java │ │ │ │ ├── UnresolvedMediaTypeException.java │ │ │ │ ├── UserAgent.java │ │ │ │ ├── UserAgents.java │ │ │ │ ├── UsernamePrincipal.java │ │ │ │ ├── authc │ │ │ │ │ ├── AbstractAuthenticationScheme.java │ │ │ │ │ ├── AccountStoreResolver.java │ │ │ │ │ ├── AuthorizationHeaderAuthenticator.java │ │ │ │ │ ├── AuthorizationHeaderParser.java │ │ │ │ │ ├── BasicAuthenticationScheme.java │ │ │ │ │ ├── BearerAuthenticationScheme.java │ │ │ │ │ ├── DefaultAuthorizationHeaderParser.java │ │ │ │ │ ├── DefaultHttpAuthenticationAttempt.java │ │ │ │ │ ├── DefaultHttpAuthenticationResult.java │ │ │ │ │ ├── DefaultHttpCredentials.java │ │ │ │ │ ├── DisabledAccountStoreResolver.java │ │ │ │ │ ├── HeaderAuthenticator.java │ │ │ │ │ ├── HttpAuthenticationAttempt.java │ │ │ │ │ ├── HttpAuthenticationException.java │ │ │ │ │ ├── HttpAuthenticationResult.java │ │ │ │ │ ├── HttpAuthenticationScheme.java │ │ │ │ │ ├── HttpAuthenticator.java │ │ │ │ │ ├── HttpCredentials.java │ │ │ │ │ └── config │ │ │ │ │ │ ├── BasicAuthenticationSchemeFactory.java │ │ │ │ │ │ ├── BearerAuthenticationSchemeFactory.java │ │ │ │ │ │ └── HttpAuthenticatorFactory.java │ │ │ │ └── impl │ │ │ │ │ ├── DefaultUserAgent.java │ │ │ │ │ ├── ResourceReference.java │ │ │ │ │ ├── StormpathHttpServletRequest.java │ │ │ │ │ └── StormpathHttpSession.java │ │ │ │ ├── i18n │ │ │ │ ├── CompositeLocaleResolver.java │ │ │ │ ├── DefaultLocaleResolver.java │ │ │ │ ├── DefaultMessageContext.java │ │ │ │ ├── DefaultMessageSource.java │ │ │ │ ├── JstlLocaleResolver.java │ │ │ │ ├── MessageContext.java │ │ │ │ ├── MessageParamTag.java │ │ │ │ ├── MessageSource.java │ │ │ │ └── MessageTag.java │ │ │ │ ├── idsite │ │ │ │ ├── DefaultIdSiteOrganizationContext.java │ │ │ │ ├── DefaultIdSiteOrganizationResolver.java │ │ │ │ └── IdSiteOrganizationContext.java │ │ │ │ ├── io │ │ │ │ ├── ServletContainerResourceFactory.java │ │ │ │ └── ServletContextResource.java │ │ │ │ ├── json │ │ │ │ ├── JsonFunction.java │ │ │ │ ├── ObjectMapperFactory.java │ │ │ │ └── ResourceJsonFunction.java │ │ │ │ ├── mail │ │ │ │ └── EmailServiceFactory.java │ │ │ │ ├── mvc │ │ │ │ ├── AbstractController.java │ │ │ │ ├── AbstractControllerConfig.java │ │ │ │ ├── AbstractErrorModelFactory.java │ │ │ │ ├── AbstractSocialCallbackController.java │ │ │ │ ├── AccessTokenController.java │ │ │ │ ├── AccountModelFactory.java │ │ │ │ ├── CallbackController.java │ │ │ │ ├── ChangePasswordController.java │ │ │ │ ├── ChangePasswordErrorModelFactory.java │ │ │ │ ├── ContentNegotiatingFieldValueResolver.java │ │ │ │ ├── ContentNegotiatingFieldValueResolverFactory.java │ │ │ │ ├── Controller.java │ │ │ │ ├── DefaultAccountModelFactory.java │ │ │ │ ├── DefaultErrorMapModelFactory.java │ │ │ │ ├── DefaultExpandsResolver.java │ │ │ │ ├── DefaultLoginFormStatusResolver.java │ │ │ │ ├── DefaultProviderAccountRequestFactory.java │ │ │ │ ├── DefaultViewModel.java │ │ │ │ ├── DefaultViewResolver.java │ │ │ │ ├── DisabledWebHandler.java │ │ │ │ ├── ErrorMapModelFactory.java │ │ │ │ ├── ErrorModel.java │ │ │ │ ├── ErrorModelFactory.java │ │ │ │ ├── ExpandsResolver.java │ │ │ │ ├── ForgotPasswordController.java │ │ │ │ ├── FormController.java │ │ │ │ ├── FormFieldsFactory.java │ │ │ │ ├── GithubAccessTokenResolver.java │ │ │ │ ├── IdSiteController.java │ │ │ │ ├── IdSiteLoginController.java │ │ │ │ ├── IdSiteLogoutController.java │ │ │ │ ├── IdSiteRegisterController.java │ │ │ │ ├── IdSiteResultController.java │ │ │ │ ├── InternalResourceView.java │ │ │ │ ├── InternalResourceViewResolver.java │ │ │ │ ├── JacksonFieldValueResolver.java │ │ │ │ ├── JacksonView.java │ │ │ │ ├── LoginController.java │ │ │ │ ├── LoginErrorModelFactory.java │ │ │ │ ├── LoginFormStatusResolver.java │ │ │ │ ├── LoginStatus.java │ │ │ │ ├── LogoutController.java │ │ │ │ ├── MeController.java │ │ │ │ ├── MismatchedPasswordException.java │ │ │ │ ├── OktaExternalAccountStoreModelFactory.java │ │ │ │ ├── ProviderAccountRequestFactory.java │ │ │ │ ├── RegisterController.java │ │ │ │ ├── RegisterErrorModelFactory.java │ │ │ │ ├── RequestFieldValueResolver.java │ │ │ │ ├── RequestParameterFieldValueResolver.java │ │ │ │ ├── ResourceMapFunction.java │ │ │ │ ├── RevokeTokenController.java │ │ │ │ ├── SamlController.java │ │ │ │ ├── SamlLogoutController.java │ │ │ │ ├── SamlResultController.java │ │ │ │ ├── ValidationException.java │ │ │ │ ├── VerifyController.java │ │ │ │ ├── VerifyErrorModelFactory.java │ │ │ │ ├── View.java │ │ │ │ ├── ViewModel.java │ │ │ │ ├── ViewResolver.java │ │ │ │ ├── WebHandler.java │ │ │ │ └── provider │ │ │ │ │ ├── AccountStoreModel.java │ │ │ │ │ ├── AccountStoreModelFactory.java │ │ │ │ │ ├── DefaultAccountStoreModel.java │ │ │ │ │ ├── DefaultOAuthProviderModel.java │ │ │ │ │ ├── DefaultPasswordStrengthModelFactory.java │ │ │ │ │ ├── DefaultProviderModel.java │ │ │ │ │ ├── ExternalAccountStoreModelFactory.java │ │ │ │ │ ├── FacebookCallbackController.java │ │ │ │ │ ├── GenericOAuth2ProviderCallbackController.java │ │ │ │ │ ├── GithubCallbackController.java │ │ │ │ │ ├── GoogleCallbackController.java │ │ │ │ │ ├── GoogleOAuthProviderModel.java │ │ │ │ │ ├── LinkedinCallbackController.java │ │ │ │ │ ├── OAuthProviderModel.java │ │ │ │ │ ├── OktaAccountStoreModel.java │ │ │ │ │ ├── OktaOAuthProviderModel.java │ │ │ │ │ ├── OktaOIDCCallbackController.java │ │ │ │ │ ├── PasswordStrengthModelFactory.java │ │ │ │ │ ├── ProviderModel.java │ │ │ │ │ └── TwitterCallbackController.java │ │ │ │ ├── oauth │ │ │ │ ├── AccessTokenValidationStrategy.java │ │ │ │ ├── OAuthTokenResolver.java │ │ │ │ ├── ServletOAuthRequestAuthenticator.java │ │ │ │ └── impl │ │ │ │ │ ├── AbstractOAuthTokenResolver.java │ │ │ │ │ ├── AccessTokenResolver.java │ │ │ │ │ ├── DefaultServletOAuthRequestAuthenticator.java │ │ │ │ │ ├── JwtTokenSigningKeyResolver.java │ │ │ │ │ └── RefreshTokenResolver.java │ │ │ │ ├── organization │ │ │ │ └── DefaultOrganizationNameKeyResolver.java │ │ │ │ ├── saml │ │ │ │ ├── DefaultSamlOrganizationContext.java │ │ │ │ ├── DefaultSamlOrganizationResolver.java │ │ │ │ └── SamlOrganizationContext.java │ │ │ │ └── util │ │ │ │ ├── AntPathMatcher.java │ │ │ │ ├── DefaultGrantTypeValidator.java │ │ │ │ ├── GrantTypeValidator.java │ │ │ │ ├── IsLocalhostResolver.java │ │ │ │ ├── PatternMatcher.java │ │ │ │ ├── RedirectUrlBuilder.java │ │ │ │ ├── RemoteAddrResolver.java │ │ │ │ ├── SecureRequiredExceptForLocalhostResolver.java │ │ │ │ ├── ServletContextInitializable.java │ │ │ │ ├── ServletUtils.java │ │ │ │ ├── Servlets.java │ │ │ │ └── SubdomainResolver.java │ │ └── resources │ │ │ ├── META-INF │ │ │ ├── resources │ │ │ │ ├── WEB-INF │ │ │ │ │ └── jsp │ │ │ │ │ │ └── stormpath │ │ │ │ │ │ ├── change-password.jsp │ │ │ │ │ │ ├── forgot-password.jsp │ │ │ │ │ │ ├── login.jsp │ │ │ │ │ │ ├── register.jsp │ │ │ │ │ │ ├── unauthorized.jsp │ │ │ │ │ │ └── verify.jsp │ │ │ │ └── assets │ │ │ │ │ ├── css │ │ │ │ │ ├── custom.stormpath.css │ │ │ │ │ └── stormpath.css │ │ │ │ │ └── js │ │ │ │ │ └── stormpath.js │ │ │ ├── stormpath.tld │ │ │ ├── stormpathtpl.tld │ │ │ └── tags │ │ │ │ └── page.tag │ │ │ └── com │ │ │ └── stormpath │ │ │ └── sdk │ │ │ └── servlet │ │ │ ├── config │ │ │ └── web.stormpath.properties │ │ │ └── i18n.properties │ │ └── test │ │ ├── groovy │ │ └── com │ │ │ └── stormpath │ │ │ └── sdk │ │ │ ├── convert │ │ │ ├── ConversionTest.groovy │ │ │ └── ResourceConverterTest.groovy │ │ │ └── servlet │ │ │ ├── ErrorCodesVersusi18nPropertiesTest.groovy │ │ │ ├── account │ │ │ └── AccountStringResolverTest.groovy │ │ │ ├── application │ │ │ └── DefaultApplicationLoaderListenerTest.groovy │ │ │ ├── cache │ │ │ └── PropertiesCacheManagerFactoryTest.groovy │ │ │ ├── client │ │ │ └── DefaultClientLoaderListenerTest.groovy │ │ │ ├── config │ │ │ ├── IsRequestSecureResolverTest.groovy │ │ │ ├── RegisterEnabledPredicateTest.groovy │ │ │ ├── RegisterEnabledResolverTest.groovy │ │ │ ├── SecureForwardedProtoAwareResolverTest.groovy │ │ │ ├── SpecConfigVersusWebPropertiesTest.groovy │ │ │ ├── filter │ │ │ │ └── SelfConfiguredStormpathFilterTest.groovy │ │ │ └── impl │ │ │ │ └── DefaultConfigFactoryTest.groovy │ │ │ ├── filter │ │ │ ├── account │ │ │ │ ├── AccountResolverFilterTest.groovy │ │ │ │ ├── CookieAuthenticationResultSaverHttpsWarningTest.groovy │ │ │ │ └── CookieAuthenticationResultSaverTest.groovy │ │ │ └── oauth │ │ │ │ ├── DefaultAccessOktaTokenRequestAuthorizerTest.groovy │ │ │ │ └── OriginAccessOktaTokenRequestAuthorizerTest.groovy │ │ │ ├── http │ │ │ ├── authc │ │ │ │ └── DefaultAuthorizationHeaderParserTest.groovy │ │ │ └── impl │ │ │ │ └── DefaultUserAgentTest.groovy │ │ │ ├── json │ │ │ ├── JsonFunctionTest.groovy │ │ │ └── ResourceJsonFunctionTest.groovy │ │ │ ├── mvc │ │ │ ├── AccessTokenControllerTest.groovy │ │ │ ├── ControllerTest.groovy │ │ │ ├── LoginControllerTest.groovy │ │ │ ├── MeControllerTest.groovy │ │ │ ├── RegisterControllerTest.groovy │ │ │ ├── VerifyControllerTest.groovy │ │ │ └── provider │ │ │ │ ├── DefaultAccountStoreModelTest.groovy │ │ │ │ ├── DefaultOAuthProviderModelTest.groovy │ │ │ │ └── ExternalAccountStoreModelFactoryTest.groovy │ │ │ ├── util │ │ │ └── SubdomainResolverTest.groovy │ │ │ └── utils │ │ │ ├── ConfigTestUtils.groovy │ │ │ ├── DefaultGrantTypeValidatorTest.groovy │ │ │ └── ServletsTest.groovy │ │ └── resources │ │ ├── com │ │ └── stormpath │ │ │ └── sdk │ │ │ └── servlet │ │ │ └── api-errors.properties │ │ ├── stormpath.json │ │ ├── stormpath.properties │ │ └── stormpath.yaml ├── spring │ ├── boot │ │ ├── pom.xml │ │ ├── stormpath-default-spring-boot-starter │ │ │ └── pom.xml │ │ ├── stormpath-spring-boot-starter │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── stormpath │ │ │ │ │ │ └── spring │ │ │ │ │ │ └── boot │ │ │ │ │ │ └── autoconfigure │ │ │ │ │ │ └── StormpathAutoConfiguration.java │ │ │ │ └── resources │ │ │ │ │ └── META-INF │ │ │ │ │ ├── additional-spring-configuration-metadata.json │ │ │ │ │ ├── spring.factories │ │ │ │ │ └── spring.provides │ │ │ │ └── test │ │ │ │ ├── groovy │ │ │ │ └── com │ │ │ │ │ └── stormpath │ │ │ │ │ └── spring │ │ │ │ │ └── boot │ │ │ │ │ ├── autoconfigure │ │ │ │ │ ├── BeanOverrideStormpathAutoConfigurationIT.groovy │ │ │ │ │ ├── StormpathAutoConfigurationIT.groovy │ │ │ │ │ └── StormpathAutoConfigurationVersusMetadata.groovy │ │ │ │ │ └── config │ │ │ │ │ └── SpringMetadataVersusCorePropertiesTest.groovy │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── stormpath │ │ │ │ │ └── spring │ │ │ │ │ └── boot │ │ │ │ │ └── autoconfigure │ │ │ │ │ ├── BeanOverrideStormpathAutoConfigurationTestApplication.java │ │ │ │ │ └── StormpathAutoConfigurationTestApplication.java │ │ │ │ └── resources │ │ │ │ └── logback.xml │ │ ├── stormpath-spring-security-spring-boot-starter │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── stormpath │ │ │ │ │ │ └── spring │ │ │ │ │ │ └── boot │ │ │ │ │ │ └── autoconfigure │ │ │ │ │ │ └── StormpathSpringSecurityAutoConfiguration.java │ │ │ │ └── resources │ │ │ │ │ └── META-INF │ │ │ │ │ ├── additional-spring-configuration-metadata.json │ │ │ │ │ ├── spring.factories │ │ │ │ │ └── spring.provides │ │ │ │ └── test │ │ │ │ ├── groovy │ │ │ │ └── com │ │ │ │ │ └── stormpath │ │ │ │ │ └── spring │ │ │ │ │ └── boot │ │ │ │ │ └── autoconfigure │ │ │ │ │ ├── BeanOverrideStormpathSpringSecurityAutoConfigurationIT.groovy │ │ │ │ │ └── StormpathSpringSecurityAutoConfigurationIT.groovy │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── stormpath │ │ │ │ │ └── spring │ │ │ │ │ └── boot │ │ │ │ │ └── autoconfigure │ │ │ │ │ ├── BeanOverrideSpringSecurityBootTestApplication.java │ │ │ │ │ ├── CustomTestGroupGrantedAuthorityResolver.java │ │ │ │ │ └── SpringSecurityBootTestApplication.java │ │ │ │ └── resources │ │ │ │ └── logback.xml │ │ ├── stormpath-spring-security-webmvc-spring-boot-starter │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── stormpath │ │ │ │ │ │ └── spring │ │ │ │ │ │ └── boot │ │ │ │ │ │ └── autoconfigure │ │ │ │ │ │ ├── StormpathMethodSecurityAutoConfiguration.java │ │ │ │ │ │ ├── StormpathWebSecurityAutoConfiguration.java │ │ │ │ │ │ └── StormpathWebSecurityDisabledAutoConfiguration.java │ │ │ │ └── resources │ │ │ │ │ └── META-INF │ │ │ │ │ ├── spring.factories │ │ │ │ │ └── spring.provides │ │ │ │ └── test │ │ │ │ ├── groovy │ │ │ │ └── com │ │ │ │ │ └── stormpath │ │ │ │ │ └── spring │ │ │ │ │ └── boot │ │ │ │ │ └── autoconfigure │ │ │ │ │ ├── BeanOverrideStormpathWebSecurityAutoConfigurationIT.groovy │ │ │ │ │ ├── CustomTestGroupPermissionResolver.java │ │ │ │ │ ├── DisabledStormpathAutoConfigurationIT.groovy │ │ │ │ │ └── StormpathWebSecurityAutoConfigurationIT.groovy │ │ │ │ ├── java │ │ │ │ └── autoconfigure │ │ │ │ │ ├── BeanOverrideStormpathWebSecurityAutoConfigurationTestApplication.java │ │ │ │ │ ├── DisabledSpringSecurityDisablesStormpathSSAutoConfigurationTestApplication.java │ │ │ │ │ ├── DisabledStormpathAutoConfigurationTestApplication.java │ │ │ │ │ └── StormpathWebSecurityAutoConfigurationTestApplication.java │ │ │ │ └── resources │ │ │ │ ├── application.properties │ │ │ │ ├── disabledstormpath.application.properties │ │ │ │ └── logback.xml │ │ ├── stormpath-thymeleaf-spring-boot-starter │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── resources │ │ │ │ ├── spring.provides │ │ │ │ ├── static │ │ │ │ └── index.html │ │ │ │ └── templates │ │ │ │ └── stormpath │ │ │ │ ├── change-password.html │ │ │ │ ├── forgot-password.html │ │ │ │ ├── head.html │ │ │ │ ├── login.html │ │ │ │ ├── providers │ │ │ │ └── google.html │ │ │ │ ├── register.html │ │ │ │ └── verify.html │ │ └── stormpath-webmvc-spring-boot-starter │ │ │ ├── pom.xml │ │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── stormpath │ │ │ │ │ └── spring │ │ │ │ │ └── boot │ │ │ │ │ └── autoconfigure │ │ │ │ │ └── StormpathWebMvcAutoConfiguration.java │ │ │ └── resources │ │ │ │ └── META-INF │ │ │ │ ├── additional-spring-configuration-metadata.json │ │ │ │ ├── spring.factories │ │ │ │ └── spring.provides │ │ │ └── test │ │ │ ├── groovy │ │ │ └── com │ │ │ │ └── stormpath │ │ │ │ └── spring │ │ │ │ └── boot │ │ │ │ ├── autoconfigure │ │ │ │ ├── SpecifiedMessageSourceIT.groovy │ │ │ │ ├── StormpathWebAutoConfigurationVersusMetadata.groovy │ │ │ │ ├── StormpathWebSecurityAutoConfigurationIT.groovy │ │ │ │ └── UnspecifiedMessageSourceIT.groovy │ │ │ │ └── config │ │ │ │ └── SpringMetadataVersusWebPropertiesTest.groovy │ │ │ ├── java │ │ │ └── autoconfigure │ │ │ │ └── StormpathWebSecurityAutoConfigurationTestApplication.java │ │ │ └── resources │ │ │ ├── it.application.properties │ │ │ ├── test.application.properties │ │ │ └── testMessages.properties │ ├── cloud │ │ ├── pom.xml │ │ └── stormpath-zuul-spring-cloud-starter │ │ │ ├── pom.xml │ │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── stormpath │ │ │ │ │ └── spring │ │ │ │ │ └── cloud │ │ │ │ │ └── zuul │ │ │ │ │ ├── autoconfigure │ │ │ │ │ ├── ClientApplicationJwkFactory.java │ │ │ │ │ ├── ConfigJwkFactory.java │ │ │ │ │ └── StormpathZuulAutoConfiguration.java │ │ │ │ │ └── config │ │ │ │ │ ├── DefaultJwkResult.java │ │ │ │ │ ├── DisabledResourceKeyResolver.java │ │ │ │ │ ├── JwkConfig.java │ │ │ │ │ ├── JwkResult.java │ │ │ │ │ ├── JwtConfig.java │ │ │ │ │ ├── PemResourceKeyResolver.java │ │ │ │ │ ├── StormpathZuulAccountHeaderConfig.java │ │ │ │ │ └── ValueClaimConfig.java │ │ │ └── resources │ │ │ │ └── META-INF │ │ │ │ ├── additional-spring-configuration-metadata.json │ │ │ │ ├── spring.factories │ │ │ │ └── spring.provides │ │ │ └── test │ │ │ ├── groovy │ │ │ └── com │ │ │ │ └── stormpath │ │ │ │ └── spring │ │ │ │ └── cloud │ │ │ │ └── zuul │ │ │ │ └── autoconfigure │ │ │ │ ├── ClientApplicationJwkFactoryTest.groovy │ │ │ │ └── ConfigJwkFactoryTest.groovy │ │ │ └── resources │ │ │ ├── README.md │ │ │ ├── rsatest.priv.pem │ │ │ ├── rsatest.pub.pem │ │ │ ├── secp384r1.priv.pem │ │ │ └── secp384r1.pub.pem │ ├── pom.xml │ ├── stormpath-spring-security-webmvc │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── stormpath │ │ │ │ └── spring │ │ │ │ ├── config │ │ │ │ ├── AbstractStormpathSecurityConfigurerAdapter.java │ │ │ │ ├── AbstractStormpathWebSecurityConfiguration.java │ │ │ │ ├── AbstractStormpathWebSecurityDisabledConfiguration.java │ │ │ │ ├── DisabledStormpathSecurityConfigurerAdapter.java │ │ │ │ ├── EnableStormpathWebSecurity.java │ │ │ │ ├── OktaLoginSuccessHandler.java │ │ │ │ ├── SpringSecurityLoginErrorModelFactory.java │ │ │ │ ├── StormpathAuthenticationEntryPoint.java │ │ │ │ ├── StormpathAuthenticationFailureHandler.java │ │ │ │ ├── StormpathLoginSuccessHandler.java │ │ │ │ ├── StormpathLogoutHandler.java │ │ │ │ ├── StormpathSecurityConfigurerAdapter.java │ │ │ │ ├── StormpathWebSecurityConfiguration.java │ │ │ │ ├── StormpathWebSecurityConfigurer.java │ │ │ │ └── StormpathWebSecurityDisabledConfiguration.java │ │ │ │ ├── csrf │ │ │ │ └── SpringSecurityCsrfTokenManager.java │ │ │ │ ├── errors │ │ │ │ └── SpringSecurityExceptionTranslator.java │ │ │ │ ├── filter │ │ │ │ ├── ContentNegotiationSpringSecurityAuthenticationFilter.java │ │ │ │ ├── StormpathSecurityContextPersistenceFilter.java │ │ │ │ └── StormpathWrapperFilter.java │ │ │ │ └── security │ │ │ │ └── provider │ │ │ │ ├── AbstractSpringSecurityProviderResultListener.java │ │ │ │ ├── SocialCallbackSpringSecurityProcessingFilter.java │ │ │ │ ├── SpringSecurityIdSiteResultListener.java │ │ │ │ └── SpringSecuritySamlResultListener.java │ │ │ └── test │ │ │ ├── groovy │ │ │ └── com │ │ │ │ └── stormpath │ │ │ │ └── spring │ │ │ │ ├── config │ │ │ │ ├── AbstractClientIT.groovy │ │ │ │ ├── ChangePasswordIT.groovy │ │ │ │ ├── ChangePasswordTestAppConfig.groovy │ │ │ │ ├── CorsFilterIT.groovy │ │ │ │ ├── CorsTestAppConfig.groovy │ │ │ │ ├── CustomRequestEventListenerConfig.groovy │ │ │ │ ├── CustomRequestEventListenerIT.groovy │ │ │ │ ├── DisabledStormpathConfigurationIT.groovy │ │ │ │ ├── DisabledStormpathSpringSecurityWebMvcConfigurationIT.groovy │ │ │ │ ├── DisabledStormpathSpringSecurityWebMvcTestAppConfig.java │ │ │ │ ├── DisabledStormpathTestAppConfig.java │ │ │ │ ├── LoginAndLogoutHandlersConfig.groovy │ │ │ │ ├── LoginAndLogoutHandlersIT.groovy │ │ │ │ ├── MinimalStormpathSpringSecurityWebMvcConfigurationIT.groovy │ │ │ │ └── StormpathAuthenticationFailureHandlerTest.groovy │ │ │ │ └── model │ │ │ │ └── GuerillaEmail.groovy │ │ │ ├── java │ │ │ └── com │ │ │ │ └── stormpath │ │ │ │ └── spring │ │ │ │ └── config │ │ │ │ ├── MinimalStormpathSpringSecurityWebMvcTestAppConfig.java │ │ │ │ ├── SecurityMockMvcLoginRequestBuilder.java │ │ │ │ ├── StormpathMockMvcConfigurer.java │ │ │ │ └── StormpathMockMvcConfigurers.java │ │ │ └── resources │ │ │ ├── com │ │ │ └── stormpath │ │ │ │ └── spring │ │ │ │ └── config │ │ │ │ ├── PropertyOverrideAppConfig.properties │ │ │ │ ├── applicationChangePassword.properties │ │ │ │ ├── applicationCors.properties │ │ │ │ ├── disabledspringsecurity.application.properties │ │ │ │ ├── disabledstormpath.application.properties │ │ │ │ └── loginAndLogoutHandlers.properties │ │ │ └── logback.xml │ ├── stormpath-spring-security │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── stormpath │ │ │ │ └── spring │ │ │ │ ├── config │ │ │ │ ├── AbstractStormpathMethodSecurityConfiguration.java │ │ │ │ ├── AbstractStormpathSpringSecurityConfiguration.java │ │ │ │ ├── EnableStormpathSecurity.java │ │ │ │ ├── StormpathMethodSecurityConfiguration.java │ │ │ │ ├── StormpathSpringSecurityConfiguration.java │ │ │ │ ├── StormpathSpringSecurityDisabled.java │ │ │ │ └── StormpathSpringSecurityEnabled.java │ │ │ │ └── security │ │ │ │ ├── authz │ │ │ │ ├── CustomDataPermissionsEditor.java │ │ │ │ ├── PermissionsEditor.java │ │ │ │ └── permission │ │ │ │ │ ├── DomainPermission.java │ │ │ │ │ ├── Permission.java │ │ │ │ │ ├── WildcardPermission.java │ │ │ │ │ └── evaluator │ │ │ │ │ └── WildcardPermissionEvaluator.java │ │ │ │ ├── provider │ │ │ │ ├── AccountCustomDataPermissionResolver.java │ │ │ │ ├── AccountGrantedAuthorityResolver.java │ │ │ │ ├── AccountPermissionResolver.java │ │ │ │ ├── AuthenticationTokenFactory.java │ │ │ │ ├── CustomDataPermissionResolver.java │ │ │ │ ├── DefaultGroupGrantedAuthorityResolver.java │ │ │ │ ├── EmptyAccountGrantedAuthorityResolver.java │ │ │ │ ├── GroupCustomDataPermissionResolver.java │ │ │ │ ├── GroupGrantedAuthorityResolver.java │ │ │ │ ├── GroupPermissionResolver.java │ │ │ │ ├── InvalidPermissionStringException.java │ │ │ │ ├── OktaAuthenticationProvider.java │ │ │ │ ├── PermissionResolver.java │ │ │ │ ├── StormpathAuthenticationProvider.java │ │ │ │ ├── UsernamePasswordAuthenticationTokenFactory.java │ │ │ │ └── WildcardPermissionResolver.java │ │ │ │ └── token │ │ │ │ ├── IdSiteAuthenticationToken.java │ │ │ │ ├── JwtProviderAuthenticationToken.java │ │ │ │ ├── ProviderAuthenticationToken.java │ │ │ │ └── SamlAuthenticationToken.java │ │ │ └── test │ │ │ ├── groovy │ │ │ └── com │ │ │ │ └── stormpath │ │ │ │ └── spring │ │ │ │ ├── config │ │ │ │ └── MinimalStormpathSpringSecurityConfigurationIT.groovy │ │ │ │ └── security │ │ │ │ ├── authz │ │ │ │ ├── CustomDataPermissionsEditorTest.groovy │ │ │ │ ├── MockCustomData.groovy │ │ │ │ └── permission │ │ │ │ │ ├── DomainPermissionTest.groovy │ │ │ │ │ ├── WildcardPermissionTest.groovy │ │ │ │ │ └── evaluator │ │ │ │ │ └── WildcardPermissionEvaluatorTest.groovy │ │ │ │ └── provider │ │ │ │ ├── DefaultGroupGrantedAuthorityResolverTest.groovy │ │ │ │ ├── SimpleError.groovy │ │ │ │ ├── StormpathAuthenticationProviderTest.groovy │ │ │ │ └── UsernamePasswordAuthenticationTokenFactoryTest.groovy │ │ │ ├── java │ │ │ └── com │ │ │ │ └── stormpath │ │ │ │ └── spring │ │ │ │ └── config │ │ │ │ └── MinimalSpringSecurityTestAppConfig.java │ │ │ └── resources │ │ │ └── logback.xml │ ├── stormpath-spring-webmvc │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── stormpath │ │ │ │ └── spring │ │ │ │ ├── config │ │ │ │ ├── AbstractStormpathWebMvcConfiguration.java │ │ │ │ ├── AccessTokenCookieProperties.java │ │ │ │ ├── EnableStormpathWebMvc.java │ │ │ │ ├── RefreshTokenCookieProperties.java │ │ │ │ ├── StormpathMessageSourceConfiguration.java │ │ │ │ ├── StormpathWebEnabled.java │ │ │ │ └── StormpathWebMvcConfiguration.java │ │ │ │ ├── errors │ │ │ │ ├── CustomParameterizedException.java │ │ │ │ ├── Error.java │ │ │ │ ├── ErrorConstants.java │ │ │ │ ├── ExceptionTranslator.java │ │ │ │ ├── FieldError.java │ │ │ │ └── ParameterizedError.java │ │ │ │ ├── mvc │ │ │ │ ├── AbstractSpringControllerConfig.java │ │ │ │ ├── AccessTokenControllerConfig.java │ │ │ │ ├── ChangePasswordControllerConfig.java │ │ │ │ ├── DisabledHandlerMapping.java │ │ │ │ ├── ForgotPasswordControllerConfig.java │ │ │ │ ├── LoginControllerConfig.java │ │ │ │ ├── LogoutControllerConfig.java │ │ │ │ ├── MessageContextRegistrar.java │ │ │ │ ├── RegisterControllerConfig.java │ │ │ │ ├── RevokeTokenControllerConfig.java │ │ │ │ ├── SamlControllerConfig.java │ │ │ │ ├── SingleNamedViewResolver.java │ │ │ │ ├── SpringMessageSource.java │ │ │ │ ├── SpringView.java │ │ │ │ ├── TemplateLayoutInterceptor.java │ │ │ │ └── VerifyControllerConfig.java │ │ │ │ └── util │ │ │ │ └── SpringPatternMatcher.java │ │ │ └── test │ │ │ ├── groovy │ │ │ └── com │ │ │ │ └── stormpath │ │ │ │ └── spring │ │ │ │ └── config │ │ │ │ ├── ExistingMessageSourceIT.groovy │ │ │ │ └── MinimalStormpathWebMvcConfigurationIT.groovy │ │ │ ├── java │ │ │ └── com │ │ │ │ └── stormpath │ │ │ │ └── spring │ │ │ │ └── config │ │ │ │ ├── ExplicitMessageSourceAppConfig.java │ │ │ │ └── MinimalWebMvcTestAppConfig.java │ │ │ └── resources │ │ │ ├── logback.xml │ │ │ └── testMessages.properties │ └── stormpath-spring │ │ ├── pom.xml │ │ └── src │ │ ├── main │ │ └── java │ │ │ └── com │ │ │ └── stormpath │ │ │ └── spring │ │ │ ├── cache │ │ │ ├── SpringCache.java │ │ │ └── SpringCacheManager.java │ │ │ ├── config │ │ │ ├── AbstractStormpathConfiguration.java │ │ │ ├── ClientApiKeyFactoryBean.java │ │ │ ├── ClientFactoryBean.java │ │ │ ├── ClientProxyFactoryBean.java │ │ │ ├── EnableStormpath.java │ │ │ ├── StormpathConfiguration.java │ │ │ └── StormpathEnabled.java │ │ │ └── context │ │ │ ├── CompositeMessageSource.java │ │ │ └── MessageSourceDefinitionPostProcessor.java │ │ └── test │ │ ├── groovy │ │ └── com │ │ │ └── stormpath │ │ │ └── spring │ │ │ ├── cache │ │ │ ├── SpringCacheManagerTest.groovy │ │ │ └── SpringCacheTest.groovy │ │ │ └── config │ │ │ ├── BeanOverrideStormpathConfigurationIT.groovy │ │ │ ├── ClientFactoryBeanTest.groovy │ │ │ ├── MinimalStormpathConfigurationIT.groovy │ │ │ └── PropertyOverrideStormpathConfigurationIT.groovy │ │ ├── java │ │ └── com │ │ │ └── stormpath │ │ │ └── spring │ │ │ └── config │ │ │ ├── BeanOverrideTestAppConfig.java │ │ │ ├── MinimalTestAppConfig.java │ │ │ ├── PropertyOverrideTestAppConfig.java │ │ │ └── TwoAppTenantStormpathTestConfiguration.java │ │ └── resources │ │ ├── com │ │ └── stormpath │ │ │ └── spring │ │ │ └── config │ │ │ └── PropertyOverrideAppConfig.properties │ │ └── logback.xml └── zuul │ ├── pom.xml │ └── src │ ├── main │ └── java │ │ └── com │ │ └── stormpath │ │ └── zuul │ │ ├── account │ │ └── ForwardedAccountHeaderFilter.java │ │ └── filter │ │ └── AppliedRequestHeaderFilter.java │ └── test │ └── groovy │ └── com │ └── stormpath │ └── zuul │ ├── account │ └── ForwardedAccountHeaderFilterTest.groovy │ └── filter │ └── AppliedRequestHeaderFilterTest.groovy ├── impl ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── stormpath │ │ │ └── sdk │ │ │ └── impl │ │ │ ├── account │ │ │ ├── DefaultAccount.java │ │ │ ├── DefaultAccountCriteria.java │ │ │ ├── DefaultAccountLink.java │ │ │ ├── DefaultAccountLinkCriteria.java │ │ │ ├── DefaultAccountLinkList.java │ │ │ ├── DefaultAccountLinkOptions.java │ │ │ ├── DefaultAccountLinkingPolicy.java │ │ │ ├── DefaultAccountList.java │ │ │ ├── DefaultAccountOptions.java │ │ │ ├── DefaultAccountResult.java │ │ │ ├── DefaultAuthenticationResult.java │ │ │ ├── DefaultCreateAccountRequest.java │ │ │ ├── DefaultCreateAccountRequestBuilder.java │ │ │ ├── DefaultEmailVerificationToken.java │ │ │ ├── DefaultLogoutResult.java │ │ │ ├── DefaultPasswordResetToken.java │ │ │ ├── DefaultRegistrationResult.java │ │ │ ├── DefaultVerificationEmailRequest.java │ │ │ └── DefaultVerificationEmailRequestBuilder.java │ │ │ ├── api │ │ │ ├── ApiKeyParameter.java │ │ │ ├── ApiKeyResolver.java │ │ │ ├── ClientApiKey.java │ │ │ ├── ClientApiKeyBuilder.java │ │ │ ├── DefaultApiKey.java │ │ │ ├── DefaultApiKeyCriteria.java │ │ │ ├── DefaultApiKeyList.java │ │ │ ├── DefaultApiKeyOptions.java │ │ │ └── DefaultApiKeyResolver.java │ │ │ ├── application │ │ │ ├── AbstractAccountStoreMapping.java │ │ │ ├── ConfigurableProperty.java │ │ │ ├── CreateApplicationAndDirectoryRequest.java │ │ │ ├── CreateApplicationRequestVisitor.java │ │ │ ├── DefaultApplication.java │ │ │ ├── DefaultApplicationAccountStoreMapping.java │ │ │ ├── DefaultApplicationAccountStoreMappingCriteria.java │ │ │ ├── DefaultApplicationAccountStoreMappingList.java │ │ │ ├── DefaultApplicationAccountStoreMappingOptions.java │ │ │ ├── DefaultApplicationCriteria.java │ │ │ ├── DefaultApplicationList.java │ │ │ ├── DefaultApplicationOptions.java │ │ │ ├── DefaultCreateApplicationRequest.java │ │ │ ├── DefaultCreateApplicationRequestBuilder.java │ │ │ ├── OktaApplication.java │ │ │ ├── OktaTenant.java │ │ │ ├── PasswordResetTokenList.java │ │ │ └── webconfig │ │ │ │ ├── DefaultApplicationWebConfig.java │ │ │ │ ├── DefaultMeConfig.java │ │ │ │ ├── DefaultMeExpansionConfig.java │ │ │ │ ├── DefaultOauth2Config.java │ │ │ │ └── DefaultWebFeatureConfig.java │ │ │ ├── authc │ │ │ ├── AbstractLoginAttempt.java │ │ │ ├── ApiAuthenticationRequestFactory.java │ │ │ ├── AuthenticationRequestDispatcher.java │ │ │ ├── BasicApiAuthenticationToken.java │ │ │ ├── BasicApiAuthenticator.java │ │ │ ├── BasicAuthenticator.java │ │ │ ├── BasicLoginAttempt.java │ │ │ ├── DefaultApiAuthenticationResult.java │ │ │ ├── DefaultApiRequestAuthenticator.java │ │ │ ├── DefaultAuthenticationResult.java │ │ │ ├── DefaultBasicApiAuthenticationRequest.java │ │ │ ├── DefaultBasicAuthenticationOptions.java │ │ │ ├── DefaultBasicLoginAttempt.java │ │ │ ├── DefaultHttpServletRequestWrapper.java │ │ │ ├── DefaultOktaAuthNAuthenticator.java │ │ │ ├── DefaultUsernamePasswordRequest.java │ │ │ ├── DefaultUsernamePasswordRequestBuilder.java │ │ │ ├── HttpServletRequestWrapper.java │ │ │ ├── LoginAttempt.java │ │ │ ├── OAuthAuthenticationRequestFactory.java │ │ │ └── credentials │ │ │ │ ├── AbstractApiKeyCredentialsProvider.java │ │ │ │ ├── ApiKeyCredentials.java │ │ │ │ ├── ApiKeyFileCredentialsProvider.java │ │ │ │ ├── ClientCredentials.java │ │ │ │ ├── ClientCredentialsProvider.java │ │ │ │ ├── ClientCredentialsProviderChain.java │ │ │ │ ├── ConfigurationCredentialsProvider.java │ │ │ │ ├── DefaultClientCredentialsProviderChain.java │ │ │ │ ├── EnvironmentVariableCredentialsProvider.java │ │ │ │ ├── EnvironmentVariableFileCredentialsProvider.java │ │ │ │ ├── SystemPropertiesApiKeyCredentialsProvider.java │ │ │ │ └── SystemPropertyFileCredentialsProvider.java │ │ │ ├── cache │ │ │ ├── CacheConfiguration.java │ │ │ ├── DefaultCache.java │ │ │ ├── DefaultCacheConfiguration.java │ │ │ ├── DefaultCacheConfigurationBuilder.java │ │ │ ├── DefaultCacheManager.java │ │ │ ├── DefaultCacheManagerBuilder.java │ │ │ ├── DisabledCache.java │ │ │ └── DisabledCacheManager.java │ │ │ ├── challenge │ │ │ ├── AbstractChallenge.java │ │ │ ├── DefaultChallengeCriteria.java │ │ │ ├── DefaultChallengeList.java │ │ │ ├── DefaultChallengeOptions.java │ │ │ ├── DefaultCreateChallengeRequest.java │ │ │ ├── DefaultCreateChallengeRequestBuilder.java │ │ │ ├── google │ │ │ │ ├── DefaultGoogleAuthenticatorChallenge.java │ │ │ │ ├── DefaultGoogleAuthenticatorChallengeCriteria.java │ │ │ │ ├── DefaultGoogleAuthenticatorChallengeOptions.java │ │ │ │ ├── DefaultGoogleAuthenticatorCreateChallengeRequest.java │ │ │ │ └── DefaultGoogleAuthenticatorCreateChallengeRequestBuilder.java │ │ │ └── sms │ │ │ │ ├── DefaultSmsChallenge.java │ │ │ │ ├── DefaultSmsChallengeCriteria.java │ │ │ │ └── DefaultSmsChallengeOptions.java │ │ │ ├── client │ │ │ ├── DefaultClient.java │ │ │ └── DefaultClientBuilder.java │ │ │ ├── config │ │ │ ├── ClientConfiguration.java │ │ │ ├── DefaultEnvVarNameConverter.java │ │ │ ├── DefaultPropertiesParser.java │ │ │ ├── EnvVarNameConverter.java │ │ │ ├── EnvironmentVariablesPropertiesSource.java │ │ │ ├── FilteredPropertiesSource.java │ │ │ ├── JSONPropertiesSource.java │ │ │ ├── OptionalPropertiesSource.java │ │ │ ├── PropertiesParser.java │ │ │ ├── PropertiesSource.java │ │ │ ├── ResourcePropertiesSource.java │ │ │ ├── SystemPropertiesSource.java │ │ │ └── YAMLPropertiesSource.java │ │ │ ├── directory │ │ │ ├── DefaultAccountCreationPolicy.java │ │ │ ├── DefaultCreateDirectoryRequest.java │ │ │ ├── DefaultCreateDirectoryRequestBuilder.java │ │ │ ├── DefaultCustomData.java │ │ │ ├── DefaultDirectory.java │ │ │ ├── DefaultDirectoryCriteria.java │ │ │ ├── DefaultDirectoryList.java │ │ │ ├── DefaultDirectoryOptions.java │ │ │ ├── DefaultOktaPasswordPolicy.java │ │ │ ├── DefaultOktaPasswordPolicyList.java │ │ │ ├── DefaultPasswordPolicy.java │ │ │ ├── DefaultPasswordStrength.java │ │ │ └── OktaDirectory.java │ │ │ ├── ds │ │ │ ├── CacheMapCreator.java │ │ │ ├── CacheMapCreatorFactory.java │ │ │ ├── CacheMapInitializer.java │ │ │ ├── CacheRegionNameResolver.java │ │ │ ├── DefaultCacheKey.java │ │ │ ├── DefaultCacheMapCreator.java │ │ │ ├── DefaultCacheMapCreatorFactory.java │ │ │ ├── DefaultCacheMapInitializer.java │ │ │ ├── DefaultCacheRegionNameResolver.java │ │ │ ├── DefaultDataStore.java │ │ │ ├── DefaultFilterChain.java │ │ │ ├── DefaultResourceConverter.java │ │ │ ├── DefaultResourceDataRequest.java │ │ │ ├── DefaultResourceDataResult.java │ │ │ ├── DefaultResourceFactory.java │ │ │ ├── DefaultResourceMessage.java │ │ │ ├── Enlistment.java │ │ │ ├── EnlistmentFilter.java │ │ │ ├── Filter.java │ │ │ ├── FilterChain.java │ │ │ ├── InternalDataStore.java │ │ │ ├── JacksonMapMarshaller.java │ │ │ ├── MapMarshaller.java │ │ │ ├── MarshalingException.java │ │ │ ├── ProviderAccountResultFilter.java │ │ │ ├── ResourceAction.java │ │ │ ├── ResourceConverter.java │ │ │ ├── ResourceDataRequest.java │ │ │ ├── ResourceDataResult.java │ │ │ ├── ResourceFactory.java │ │ │ ├── ResourceMessage.java │ │ │ ├── SubtypeDispatchingResourceFactory.java │ │ │ ├── api │ │ │ │ ├── ApiKeyQueryFilter.java │ │ │ │ └── DecryptApiKeySecretFilter.java │ │ │ ├── cache │ │ │ │ ├── AbstractCacheFilter.java │ │ │ │ ├── CacheResolver.java │ │ │ │ ├── DefaultCacheResolver.java │ │ │ │ ├── ReadCacheFilter.java │ │ │ │ └── WriteCacheFilter.java │ │ │ └── directory │ │ │ │ └── CustomDataCacheMapCreator.java │ │ │ ├── error │ │ │ ├── ApiAuthenticationExceptionFactory.java │ │ │ ├── DefaultError.java │ │ │ ├── DefaultErrorBuilder.java │ │ │ └── OktaError.java │ │ │ ├── factor │ │ │ ├── AbstractCreateFactorRequest.java │ │ │ ├── AbstractCreateFactorRequestBuilder.java │ │ │ ├── AbstractFactor.java │ │ │ ├── DefaultFactorCriteria.java │ │ │ ├── DefaultFactorList.java │ │ │ ├── DefaultFactorOptions.java │ │ │ ├── google │ │ │ │ ├── DefaultCreateGoogleAuthenticatorFactorRequestBuilder.java │ │ │ │ ├── DefaultGoogleAuthenticatorCreateFactorRequest.java │ │ │ │ ├── DefaultGoogleAuthenticatorFactor.java │ │ │ │ ├── DefaultGoogleAuthenticatorFactorCriteria.java │ │ │ │ └── DefaultGoogleAuthenticatorFactorOptions.java │ │ │ └── sms │ │ │ │ ├── DefaultCreateSmsFactorRequestBuilder.java │ │ │ │ ├── DefaultSmsCreateFactorRequest.java │ │ │ │ ├── DefaultSmsFactor.java │ │ │ │ ├── DefaultSmsFactorCriteria.java │ │ │ │ └── DefaultSmsFactorOptions.java │ │ │ ├── group │ │ │ ├── DefaultCreateGroupRequest.java │ │ │ ├── DefaultCreateGroupRequestBuilder.java │ │ │ ├── DefaultGroup.java │ │ │ ├── DefaultGroupCriteria.java │ │ │ ├── DefaultGroupList.java │ │ │ ├── DefaultGroupMembership.java │ │ │ ├── DefaultGroupMembershipList.java │ │ │ └── DefaultGroupOptions.java │ │ │ ├── http │ │ │ ├── CanonicalUri.java │ │ │ ├── Content.java │ │ │ ├── DefaultHttpRequest.java │ │ │ ├── DefaultHttpRequestBuilder.java │ │ │ ├── HttpHeaders.java │ │ │ ├── HttpHeadersHolder.java │ │ │ ├── HttpMessage.java │ │ │ ├── MediaType.java │ │ │ ├── QueryString.java │ │ │ ├── QueryStringFactory.java │ │ │ ├── Request.java │ │ │ ├── RequestExecutor.java │ │ │ ├── Response.java │ │ │ ├── RestException.java │ │ │ ├── ServletHttpRequest.java │ │ │ ├── authc │ │ │ │ ├── BasicRequestAuthenticator.java │ │ │ │ ├── DefaultRequestAuthenticatorFactory.java │ │ │ │ ├── MacAlgorithm.java │ │ │ │ ├── RequestAuthenticator.java │ │ │ │ ├── RequestAuthenticatorFactory.java │ │ │ │ ├── SAuthc1RequestAuthenticator.java │ │ │ │ └── SswsAuthenticator.java │ │ │ └── support │ │ │ │ ├── AbstractHttpMessage.java │ │ │ │ ├── BackoffStrategy.java │ │ │ │ ├── DefaultCanonicalUri.java │ │ │ │ ├── DefaultRequest.java │ │ │ │ ├── DefaultResponse.java │ │ │ │ ├── RequestAuthenticationException.java │ │ │ │ ├── UserAgent.java │ │ │ │ └── Version.java │ │ │ ├── idsite │ │ │ ├── DefaultIdSiteCallbackHandler.java │ │ │ ├── DefaultIdSiteUrlBuilder.java │ │ │ ├── DefaultNonce.java │ │ │ ├── DefaultNonceStore.java │ │ │ └── IdSiteClaims.java │ │ │ ├── io │ │ │ ├── AbstractResource.java │ │ │ ├── ClasspathResource.java │ │ │ ├── DefaultResourceFactory.java │ │ │ ├── FileResource.java │ │ │ ├── Resource.java │ │ │ ├── ResourceFactory.java │ │ │ ├── StringResource.java │ │ │ └── UrlResource.java │ │ │ ├── jwt │ │ │ ├── JwtHeaderParameters.java │ │ │ ├── JwtSignatureValidator.java │ │ │ ├── JwtWrapper.java │ │ │ └── signer │ │ │ │ ├── DefaultJwtSigner.java │ │ │ │ ├── HmacGenerator.java │ │ │ │ └── JwtSigner.java │ │ │ ├── mail │ │ │ ├── AbstractEmailTemplate.java │ │ │ ├── CommonsEmailService.java │ │ │ ├── DefaultEmailRequest.java │ │ │ ├── DefaultEmailServiceBuilder.java │ │ │ ├── DefaultModeledEmailTemplate.java │ │ │ ├── DefaultModeledEmailTemplateList.java │ │ │ ├── DefaultUnmodeledEmailTemplate.java │ │ │ ├── DefaultUnmodeledEmailTemplateList.java │ │ │ └── template │ │ │ │ ├── DefaultTemplateRenderRequest.java │ │ │ │ ├── EmailTemplate.java │ │ │ │ └── VelocityTemplateRenderer.java │ │ │ ├── oauth │ │ │ ├── AbstractBaseOAuthToken.java │ │ │ ├── AbstractOAuthRequestAuthenticator.java │ │ │ ├── DefaultAccessToken.java │ │ │ ├── DefaultAccessTokenList.java │ │ │ ├── DefaultGrantAuthenticationToken.java │ │ │ ├── DefaultIdSiteAuthenticationAttempt.java │ │ │ ├── DefaultIdSiteAuthenticationRequest.java │ │ │ ├── DefaultIdSiteAuthenticationRequestBuilder.java │ │ │ ├── DefaultIdSiteAuthenticationRequestFactory.java │ │ │ ├── DefaultIdSiteAuthenticator.java │ │ │ ├── DefaultIdSiteAuthenticatorFactory.java │ │ │ ├── DefaultOAuthBearerRequestAuthentication.java │ │ │ ├── DefaultOAuthBearerRequestAuthenticationBuilder.java │ │ │ ├── DefaultOAuthBearerRequestAuthenticationFactory.java │ │ │ ├── DefaultOAuthBearerRequestAuthenticationResult.java │ │ │ ├── DefaultOAuthBearerRequestAuthenticationResultBuilder.java │ │ │ ├── DefaultOAuthBearerRequestAuthenticator.java │ │ │ ├── DefaultOAuthBearerRequestAuthenticatorFactory.java │ │ │ ├── DefaultOAuthClientCredentialsGrantAuthenticationAttempt.java │ │ │ ├── DefaultOAuthClientCredentialsGrantRequestAuthentication.java │ │ │ ├── DefaultOAuthClientCredentialsGrantRequestAuthenticationBuilder.java │ │ │ ├── DefaultOAuthClientCredentialsGrantRequestAuthenticationFactory.java │ │ │ ├── DefaultOAuthClientCredentialsGrantRequestAuthenticationResultBuilder.java │ │ │ ├── DefaultOAuthClientCredentialsGrantRequestAuthenticator.java │ │ │ ├── DefaultOAuthClientCredentialsRequestAuthenticatorFactory.java │ │ │ ├── DefaultOAuthGrantRequestAuthenticationResult.java │ │ │ ├── DefaultOAuthGrantRequestAuthenticationResultBuilder.java │ │ │ ├── DefaultOAuthPasswordGrantAuthenticationAttempt.java │ │ │ ├── DefaultOAuthPasswordGrantRequestAuthentication.java │ │ │ ├── DefaultOAuthPasswordGrantRequestAuthenticationBuilder.java │ │ │ ├── DefaultOAuthPasswordGrantRequestAuthenticationFactory.java │ │ │ ├── DefaultOAuthPasswordGrantRequestAuthenticator.java │ │ │ ├── DefaultOAuthPasswordRequestAuthenticatorFactory.java │ │ │ ├── DefaultOAuthPolicy.java │ │ │ ├── DefaultOAuthRefreshTokenRequestAuthentication.java │ │ │ ├── DefaultOAuthRefreshTokenRequestAuthenticationBuilder.java │ │ │ ├── DefaultOAuthRefreshTokenRequestAuthenticationFactory.java │ │ │ ├── DefaultOAuthRefreshTokenRequestAuthenticator.java │ │ │ ├── DefaultOAuthRefreshTokenRequestAuthenticatorFactory.java │ │ │ ├── DefaultOAuthRevocationRequest.java │ │ │ ├── DefaultOAuthRevocationRequestBuilder.java │ │ │ ├── DefaultOAuthStormpathFactorChallengeGrantAuthenticationAttempt.java │ │ │ ├── DefaultOAuthStormpathFactorChallengeGrantRequestAuthentication.java │ │ │ ├── DefaultOAuthStormpathFactorChallengeGrantRequestAuthenticator.java │ │ │ ├── DefaultOAuthStormpathFactorChallengeGrantRequestAuthenticatorFactory.java │ │ │ ├── DefaultOAuthStormpathSocialGrantAuthenticationAttempt.java │ │ │ ├── DefaultOAuthStormpathSocialGrantRequestAuthentication.java │ │ │ ├── DefaultOAuthStormpathSocialGrantRequestAuthenticator.java │ │ │ ├── DefaultOAuthStormpathSocialRequestAuthenticatorFactory.java │ │ │ ├── DefaultOAuthTokenRevocationRequestFactory.java │ │ │ ├── DefaultOAuthTokenRevocator.java │ │ │ ├── DefaultOAuthTokenRevocatorFactory.java │ │ │ ├── DefaultRefreshAuthenticationAttempt.java │ │ │ ├── DefaultRefreshToken.java │ │ │ ├── DefaultRefreshTokenList.java │ │ │ ├── IdSiteAuthenticationAttempt.java │ │ │ ├── OAuthBearerRequestAuthenticationResultBuilder.java │ │ │ ├── OAuthClientCredentialsGrantAuthenticationAttempt.java │ │ │ ├── OAuthGrantRequestAuthenticationResultBuilder.java │ │ │ ├── OAuthPasswordGrantAuthenticationAttempt.java │ │ │ ├── OAuthStormpathFactorChallengeGrantAuthenticationAttempt.java │ │ │ ├── OAuthStormpathSocialGrantAuthenticationAttempt.java │ │ │ ├── OAuthTokenRevocationAttempt.java │ │ │ ├── OAuthTokenRevoked.java │ │ │ ├── OktaOAuthClientCredentialsGrantRequestAuthenticator.java │ │ │ ├── OktaOAuthGrantRequestAuthenticationResultBuilder.java │ │ │ ├── OktaOAuthPasswordGrantRequestAuthenticator.java │ │ │ ├── OktaOAuthRefreshTokenRequestAuthenticator.java │ │ │ ├── OktaOAuthRequestAuthenticator.java │ │ │ ├── RefreshAuthenticationAttempt.java │ │ │ └── SimpleIntrospectAccessToken.java │ │ │ ├── okta │ │ │ ├── DefaultApplicationCredentials.java │ │ │ ├── DefaultAuthNRequest.java │ │ │ ├── DefaultAuthNResult.java │ │ │ ├── DefaultOIDCKey.java │ │ │ ├── DefaultOIDCKeysList.java │ │ │ ├── DefaultOIDCWellKnownResource.java │ │ │ ├── DefaultOktaAccessTokenResult.java │ │ │ ├── DefaultOktaActivateAccountResponse.java │ │ │ ├── DefaultOktaApplicationConfigResource.java │ │ │ ├── DefaultOktaForgotPasswordRequest.java │ │ │ ├── DefaultOktaForgotPasswordResult.java │ │ │ ├── DefaultOktaIdentityProviderList.java │ │ │ ├── DefaultOktaSigningKeyResolver.java │ │ │ ├── DefaultOktaTokenRequest.java │ │ │ ├── DefaultOktaTokenResponse.java │ │ │ ├── DefaultOktaUserToApplicationMapping.java │ │ │ ├── DefaultTokenIntrospectRequest.java │ │ │ ├── DefaultTokenIntrospectResponse.java │ │ │ ├── OktaApiPaths.java │ │ │ ├── OktaApplicationAccountStoreMapping.java │ │ │ ├── OktaOAuthAuthenticator.java │ │ │ ├── OktaSigningKeyResolver.java │ │ │ └── OktaUserAccountConverter.java │ │ │ ├── organization │ │ │ ├── CreateOrganizationAndDirectoryRequest.java │ │ │ ├── CreateOrganizationRequestVisitor.java │ │ │ ├── DefaultCreateOrganizationRequest.java │ │ │ ├── DefaultCreateOrganizationRequestBuilder.java │ │ │ ├── DefaultOrganization.java │ │ │ ├── DefaultOrganizationAccountStoreMapping.java │ │ │ ├── DefaultOrganizationAccountStoreMappingCriteria.java │ │ │ ├── DefaultOrganizationAccountStoreMappingList.java │ │ │ ├── DefaultOrganizationAccountStoreMappingOptions.java │ │ │ ├── DefaultOrganizationCriteria.java │ │ │ ├── DefaultOrganizationList.java │ │ │ └── DefaultOrganizationOptions.java │ │ │ ├── phone │ │ │ ├── DefaultCreatePhoneRequest.java │ │ │ ├── DefaultCreatePhoneRequestBuilder.java │ │ │ ├── DefaultPhone.java │ │ │ ├── DefaultPhoneCriteria.java │ │ │ ├── DefaultPhoneList.java │ │ │ └── DefaultPhoneOptions.java │ │ │ ├── provider │ │ │ ├── AbstractCreateProviderRequestBuilder.java │ │ │ ├── AbstractMappingRuleBuilder.java │ │ │ ├── AbstractOAuthProvider.java │ │ │ ├── AbstractProvider.java │ │ │ ├── AbstractProviderAccountRequestBuilder.java │ │ │ ├── AbstractProviderData.java │ │ │ ├── AbstractSocialProviderAccountRequestBuilder.java │ │ │ ├── DefaultCreateProviderRequest.java │ │ │ ├── DefaultFacebookAccountRequestBuilder.java │ │ │ ├── DefaultFacebookCreateProviderRequestBuilder.java │ │ │ ├── DefaultFacebookProvider.java │ │ │ ├── DefaultFacebookProviderData.java │ │ │ ├── DefaultFacebookRequestFactory.java │ │ │ ├── DefaultGenericOAuth2CreateProviderRequestBuilder.java │ │ │ ├── DefaultGenericOAuth2Provider.java │ │ │ ├── DefaultGenericOAuth2ProviderAccountRequestBuilder.java │ │ │ ├── DefaultGenericOAuth2ProviderData.java │ │ │ ├── DefaultGenericOAuth2ProviderRequestFactory.java │ │ │ ├── DefaultGithubAccountRequestBuilder.java │ │ │ ├── DefaultGithubCreateProviderRequestBuilder.java │ │ │ ├── DefaultGithubProvider.java │ │ │ ├── DefaultGithubProviderData.java │ │ │ ├── DefaultGithubRequestFactory.java │ │ │ ├── DefaultGoogleAccountRequestBuilder.java │ │ │ ├── DefaultGoogleCreateProviderRequestBuilder.java │ │ │ ├── DefaultGoogleProvider.java │ │ │ ├── DefaultGoogleProviderData.java │ │ │ ├── DefaultGoogleRequestFactory.java │ │ │ ├── DefaultLinkedInAccountRequestBuilder.java │ │ │ ├── DefaultLinkedInCreateProviderRequestBuilder.java │ │ │ ├── DefaultLinkedInProvider.java │ │ │ ├── DefaultLinkedInProviderData.java │ │ │ ├── DefaultLinkedInRequestFactory.java │ │ │ ├── DefaultOktaAccountRequestBuilder.java │ │ │ ├── DefaultOktaCreateProviderRequestBuilder.java │ │ │ ├── DefaultOktaProvider.java │ │ │ ├── DefaultOktaProviderAccountResult.java │ │ │ ├── DefaultOktaProviderData.java │ │ │ ├── DefaultOktaProviderRequestFactory.java │ │ │ ├── DefaultProvider.java │ │ │ ├── DefaultProviderAccountAccess.java │ │ │ ├── DefaultProviderAccountRequest.java │ │ │ ├── DefaultProviderAccountResult.java │ │ │ ├── DefaultProviderData.java │ │ │ ├── DefaultTwitterAccountRequestBuilder.java │ │ │ ├── DefaultTwitterCreateProviderRequestBuilder.java │ │ │ ├── DefaultTwitterProvider.java │ │ │ ├── DefaultTwitterProviderData.java │ │ │ ├── DefaultTwitterRequestFactory.java │ │ │ ├── IdentityProviderType.java │ │ │ ├── ProviderAccountAccess.java │ │ │ ├── ProviderAccountResolver.java │ │ │ ├── ProviderClaims.java │ │ │ ├── saml │ │ │ │ ├── DefaultCreateSamlProviderRequestBuilder.java │ │ │ │ ├── DefaultSamlAccountRequestBuilder.java │ │ │ │ ├── DefaultSamlProvider.java │ │ │ │ ├── DefaultSamlProviderData.java │ │ │ │ ├── DefaultSamlRequestFactory.java │ │ │ │ └── DefaultStormpathProvider.java │ │ │ └── social │ │ │ │ ├── DefaultUserInfoMappingRule.java │ │ │ │ ├── DefaultUserInfoMappingRuleBuilder.java │ │ │ │ ├── DefaultUserInfoMappingRules.java │ │ │ │ └── DefaultUserInfoMappingRulesBuilder.java │ │ │ ├── query │ │ │ ├── CollectionExpansion.java │ │ │ ├── DefaultCriteria.java │ │ │ ├── DefaultDateExpressionFactory.java │ │ │ ├── DefaultEqualsExpressionFactory.java │ │ │ ├── DefaultOptions.java │ │ │ ├── DefaultStringExpressionFactory.java │ │ │ ├── Expandable.java │ │ │ ├── Expansion.java │ │ │ ├── LikeExpression.java │ │ │ ├── MatchLocation.java │ │ │ ├── Operator.java │ │ │ ├── Order.java │ │ │ ├── Pagination.java │ │ │ └── SimpleExpression.java │ │ │ ├── resource │ │ │ ├── AbstractCollectionResource.java │ │ │ ├── AbstractExtendableInstanceResource.java │ │ │ ├── AbstractInstanceResource.java │ │ │ ├── AbstractPropertyRetriever.java │ │ │ ├── AbstractResource.java │ │ │ ├── ArrayProperty.java │ │ │ ├── BooleanProperty.java │ │ │ ├── CollectionProperties.java │ │ │ ├── CollectionReference.java │ │ │ ├── DateProperty.java │ │ │ ├── DefaultVoidResource.java │ │ │ ├── EnumProperty.java │ │ │ ├── IntegerProperty.java │ │ │ ├── ListProperty.java │ │ │ ├── MapProperty.java │ │ │ ├── NonStringProperty.java │ │ │ ├── Page.java │ │ │ ├── ParentAwareObjectProperty.java │ │ │ ├── Property.java │ │ │ ├── ReferenceFactory.java │ │ │ ├── ResourceReference.java │ │ │ ├── ResourceUtil.java │ │ │ ├── SetProperty.java │ │ │ └── StringProperty.java │ │ │ ├── saml │ │ │ ├── DefaultAssertionConsumerServicePostEndpoint.java │ │ │ ├── DefaultAttributeStatementMappingRule.java │ │ │ ├── DefaultAttributeStatementMappingRuleBuilder.java │ │ │ ├── DefaultAttributeStatementMappingRules.java │ │ │ ├── DefaultAttributeStatementMappingRulesBuilder.java │ │ │ ├── DefaultAuthnVerification.java │ │ │ ├── DefaultAuthnVerificationRequest.java │ │ │ ├── DefaultCreateRegisteredSamlServiceProviderRequest.java │ │ │ ├── DefaultCreateRegisteredSamlServiceProviderRequestBuilder.java │ │ │ ├── DefaultCreateSamlResponseRequest.java │ │ │ ├── DefaultCreateSamlServiceProviderRegistrationRequest.java │ │ │ ├── DefaultCreateSamlServiceProviderRegistrationRequestBuilder.java │ │ │ ├── DefaultRegisteredSamlServiceProvider.java │ │ │ ├── DefaultRegisteredSamlServiceProviderCriteria.java │ │ │ ├── DefaultRegisteredSamlServiceProviderList.java │ │ │ ├── DefaultRegisteredSamlServiceProviderOptions.java │ │ │ ├── DefaultSamlCallbackHandler.java │ │ │ ├── DefaultSamlIdentityProvider.java │ │ │ ├── DefaultSamlIdentityProviderCriteria.java │ │ │ ├── DefaultSamlIdentityProviderMetadata.java │ │ │ ├── DefaultSamlIdentityProviderOptions.java │ │ │ ├── DefaultSamlIdpUrlBuilder.java │ │ │ ├── DefaultSamlPolicy.java │ │ │ ├── DefaultSamlResponse.java │ │ │ ├── DefaultSamlServiceProvider.java │ │ │ ├── DefaultSamlServiceProviderMetadata.java │ │ │ ├── DefaultSamlServiceProviderRegistration.java │ │ │ ├── DefaultSamlServiceProviderRegistrationCriteria.java │ │ │ ├── DefaultSamlServiceProviderRegistrationList.java │ │ │ ├── DefaultSamlServiceProviderRegistrationOptions.java │ │ │ ├── DefaultSsoInitiationEndpoint.java │ │ │ ├── DefaultX509SigningCert.java │ │ │ ├── SamlClaims.java │ │ │ └── SamlResultStatus.java │ │ │ ├── schema │ │ │ ├── DefaultField.java │ │ │ ├── DefaultFieldList.java │ │ │ └── DefaultSchema.java │ │ │ ├── security │ │ │ ├── ApiKeySecretEncryptionService.java │ │ │ ├── DefaultSaltGenerator.java │ │ │ ├── EncryptionService.java │ │ │ └── SaltGenerator.java │ │ │ ├── tenant │ │ │ ├── DefaultTenant.java │ │ │ ├── DefaultTenantCriteria.java │ │ │ ├── DefaultTenantOptions.java │ │ │ ├── DefaultTenantResolver.java │ │ │ └── TenantResolver.java │ │ │ └── util │ │ │ ├── Base64.java │ │ │ ├── BaseNCodec.java │ │ │ ├── BaseUrlResolver.java │ │ │ ├── DefaultBaseUrlResolver.java │ │ │ ├── LinkedCaseInsensitiveMap.java │ │ │ ├── MultiValueMap.java │ │ │ ├── RequestUtils.java │ │ │ ├── SoftHashMap.java │ │ │ └── StringInputStream.java │ └── resources │ │ └── com │ │ └── stormpath │ │ └── sdk │ │ ├── config │ │ └── stormpath.properties │ │ ├── mail │ │ └── templates │ │ │ ├── forgotPassword.json │ │ │ └── verifyEmail.json │ │ └── version.properties │ └── test │ ├── groovy │ └── com │ │ └── stormpath │ │ └── sdk │ │ └── impl │ │ ├── account │ │ ├── DefaultAccountCriteriaTest.groovy │ │ ├── DefaultAccountLinkListTest.groovy │ │ ├── DefaultAccountLinkOptionsTest.groovy │ │ ├── DefaultAccountLinkTest.groovy │ │ ├── DefaultAccountLinkingPolicyTest.groovy │ │ ├── DefaultAccountListTest.groovy │ │ ├── DefaultAccountOptionsTest.groovy │ │ ├── DefaultAccountTest.groovy │ │ ├── DefaultCreateAccountRequestBuilderTest.groovy │ │ ├── DefaultCreateAccountRequestTest.groovy │ │ ├── DefaultEmailVerificationTokenTest.groovy │ │ ├── DefaultPasswordResetTokenTest.groovy │ │ ├── DefaultVerificationEmailRequestBuilderTest.groovy │ │ └── DefaultVerificationEmailRequestTest.groovy │ │ ├── api │ │ ├── ClientApiKeyBuilderTest.groovy │ │ ├── ClientApiKeyTest.groovy │ │ └── DefaultApiKeyTest.groovy │ │ ├── application │ │ ├── CreateApplicationAndDirectoryRequestTest.groovy │ │ ├── DefaultApplicationAccountStoreMappingTest.groovy │ │ ├── DefaultApplicationCriteriaTest.groovy │ │ ├── DefaultApplicationListTest.groovy │ │ ├── DefaultApplicationOptionsTest.groovy │ │ ├── DefaultApplicationTest.groovy │ │ ├── DefaultCreateApplicationRequestBuilderTest.groovy │ │ ├── DefaultCreateApplicationRequestTest.groovy │ │ ├── OktaApplicationTest.groovy │ │ └── okta │ │ │ ├── DefaultApplicationCredentialsTest.groovy │ │ │ └── DefaultAuthNResultTest.groovy │ │ ├── authc │ │ ├── AbstractLoginAttemptTest.groovy │ │ ├── AuthenticationRequestDispatcherTest.groovy │ │ ├── BasicApiAuthenticationTokenTest.groovy │ │ ├── BasicApiAuthenticatorTest.groovy │ │ ├── BasicAuthenticatorTest.groovy │ │ ├── DefaultApiRequestAuthenticatorTest.groovy │ │ ├── DefaultAuthenticationResultTest.groovy │ │ ├── DefaultBasicLoginAttemptTest.groovy │ │ ├── DefaultHttpServletRequestWrapperTest.groovy │ │ ├── OktaAuthNAuthenticatorTest.groovy │ │ ├── UsernamePasswordRequestBuilderTest.groovy │ │ ├── UsernamePasswordRequestsTest.groovy │ │ └── credentials │ │ │ ├── ApiKeyFileCredentialsProviderTest.groovy │ │ │ ├── ClientCredentialsProviderChainTest.groovy │ │ │ ├── ConfigurationCredentialsProviderTest.groovy │ │ │ └── DefaultClientCredentialsProviderChainTest.groovy │ │ ├── cache │ │ ├── CachesTest.groovy │ │ ├── DefaultCacheManagerTest.groovy │ │ ├── DefaultCacheTest.groovy │ │ ├── DisabledCacheManagerTest.groovy │ │ └── DisabledCacheTest.groovy │ │ ├── client │ │ ├── Account.groovy │ │ ├── DefaultClientBuilderTest.groovy │ │ └── DefaultClientTest.groovy │ │ ├── config │ │ ├── DefaultEnvVarNameConverterTest.groovy │ │ ├── DefaultPropertiesParserTest.groovy │ │ ├── FilteredPropertiesSourceTest.groovy │ │ ├── JSONPropertiesSourceTest.groovy │ │ ├── OptionalPropertiesSourceTest.groovy │ │ ├── ResourcePropertiesSourceTest.groovy │ │ ├── SpecConfigVersusCorePropertiesTest.groovy │ │ ├── SystemPropertiesSourceTest.groovy │ │ └── YAMLPropertiesSourceTest.groovy │ │ ├── directory │ │ ├── DefaultAccountCreationPolicyTest.groovy │ │ ├── DefaultCustomDataTest.groovy │ │ ├── DefaultDirectoryCriteriaTest.groovy │ │ ├── DefaultDirectoryListTest.groovy │ │ ├── DefaultDirectoryOptionsTest.groovy │ │ ├── DefaultDirectoryTest.groovy │ │ ├── DefaultPasswordPolicyTest.groovy │ │ └── DefaultPasswordStrengthTest.groovy │ │ ├── ds │ │ ├── DefaultCacheKeyTest.groovy │ │ ├── DefaultDataStoreTest.groovy │ │ ├── EnlistmentTest.groovy │ │ ├── JacksonMapMarshallerTest.groovy │ │ └── MarshalingExceptionTest.groovy │ │ ├── error │ │ ├── ApiAuthenticationExceptionFactoryTest.groovy │ │ └── DefaultErrorTest.groovy │ │ ├── group │ │ ├── DefaultCreateGroupRequestBuilderTest.groovy │ │ ├── DefaultCreateGroupRequestTest.groovy │ │ ├── DefaultGroupCriteriaTest.groovy │ │ ├── DefaultGroupListTest.groovy │ │ ├── DefaultGroupMembershipTest.groovy │ │ ├── DefaultGroupOptionsTest.groovy │ │ └── DefaultGroupTest.groovy │ │ ├── http │ │ ├── DefaultHttpRequestTest.groovy │ │ ├── HttpHeadersTest.groovy │ │ ├── QueryStringFactoryTest.groovy │ │ ├── QueryStringTest.groovy │ │ ├── authc │ │ │ ├── BasicRequestAuthenticatorTest.groovy │ │ │ └── DefaultRequestAuthenticatorFactoryTest.groovy │ │ ├── httpclient │ │ │ └── HttpClientRequestExecutor.groovy │ │ └── support │ │ │ ├── UserAgentTest.groovy │ │ │ └── VersionTest.groovy │ │ ├── idsite │ │ ├── DefaultIdSiteCallbackHandlerTest.groovy │ │ ├── DefaultIdSiteUrlBuilderTest.groovy │ │ ├── DefaultNonceTest.groovy │ │ ├── IdSiteClaimsTest.groovy │ │ └── TestIdSiteResultListenerType.groovy │ │ ├── io │ │ ├── ClasspathResourceTest.groovy │ │ ├── DefaultResourceFactoryTest.groovy │ │ ├── StringResourceTest.groovy │ │ └── UrlResourceTest.groovy │ │ ├── jwt │ │ └── JwtWrapperTest.groovy │ │ ├── lang │ │ ├── DurationTest.groovy │ │ └── InstantsTest.groovy │ │ ├── mail │ │ ├── DefaultAccountVerificationSuccessEmailTemplateTest.groovy │ │ ├── DefaultAccountVerificationSuccessTemplateListTest.groovy │ │ ├── DefaultModeledEmailTemplateListTest.groovy │ │ ├── DefaultModeledEmailTemplateTest.groovy │ │ ├── DefaultPasswordResetSuccessEmailTemplateListTest.groovy │ │ ├── DefaultPasswordResetSuccessEmailTemplateTest.groovy │ │ ├── DefaultWelcomeEmailTemplateListTest.groovy │ │ ├── DefaultWelcomeTemplateTest.groovy │ │ └── MimeTypeTest.groovy │ │ ├── oauth │ │ ├── DefaultAccessTokenListTest.groovy │ │ ├── DefaultAccessTokenTest.groovy │ │ ├── DefaultCreateIdSiteAuthenticationAttemptTest.groovy │ │ ├── DefaultCreateOAuthClientCredentialsGrantAuthenticationAttemptTest.groovy │ │ ├── DefaultCreateOAuthPasswordGrantAuthenticationAttemptTest.groovy │ │ ├── DefaultCreateOAuthStormpathSocialGrantAuthenticationAttemptTest.groovy │ │ ├── DefaultGrantAuthenticationTokenTest.groovy │ │ ├── DefaultOAuthGrantRequestAuthenticationResultBuilderTest.groovy │ │ ├── DefaultOAuthPasswordGrantRequestAuthenticationBuilderTest.groovy │ │ ├── DefaultOAuthPolicyTest.groovy │ │ ├── DefaultOAuthRefreshOktaTokenRequestAuthenticationBuilderTest.groovy │ │ ├── DefaultRefreshTokenTest.groovy │ │ ├── IdSiteAuthenticationRequestBuilderTest.groovy │ │ └── OAuthBearerRequestAuthenticationBuilderTest.groovy │ │ ├── okta │ │ └── OktaUserAccountConverterTest.groovy │ │ ├── organization │ │ ├── CreateOrganizationAndDirectoryRequestTest.groovy │ │ ├── DefaultCreateOrganizationRequestBuilderTest.groovy │ │ ├── DefaultCreateOrganizationRequestTest.groovy │ │ ├── DefaultOrganizationAccountStoreMappingTest.groovy │ │ ├── DefaultOrganizationCriteriaTest.groovy │ │ ├── DefaultOrganizationListTest.groovy │ │ ├── DefaultOrganizationOptionsTest.groovy │ │ └── DefaultOrganizationTest.groovy │ │ ├── phone │ │ ├── DefaultCreatePhoneRequestBuilderTest.groovy │ │ ├── DefaultCreatePhoneRequestTest.groovy │ │ └── DefaultPhoneListTest.groovy │ │ ├── provider │ │ ├── AbstractProviderAccountRequestTest.groovy │ │ ├── DefaultFacebookAccountRequestBuilderTest.groovy │ │ ├── DefaultFacebookCreateProviderRequestBuilderTest.groovy │ │ ├── DefaultFacebookProviderDataTest.groovy │ │ ├── DefaultFacebookProviderTest.groovy │ │ ├── DefaultGenericGenericOAuth2ProviderDataTest.groovy │ │ ├── DefaultGenericOAuth2AccountRequestBuilderTest.groovy │ │ ├── DefaultGenericOAuth2CreateProviderRequestBuilderTest.groovy │ │ ├── DefaultGenericOAuth2ProviderTest.groovy │ │ ├── DefaultGithubAccountRequestBuilderTest.groovy │ │ ├── DefaultGithubCreateProviderRequestBuilderTest.groovy │ │ ├── DefaultGithubProviderDataTest.groovy │ │ ├── DefaultGithubProviderTest.groovy │ │ ├── DefaultGoogleAccountRequestBuilderTest.groovy │ │ ├── DefaultGoogleCreateProviderRequestBuilderTest.groovy │ │ ├── DefaultGoogleProviderDataTest.groovy │ │ ├── DefaultGoogleProviderTest.groovy │ │ ├── DefaultLinkedInAccountRequestBuilderTest.groovy │ │ ├── DefaultLinkedInCreateProviderRequestBuilderTest.groovy │ │ ├── DefaultLinkedInProviderDataTest.groovy │ │ ├── DefaultLinkedInProviderTest.groovy │ │ ├── DefaultProviderAccountAccessTest.groovy │ │ ├── DefaultProviderAccountResultTest.groovy │ │ ├── DefaultProviderDataTest.groovy │ │ ├── DefaultProviderTest.groovy │ │ ├── DefaultSamlAccountRequestBuilderTest.groovy │ │ ├── DefaultSamlCreateProviderRequestBuilderTest.groovy │ │ ├── DefaultSamlProviderDataTest.groovy │ │ ├── DefaultSamlProviderTest.groovy │ │ ├── DefaultStormpathProviderTest.groovy │ │ ├── DefaultTwitterAccountRequestBuilderTest.groovy │ │ ├── DefaultTwitterCreateProviderRequestBuilderTest.groovy │ │ ├── DefaultTwitterProviderDataTest.groovy │ │ ├── DefaultTwitterProviderTest.groovy │ │ ├── IdentityProviderTypeTest.groovy │ │ ├── ProviderAccountResolverTest.groovy │ │ └── ProvidersTest.groovy │ │ ├── query │ │ ├── CollectionExpansionTest.groovy │ │ ├── DefaultDateExpressionFactoryTest.groovy │ │ ├── DefaultOptionsTest.groovy │ │ └── ExpansionTest.groovy │ │ ├── resource │ │ ├── AbstractResourceTest.groovy │ │ ├── AuditableResourceTest.groovy │ │ ├── ListPropertyTest.groovy │ │ └── StringPropertyTest.groovy │ │ ├── saml │ │ ├── DefaultAssertionConsumerServicePostEndpointTest.groovy │ │ ├── DefaultAttributeStatementMappingRuleTest.groovy │ │ ├── DefaultAttributeStatementMappingRulesTest.groovy │ │ ├── DefaultSamlIdpUrlBuilderTest.groovy │ │ ├── DefaultSamlPolicyTest.groovy │ │ ├── DefaultSamlServiceProviderMetadataTest.groovy │ │ ├── DefaultSamlServiceProviderTest.groovy │ │ ├── DefaultSsoInitiationEndpointTest.groovy │ │ ├── DefaultX509SigningCertTest.groovy │ │ └── SamlClaimsTest.groovy │ │ └── tenant │ │ ├── DefaultTenantCriteriaTest.groovy │ │ ├── DefaultTenantOptionsTest.groovy │ │ └── DefaultTenantTest.groovy │ ├── java │ └── com │ │ └── stormpath │ │ └── sdk │ │ └── impl │ │ ├── authc │ │ └── credentials │ │ │ ├── EnvironmentVariableCredentialsProviderTest.java │ │ │ ├── EnvironmentVariableFileCredentialsProviderTest.java │ │ │ ├── SystemPropertiesApiKeyCredentialsProviderTest.java │ │ │ └── SystemPropertyFileCredentialsProviderTest.java │ │ ├── config │ │ ├── EnvironmentVariablesPropertiesSourceTest.java │ │ └── TestStringResource.java │ │ └── resource │ │ ├── AuditableTestResource.java │ │ └── TestResource.java │ └── resources │ ├── credentials.txt │ ├── key.txt │ ├── stormpath.json │ ├── stormpath.properties │ └── stormpath.yaml ├── pom.xml ├── tck.sh └── tutorials ├── README.md ├── pom.xml ├── spring-boot ├── 00-the-basics │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── stormpath │ │ │ └── tutorial │ │ │ ├── Application.java │ │ │ └── controller │ │ │ └── HelloController.java │ │ └── resources │ │ ├── application.properties │ │ └── logback.xml ├── 01-some-access-controls │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── stormpath │ │ │ └── tutorial │ │ │ ├── Application.java │ │ │ └── controller │ │ │ └── HelloController.java │ │ └── resources │ │ ├── application.properties │ │ ├── logback.xml │ │ └── templates │ │ ├── fragments │ │ └── head.html │ │ ├── home.html │ │ └── restricted.html ├── 02-spring-security-ftw │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── stormpath │ │ │ └── tutorial │ │ │ ├── Application.java │ │ │ ├── config │ │ │ └── SpringSecurityWebAppConfig.java │ │ │ ├── controller │ │ │ ├── HelloController.java │ │ │ └── RestrictedErrorController.java │ │ │ └── service │ │ │ └── HelloService.java │ │ └── resources │ │ ├── application.properties │ │ ├── logback.xml │ │ └── templates │ │ ├── error.html │ │ ├── fragments │ │ └── head.html │ │ ├── home.html │ │ └── restricted.html ├── 03-spring-security-refined │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── stormpath │ │ │ └── tutorial │ │ │ ├── Application.java │ │ │ ├── config │ │ │ ├── Groups.java │ │ │ └── SpringSecurityWebAppConfig.java │ │ │ ├── controller │ │ │ ├── HelloController.java │ │ │ └── RestrictedErrorController.java │ │ │ └── service │ │ │ └── HelloService.java │ │ └── resources │ │ ├── application.properties │ │ ├── logback.xml │ │ └── templates │ │ ├── error.html │ │ ├── fragments │ │ └── head.html │ │ ├── home.html │ │ └── restricted.html ├── 04-a-finer-grain-of-control │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── stormpath │ │ │ └── tutorial │ │ │ ├── Application.java │ │ │ ├── config │ │ │ ├── Groups.java │ │ │ └── SpringSecurityWebAppConfig.java │ │ │ ├── controller │ │ │ ├── HelloController.java │ │ │ └── RestrictedErrorController.java │ │ │ └── service │ │ │ └── HelloService.java │ │ └── resources │ │ ├── application.properties │ │ ├── logback.xml │ │ └── templates │ │ ├── error.html │ │ ├── fragments │ │ └── head.html │ │ ├── home.html │ │ ├── restricted.html │ │ └── userdetails.html ├── 05-token-management │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── stormpath │ │ │ └── tutorial │ │ │ ├── Application.java │ │ │ ├── controller │ │ │ └── UserDetailsController.java │ │ │ └── model │ │ │ └── AccountInfo.java │ │ └── resources │ │ ├── application.properties │ │ ├── logback.xml │ │ └── static │ │ └── index.html └── pom.xml └── spring ├── 00-the-basics ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── stormpath │ │ └── tutorial │ │ ├── WebAppInitializer.java │ │ ├── config │ │ └── WebAppConfig.java │ │ └── controller │ │ └── HelloController.java │ ├── resources │ ├── application.properties │ └── logback.xml │ └── webapp │ └── WEB-INF │ └── web.xml ├── 01-some-access-controls ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── stormpath │ │ └── tutorial │ │ ├── WebAppInitializer.java │ │ ├── config │ │ └── WebAppConfig.java │ │ └── controller │ │ └── HelloController.java │ ├── resources │ ├── application.properties │ └── logback.xml │ └── webapp │ └── WEB-INF │ ├── jsp │ ├── home.jsp │ └── restricted.jsp │ └── web.xml ├── 02-spring-security-ftw ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── stormpath │ │ └── tutorial │ │ ├── WebAppInitializer.java │ │ ├── config │ │ └── SpringSecurityWebAppConfig.java │ │ ├── controller │ │ ├── ErrorController.java │ │ └── HelloController.java │ │ └── service │ │ └── HelloService.java │ ├── resources │ ├── application.properties │ └── logback.xml │ └── webapp │ └── WEB-INF │ ├── jsp │ ├── error.jsp │ ├── home.jsp │ └── restricted.jsp │ └── web.xml ├── 03-spring-security-refined ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── stormpath │ │ └── tutorial │ │ ├── WebAppInitializer.java │ │ ├── config │ │ ├── Groups.java │ │ └── SpringSecurityWebAppConfig.java │ │ ├── controller │ │ ├── ErrorController.java │ │ └── HelloController.java │ │ └── service │ │ └── HelloService.java │ ├── resources │ ├── application.properties │ └── logback.xml │ └── webapp │ └── WEB-INF │ ├── jsp │ ├── error.jsp │ ├── home.jsp │ └── restricted.jsp │ └── web.xml ├── 04-a-finer-grain-of-control ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── stormpath │ │ └── tutorial │ │ ├── WebAppInitializer.java │ │ ├── config │ │ ├── Groups.java │ │ └── SpringSecurityWebAppConfig.java │ │ ├── controller │ │ ├── ErrorController.java │ │ └── HelloController.java │ │ └── service │ │ └── HelloService.java │ ├── resources │ ├── application.properties │ └── logback.xml │ └── webapp │ └── WEB-INF │ ├── jsp │ ├── error.jsp │ ├── home.jsp │ ├── restricted.jsp │ └── userdetails.jsp │ └── web.xml ├── 05-token-management ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── stormpath │ │ └── tutorial │ │ ├── WebAppInitializer.java │ │ ├── config │ │ ├── SpringSecurityWebAppConfig.java │ │ └── WebAppConfig.java │ │ ├── controller │ │ └── UserDetailsController.java │ │ └── model │ │ └── AccountInfo.java │ ├── resources │ ├── application.properties │ └── logback.xml │ └── webapp │ ├── WEB-INF │ └── web.xml │ └── static │ └── index.html └── pom.xml /.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | build 3 | .gradle 4 | .idea 5 | .clover 6 | *.ipr 7 | *.iws 8 | *.iml 9 | .DS_Store 10 | .project 11 | .settings 12 | .classpath 13 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "docs/source/_themes/stormpath"] 2 | path = docs/source/_themes/stormpath 3 | url = https://github.com/stormpath/stormpath-sphinx-theme.git 4 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: java 2 | dist: precise 3 | addons: 4 | apt: 5 | packages: 6 | - xsltproc 7 | before_install: 8 | - source ./ci/before_install.sh 9 | - source ./ci/stormpath_env.sh 10 | install: 11 | - ./ci/install.sh 12 | script: 13 | - ./ci/build.sh 14 | after_success: 15 | - ./ci/after_success.sh 16 | notifications: 17 | slack: 18 | secure: INiA7V4aXvimkImaErVH94ZSmFNuOgun9aurmf3BiE2Qq0EfNiEaWK9pp6hfkv+wSls4LXNDLaYVzdoMECVLh+Dv9VLHIABnaNEmMStXUlyZ+sOpdayl/47gnNr0G1cr06eqbikGVqWtQaxDz2Psaejq2D/6WYw5Vnqk4BjWQHw= 19 | 20 | matrix: 21 | include: 22 | - os: linux 23 | sudo: required 24 | jdk: openjdk7 25 | - os: linux 26 | sudo: false 27 | dist: precise 28 | jdk: oraclejdk7 29 | - os: linux 30 | sudo: false 31 | dist: precise 32 | jdk: oraclejdk8 -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/account/AccountLinkList.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.account; 2 | 3 | 4 | import com.stormpath.sdk.resource.CollectionResource; 5 | 6 | /** 7 | * A {@link CollectionResource} containing {@link AccountLink} instances. 8 | * 9 | * @since 1.1.0 10 | */ 11 | public interface AccountLinkList extends CollectionResource { 12 | } 13 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/account/AccountLinker.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.account; 2 | 3 | /** 4 | * Implemented by any account store type that has an AccountLinkingPolicy. 5 | * 6 | * @since 1.1.0 7 | */ 8 | public interface AccountLinker { 9 | 10 | /** 11 | * Returns the {@link AccountLinkingPolicy accountLinkingPolicy} of 12 | * the {@link com.stormpath.sdk.directory.AccountStore accountStore} 13 | * 14 | * @return the {@link AccountLinkingPolicy accountLinkingPolicy} of 15 | * the {@link com.stormpath.sdk.directory.AccountStore accountStore} 16 | */ 17 | AccountLinkingPolicy getAccountLinkingPolicy(); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/account/AccountLinkingStatus.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.account; 2 | 3 | /** 4 | * An {@code AccountLinkingStatus} represents whether Account Linking is ENABLED or DISABLED. 5 | * 6 | * @since 1.1.0 7 | */ 8 | public enum AccountLinkingStatus { 9 | 10 | /** 11 | * When ENABLED, the AccountLinking features (manual linking, automatic provisioning and linking) 12 | * are available for the Application/Organization 13 | * @see AccountLinkingPolicy 14 | */ 15 | ENABLED, 16 | 17 | /** 18 | * When DISABLED, AccountLinking features (manual linking, automatic provisioning and linking) 19 | * are not available for the Application/Organization 20 | * @see AccountLinkingPolicy 21 | */ 22 | DISABLED 23 | } 24 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/application/OAuthApplication.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.application; 2 | 3 | /** 4 | * Marks an Application as supporting OAuth and adds required methods for handling tokens. 5 | */ 6 | public interface OAuthApplication extends Application, OAuthAuthenticator { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/application/webconfig/ChangePasswordConfig.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.application.webconfig; 17 | 18 | /** 19 | * @since 1.2.0 20 | */ 21 | public interface ChangePasswordConfig extends WebFeatureConfig { 22 | 23 | } 24 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/application/webconfig/ForgotPasswordConfig.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.application.webconfig; 17 | 18 | /** 19 | * @since 1.2.0 20 | */ 21 | public interface ForgotPasswordConfig extends WebFeatureConfig { 22 | 23 | } 24 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/authc/OktaAuthNAuthenticator.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.authc; 2 | 3 | import com.stormpath.sdk.account.Account; 4 | import com.stormpath.sdk.oauth.AccessToken; 5 | import com.stormpath.sdk.oauth.OAuthGrantRequestAuthenticationResult; 6 | import com.stormpath.sdk.oauth.OAuthRefreshTokenRequestAuthenticator; 7 | import com.stormpath.sdk.okta.TokenIntrospectResponse; 8 | import com.stormpath.sdk.provider.ProviderAccountRequest; 9 | import com.stormpath.sdk.provider.ProviderAccountResult; 10 | import com.stormpath.sdk.resource.Resource; 11 | 12 | /** 13 | * 14 | */ 15 | public interface OktaAuthNAuthenticator extends Resource { 16 | 17 | AuthenticationResult authenticate(AuthenticationRequest request); 18 | 19 | ProviderAccountResult getAccount(ProviderAccountRequest providerAccountRequest); 20 | 21 | Account getAccountByToken(String accountToken); 22 | } 23 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/cache/OktaCacheable.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.cache; 2 | 3 | /** 4 | * Marker interface to enable caching for Okta Response objects. Typically this API will ONLY cache 5 | * objects that have an 'href' property (which Okta responses do NOT have) 6 | */ 7 | public interface OktaCacheable { 8 | } 9 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/client/PairedApiKey.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.client; 2 | 3 | import com.stormpath.sdk.api.ApiKey; 4 | 5 | /** 6 | * Created for internal implementation purposes only. Please do not use. 7 | */ 8 | public interface PairedApiKey extends ApiKey { 9 | 10 | ApiKey getSecondaryApiKey(); 11 | 12 | void setSecondaryApiKey(ApiKey secondary); 13 | } 14 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/directory/AccountStore.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.directory; 17 | 18 | import com.stormpath.sdk.resource.Resource; 19 | 20 | /** 21 | * @since 0.9 22 | */ 23 | public interface AccountStore extends Resource { 24 | 25 | void accept(AccountStoreVisitor visitor); 26 | } 27 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/directory/CreateDirectoryRequest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.directory; 17 | 18 | import com.stormpath.sdk.provider.Provider; 19 | 20 | public interface CreateDirectoryRequest { 21 | 22 | Directory getDirectory(); 23 | 24 | Provider getProvider(); 25 | 26 | } 27 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/directory/OktaPasswordPolicy.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.directory; 2 | 3 | import com.stormpath.sdk.resource.Resource; 4 | 5 | import java.util.Date; 6 | import java.util.Map; 7 | 8 | public interface OktaPasswordPolicy extends Resource { 9 | 10 | String getType(); 11 | String getId(); 12 | String getStatus(); 13 | String getName(); 14 | String getDescription(); 15 | int getPriority(); 16 | boolean getSystem(); 17 | Map getConditions(); 18 | Date getCreated(); 19 | Date getLastUpdated(); 20 | Map getSettings(); 21 | Map getDelegation(); 22 | Map getRules(); 23 | } 24 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/directory/OktaPasswordPolicyList.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.directory; 2 | 3 | import com.stormpath.sdk.resource.CollectionResource; 4 | 5 | public interface OktaPasswordPolicyList extends CollectionResource { 6 | } 7 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/idsite/IdSiteResultStatus.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.idsite; 17 | 18 | /** 19 | * Enumeration identifying the possible results of an Id Site invocation. 20 | * 21 | * @since 1.1.0 22 | */ 23 | public enum IdSiteResultStatus { 24 | 25 | REGISTERED, AUTHENTICATED, LOGOUT; 26 | 27 | } 28 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/lang/BiPredicate.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.lang; 2 | 3 | /** 4 | * Represents a predicate (boolean-valued function) of two arguments. This is mostly for internal development needs 5 | * to allow for certain JDK 8 functionality in a JDK 7 environment. 6 | * 7 | * @param 8 | * @param 9 | * @since 1.0.0 10 | * @see JDK 8 BiPredicate 11 | */ 12 | public interface BiPredicate { 13 | 14 | boolean test(T t, U u); 15 | } 16 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/lang/InstantiationException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.lang; 17 | 18 | /** 19 | * @since 0.1 20 | */ 21 | public class InstantiationException extends RuntimeException { 22 | 23 | public InstantiationException(String s, Throwable t) { 24 | super(s, t); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/lang/RuntimeEnvironment.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.lang; 17 | 18 | /** 19 | * @since 1.3.0 20 | */ 21 | public interface RuntimeEnvironment { 22 | 23 | boolean isClassAvailable(String fqcn); 24 | 25 | } 26 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/mail/EmailRequest.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.mail; 2 | 3 | /** 4 | */ 5 | public interface EmailRequest { 6 | 7 | String getToAddress(); 8 | EmailRequest setToAddress(String email); 9 | 10 | String getToDisplayName(); 11 | EmailRequest setToDisplayName(String displayName); 12 | 13 | String getToken(); 14 | EmailRequest setToken(String token); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/mail/EmailService.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.mail; 2 | 3 | /** 4 | * 5 | */ 6 | public interface EmailService { 7 | 8 | /** 9 | * Sends an email based on an EmailRequest based on a template. 10 | *

Implementation note: the {@code template} argument is typically used as template name, 11 | * but this is up to the implementation.

12 | * @param request email request info 13 | * @param template template to be used by the EmailService implementation 14 | */ 15 | void sendEmail(EmailRequest request, String template); 16 | 17 | void sendValidationEmail(EmailRequest request); 18 | 19 | void sendResetEmail(EmailRequest request); 20 | } 21 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/mail/EmailServiceBuilder.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.mail; 2 | 3 | import com.stormpath.sdk.lang.Classes; 4 | import com.stormpath.sdk.mail.config.EmailServiceConfig; 5 | import com.stormpath.sdk.mail.templates.TemplateRenderer; 6 | 7 | /** 8 | * 9 | */ 10 | public interface EmailServiceBuilder { 11 | 12 | EmailServiceBuilder INSTANCE = Classes.newInstance("com.stormpath.sdk.impl.mail.DefaultEmailServiceBuilder"); 13 | 14 | EmailServiceBuilder setTemplateRenderer(TemplateRenderer templateRenderer); 15 | 16 | EmailServiceBuilder setConfig(EmailServiceConfig config); 17 | 18 | EmailService build(); 19 | 20 | } 21 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/mail/config/EmailServiceConfig.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.mail.config; 2 | 3 | /** 4 | */ 5 | public interface EmailServiceConfig { 6 | 7 | int getTokenExpirationHours(); 8 | 9 | String getValidationTemplateConfig(); 10 | 11 | String getResetPasswordTemplateConfig(); 12 | 13 | String getHostName(); 14 | 15 | int getPort(); 16 | 17 | boolean isSSL(); 18 | 19 | boolean isSSLCheckServerIdentity(); 20 | 21 | boolean isTLS(); 22 | 23 | String getUsername(); 24 | 25 | String getPassword(); 26 | 27 | } 28 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/mail/templates/TemplateRenderRequest.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.mail.templates; 2 | 3 | import java.util.Map; 4 | 5 | /** 6 | * 7 | */ 8 | public interface TemplateRenderRequest { 9 | 10 | String getTemplate(); 11 | TemplateRenderRequest setTemplate(String template); 12 | 13 | Map getContext(); 14 | TemplateRenderRequest setContext(Map context); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/mail/templates/TemplateRenderer.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.mail.templates; 2 | 3 | /** 4 | */ 5 | public interface TemplateRenderer { 6 | 7 | T render(TemplateRenderRequest request); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/oauth/AccessTokenList.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.oauth; 17 | 18 | import com.stormpath.sdk.resource.CollectionResource; 19 | 20 | /** 21 | * A {@link CollectionResource} containing {@link AccessToken} instances. 22 | */ 23 | public interface AccessTokenList extends CollectionResource { 24 | } 25 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/oauth/IdSiteAuthenticatorFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.oauth; 17 | 18 | /** 19 | * @since 1.0.RC8.2 20 | */ 21 | public interface IdSiteAuthenticatorFactory extends OAuthRequestAuthenticatorFactory { 22 | 23 | } 24 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/oauth/OAuthStormpathSocialGrantRequestAuthentication.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.oauth; 2 | 3 | /** 4 | * This class represents a request for Stormpath to authenticate an Account and exchange its providerId and accessToken (or code) for a valid OAuth 2.0 access token. 5 | * Using stormpath_social grant type 6 | * 7 | * @since 1.1.0 8 | */ 9 | public interface OAuthStormpathSocialGrantRequestAuthentication extends OAuthGrantRequestAuthentication { 10 | 11 | String getProviderId(); 12 | 13 | String getAccessToken(); 14 | 15 | String getCode(); 16 | } 17 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/oauth/OAuthStormpathSocialGrantRequestAuthenticator.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.oauth; 2 | 3 | /** 4 | * @since 1.1.0 5 | */ 6 | public interface OAuthStormpathSocialGrantRequestAuthenticator extends OAuthRequestAuthenticator { 7 | } 8 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/oauth/OAuthStormpathSocialRequestAuthenticatorFactory.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.oauth; 2 | 3 | /** 4 | * @since 1.1.0 5 | */ 6 | public interface OAuthStormpathSocialRequestAuthenticatorFactory extends OAuthRequestAuthenticatorFactory { 7 | } 8 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/oauth/OktaAccessTokenResult.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.oauth; 2 | 3 | /** 4 | */ 5 | public interface OktaAccessTokenResult extends AccessTokenResult { 6 | } 7 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/okta/ApplicationCredentials.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.okta; 2 | 3 | import com.stormpath.sdk.resource.Resource; 4 | 5 | /** 6 | * 7 | */ 8 | public interface ApplicationCredentials extends Resource { 9 | 10 | String getClientId(); 11 | 12 | ApplicationCredentials setClientId(String clientId); 13 | 14 | String getClientSecret(); 15 | 16 | ApplicationCredentials setClientSecret(String clientSecret); 17 | } 18 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/okta/AuthNRequest.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.okta; 2 | 3 | import com.stormpath.sdk.resource.Resource; 4 | 5 | import java.util.Map; 6 | 7 | /** 8 | * Representation of /api/v1/authn 9 | */ 10 | public interface AuthNRequest extends Resource { 11 | 12 | String getUsername(); 13 | AuthNRequest setUsername(String username); 14 | 15 | String getPassword(); 16 | AuthNRequest setPassword(String password); 17 | 18 | Map getOptions(); 19 | AuthNRequest setOptions(Map options); 20 | 21 | } 22 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/okta/AuthNResult.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.okta; 2 | 3 | import com.stormpath.sdk.resource.Resource; 4 | 5 | import java.util.Map; 6 | 7 | /** 8 | * Representation of /api/v1/authn 9 | */ 10 | public interface AuthNResult extends Resource { 11 | 12 | String getSessionToken(); 13 | 14 | String getUserId(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/okta/ClientApiKeyResolver.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.okta; 2 | 3 | import com.stormpath.sdk.api.ApiKey; 4 | import com.stormpath.sdk.client.Client; 5 | 6 | /** 7 | * 8 | */ 9 | public interface ClientApiKeyResolver { 10 | 11 | 12 | ApiKey getClientApiKey(Client client, String baseHref, String applicationId); 13 | 14 | } 15 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/okta/OIDCKey.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.okta; 2 | 3 | import com.stormpath.sdk.resource.Resource; 4 | 5 | /** 6 | * 7 | */ 8 | public interface OIDCKey extends Resource { 9 | 10 | String getAlgorithm(); 11 | String getId(); 12 | String getType(); 13 | String getUse(); 14 | 15 | String get(String id); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/okta/OIDCKeysList.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.okta; 2 | 3 | import com.stormpath.sdk.resource.Resource; 4 | 5 | import java.util.Set; 6 | 7 | /** 8 | * 9 | */ 10 | public interface OIDCKeysList extends Resource { 11 | 12 | Set getKeys(); 13 | OIDCKey getKeyById(String keyId); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/okta/OIDCWellKnownResource.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.okta; 2 | 3 | import com.stormpath.sdk.resource.Resource; 4 | 5 | /** 6 | * Represents the response received from an OIDC .well-known endpoint 7 | */ 8 | public interface OIDCWellKnownResource extends Resource { 9 | 10 | String getAuthorizationEndpoint(); 11 | OIDCWellKnownResource setAuthorizationEndpoint(String authorizationEndpoint); 12 | 13 | String getIntrospectionEndpoint(); 14 | OIDCWellKnownResource setIntrospectionEndpoint(String introspectionEndpoint); 15 | 16 | String getJwksUri(); 17 | OIDCWellKnownResource setJwksUri(String jwksUri); 18 | 19 | String getRevocationEndpoint(); 20 | OIDCWellKnownResource setRevocationEndpoint(String revocationEndpoint); 21 | 22 | String getTokenEndpoint(); 23 | OIDCWellKnownResource setTokenEndpoint(String tokenEndpoint); 24 | 25 | } 26 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/okta/OktaActivateAccountResponse.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.okta; 2 | 3 | import com.stormpath.sdk.resource.Resource; 4 | 5 | /** 6 | */ 7 | public interface OktaActivateAccountResponse extends Resource { 8 | 9 | String getActivationUrl(); 10 | String getActivationToken(); 11 | } 12 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/okta/OktaApplicationConfigResource.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.okta; 2 | 3 | import com.stormpath.sdk.resource.Resource; 4 | 5 | /** 6 | */ 7 | public interface OktaApplicationConfigResource extends Resource { 8 | 9 | 10 | public String getAuthorizationServerId(); 11 | 12 | } 13 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/okta/OktaForgotPasswordRequest.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.okta; 2 | 3 | import com.stormpath.sdk.resource.Resource; 4 | 5 | /** 6 | * 7 | */ 8 | public interface OktaForgotPasswordRequest extends Resource { 9 | 10 | String getUsername(); 11 | OktaForgotPasswordRequest setUsername(String username); 12 | 13 | String getFactorType(); 14 | OktaForgotPasswordRequest setFactorType(String factorType); 15 | 16 | String getRelayState(); 17 | OktaForgotPasswordRequest setRelayState(String relayState); 18 | } 19 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/okta/OktaForgotPasswordResult.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.okta; 2 | 3 | import com.stormpath.sdk.resource.Resource; 4 | 5 | /** 6 | * 7 | */ 8 | public interface OktaForgotPasswordResult extends Resource { 9 | 10 | String getStatus(); 11 | String getFactorResult(); 12 | String getRelayState(); 13 | String getFactorType(); 14 | String getRecoveryType(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/okta/OktaIdentityProviderList.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.okta; 2 | 3 | import com.stormpath.sdk.provider.OktaProvider; 4 | import com.stormpath.sdk.resource.Resource; 5 | 6 | import java.util.Set; 7 | 8 | /** 9 | * 10 | */ 11 | public interface OktaIdentityProviderList extends Resource { 12 | 13 | 14 | Set getIdentityProviders(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/okta/OktaTokenRequest.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.okta; 2 | 3 | import com.stormpath.sdk.resource.Resource; 4 | 5 | /** 6 | * 7 | */ 8 | public interface OktaTokenRequest extends Resource { 9 | 10 | String getGrantType(); 11 | OktaTokenRequest setGrantType(String grantType); 12 | 13 | String getRedirectUri(); 14 | OktaTokenRequest setRedirectUri(String redirectUri); 15 | 16 | String getUsername(); 17 | OktaTokenRequest setUsername(String username); 18 | 19 | String getPassword(); 20 | OktaTokenRequest setPassword(String password); 21 | 22 | String getCode(); 23 | OktaTokenRequest setCode(String code); 24 | 25 | String getScope(); 26 | OktaTokenRequest setScope(String scope); 27 | 28 | } 29 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/okta/OktaTokenResponse.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.okta; 2 | 3 | import com.stormpath.sdk.oauth.TokenResponse; 4 | import com.stormpath.sdk.resource.Resource; 5 | 6 | /** 7 | * 8 | */ 9 | public interface OktaTokenResponse extends Resource, TokenResponse { 10 | 11 | String getAccessToken(); 12 | 13 | String getTokenType(); 14 | 15 | String getExpiresIn(); 16 | 17 | String getScope(); 18 | 19 | String getRefreshToken(); 20 | 21 | } 22 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/okta/OktaUserToApplicationMapping.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.okta; 2 | 3 | import com.stormpath.sdk.resource.Resource; 4 | 5 | /** 6 | */ 7 | public interface OktaUserToApplicationMapping extends Resource { 8 | 9 | String getId(); 10 | OktaUserToApplicationMapping setId(String id); 11 | 12 | String getScope(); 13 | OktaUserToApplicationMapping setScope(String scope); 14 | 15 | String getUsername(); 16 | OktaUserToApplicationMapping setUsername(String username); 17 | 18 | } 19 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/okta/TokenIntrospectRequest.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.okta; 2 | 3 | import com.stormpath.sdk.resource.Resource; 4 | 5 | /** 6 | * 7 | */ 8 | public interface TokenIntrospectRequest extends Resource { 9 | 10 | String getToken(); 11 | TokenIntrospectRequest setToken(String token); 12 | 13 | String getTokenTypeHint(); 14 | TokenIntrospectRequest setTokenTypeHint(String tokenTypeHint); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/okta/TokenIntrospectResponse.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.okta; 2 | 3 | import com.stormpath.sdk.oauth.AccessTokenResult; 4 | import com.stormpath.sdk.resource.Resource; 5 | 6 | import java.util.Date; 7 | 8 | /** 9 | * 10 | */ 11 | public interface TokenIntrospectResponse extends Resource, AccessTokenResult { 12 | 13 | boolean isActive(); 14 | // String getScope(); 15 | String getUsername(); 16 | Date getExpiresAt(); 17 | Date getIssuedAt(); 18 | String getSubject(); 19 | String getAudience(); 20 | String getIssuer(); 21 | String getJwtId(); 22 | String getTokenType(); 23 | String getClientId(); 24 | String getUid(); 25 | } 26 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/okta/UserStatus.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.okta; 2 | 3 | /** 4 | * An {@code UserStatus} represents the various states a user may be in. 5 | */ 6 | public enum UserStatus { 7 | 8 | STAGED, 9 | 10 | PROVISIONED, 11 | 12 | ACTIVE, 13 | 14 | RECOVERY, 15 | 16 | PASSWORD_EXPIRED, 17 | 18 | LOCKED_OUT, 19 | 20 | SUSPENDED, 21 | 22 | DEPROVISIONED 23 | } -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/phone/PhoneList.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.phone; 17 | 18 | import com.stormpath.sdk.resource.CollectionResource; 19 | 20 | /** 21 | * A {@link CollectionResource} containing {@link Phone} instances. 22 | * 23 | * @since 1.1.0 24 | */ 25 | public interface PhoneList extends CollectionResource { 26 | } -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/provider/FacebookProvider.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.provider; 17 | 18 | /** 19 | * A Facebook-specific {@link Provider} Resource. 20 | * 21 | * @since 1.0.beta 22 | */ 23 | public interface FacebookProvider extends OAuthProvider { 24 | } 25 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/provider/GenericOAuth2Provider.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.provider; 2 | 3 | /** 4 | * {@link Provider} Resource for any Generic OAuth2 provider. 5 | * 6 | * @since 1.3.0 7 | */ 8 | public interface GenericOAuth2Provider extends OAuthProvider { 9 | 10 | GenericOAuth2Provider setProviderId(String providerId); 11 | 12 | String getAuthorizationEndpoint(); 13 | 14 | String getTokenEndpoint(); 15 | 16 | String getResourceEndpoint(); 17 | 18 | AccessTokenType getAccessType(); 19 | } -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/provider/GenericOAuth2ProviderAccountRequestBuilder.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.provider; 2 | 3 | /** 4 | * {@link ProviderAccountRequestBuilder} interface for any Generic OAuth2 provider. 5 | * 6 | * @since 1.3.0 7 | */ 8 | public interface GenericOAuth2ProviderAccountRequestBuilder extends ProviderAccountRequestBuilder { 9 | 10 | /** 11 | * Setter for the provider id of the OAuth2 Provider (as provided when creating the provider directory). 12 | * 13 | * @param providerId the provider id of the OAuth2 Provider 14 | * @return the builder instance for method chaining. 15 | */ 16 | GenericOAuth2ProviderAccountRequestBuilder setProviderId(String providerId); 17 | } 18 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/provider/GenericOAuth2ProviderData.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.provider; 2 | 3 | /** 4 | * {@link ProviderData} Resource for any Generic OAuth2 provider. 5 | * 6 | * @since 1.3.0 7 | */ 8 | public interface GenericOAuth2ProviderData extends ProviderData { 9 | 10 | /** 11 | * Getter for the OAuth2 provider's access token. 12 | * 13 | * @return the OAuth2 provider's access token. 14 | */ 15 | String getAccessToken(); 16 | 17 | GenericOAuth2ProviderData setProviderId(String providerId); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/provider/GenericOAuth2ProviderRequestFactory.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.provider; 2 | 3 | /** 4 | * {@link ProviderRequestFactory} interface for any Generic OAuth2 provider. 5 | * 6 | * @since 1.3.0 7 | */ 8 | public interface GenericOAuth2ProviderRequestFactory extends ProviderRequestFactory { 9 | } 10 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/provider/GithubProvider.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.provider; 17 | 18 | /** 19 | * A Github-specific {@link com.stormpath.sdk.provider.Provider} Resource. 20 | * 21 | * @since 1.0.0 22 | */ 23 | public interface GithubProvider extends OAuthProvider { 24 | 25 | } 26 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/provider/GoogleProviderAccessType.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.provider; 2 | 3 | /** 4 | * A GoogleProviderAccessType represents the different available options for access_type when initiating 5 | * OAuth flow with Google. See 6 | * Google's documentation for details. 7 | * 8 | * @since 1.2.0 9 | */ 10 | public enum GoogleProviderAccessType { 11 | OFFLINE, ONLINE 12 | } 13 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/provider/GoogleProviderDisplay.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.provider; 2 | 3 | /** 4 | * A value specifying how the authorization server displays the authentication and consent user interface pages. These 5 | * values are specified, and accepted by the Google servers, but do not have any effect on its behavior 6 | * 7 | * @since 1.2.0 8 | */ 9 | public enum GoogleProviderDisplay { 10 | PAGE, POPUP, TOUCH, WAP 11 | } -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/provider/LinkedInProvider.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.provider; 17 | 18 | /** 19 | * A LinkedIn-specific {@link com.stormpath.sdk.provider.Provider} Resource. 20 | * 21 | * @since 1.0.0 22 | */ 23 | public interface LinkedInProvider extends RedirectableOAuthProvider { 24 | } 25 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/provider/OktaAccountRequestBuilder.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.provider; 2 | 3 | /** 4 | */ 5 | public interface OktaAccountRequestBuilder extends ProviderAccountRequestBuilder { 6 | 7 | /** 8 | * Setter for the Okta authorization code. 9 | * 10 | * @param code the Okta authorization code. 11 | * @return the Okta authorization code. 12 | * @since 2.0.0 13 | */ 14 | OktaAccountRequestBuilder setCode(String code); 15 | } 16 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/provider/OktaCreateProviderRequestBuilder.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.provider; 2 | 3 | /** 4 | * Okta-specific {@link com.stormpath.sdk.provider.ProviderRequestFactory} interface. 5 | */ 6 | public interface OktaCreateProviderRequestBuilder extends CreateProviderRequestBuilder { 7 | 8 | /** 9 | * Setter for the redirection Uri for your Okta Application. 10 | * 11 | * @param redirectUri the redirection Uri for your Okta. 12 | * @return the builder instance for method chaining. 13 | * @since 2.0.0 14 | */ 15 | OktaCreateProviderRequestBuilder setRedirectUri(String redirectUri); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/provider/OktaProvider.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.provider; 2 | 3 | /** 4 | */ 5 | public interface OktaProvider extends OAuthProvider { 6 | 7 | String getAuthorizeBaseUri(); 8 | 9 | String getIdp(); 10 | 11 | } 12 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/provider/OktaProviderAccountResult.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.provider; 2 | 3 | import com.stormpath.sdk.authc.AuthenticationResult; 4 | import com.stormpath.sdk.oauth.AccessTokenResult; 5 | import com.stormpath.sdk.oauth.TokenResponse; 6 | 7 | /** 8 | */ 9 | public interface OktaProviderAccountResult extends ProviderAccountResult, AuthenticationResult, AccessTokenResult { 10 | 11 | TokenResponse getTokenResponse(); 12 | } 13 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/provider/OktaProviderData.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.provider; 2 | 3 | /** 4 | * 5 | */ 6 | public interface OktaProviderData extends ProviderData { 7 | 8 | /** 9 | * Getter for the Okta code. 10 | * 11 | * @return the Okta code. 12 | */ 13 | String getCode(); 14 | } 15 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/provider/OktaRequestFactory.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.provider; 2 | 3 | /** 4 | */ 5 | public interface OktaRequestFactory extends ProviderRequestFactory { 6 | } 7 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/provider/TwitterAccountRequestBuilder.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.provider; 2 | 3 | /** 4 | * Twitter's specific {@link ProviderAccountRequestBuilder} interface. 5 | * 6 | * @since 1.3.0 7 | */ 8 | public interface TwitterAccountRequestBuilder extends ProviderAccountRequestBuilder { 9 | 10 | /** 11 | * Setter for the Provider App access token. 12 | * 13 | * @param accessToken the Provider App access token. 14 | * @return the builder instance for method chaining. 15 | */ 16 | TwitterAccountRequestBuilder setAccessTokenSecret(String accessToken); 17 | } -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/provider/TwitterCreateProviderRequestBuilder.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.provider; 2 | 3 | /** 4 | * Twitter's specific {@link CreateProviderRequestBuilder} interface. 5 | * 6 | * @since 1.3.0 7 | */ 8 | public interface TwitterCreateProviderRequestBuilder extends CreateProviderRequestBuilder { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/provider/TwitterProvider.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.provider; 2 | 3 | /** 4 | * A Twitter-specific {@link Provider} Resource. 5 | * 6 | * @since 1.3.0 7 | */ 8 | public interface TwitterProvider extends OAuthProvider { 9 | } 10 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/provider/TwitterProviderData.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.provider; 2 | 3 | /** 4 | * Twitter-specific {@link com.stormpath.sdk.provider.ProviderData} Resource. 5 | * 6 | * @since 1.3.0 7 | */ 8 | public interface TwitterProviderData extends ProviderData { 9 | 10 | /** 11 | * Getter for the Twitter access token. 12 | * 13 | * @return the Twitter access token. 14 | */ 15 | String getAccessToken(); 16 | 17 | /** 18 | * Getter for the Twitter access token secret. 19 | * 20 | * @return the Twitter access token secret. 21 | */ 22 | String getAccessTokenSecret(); 23 | 24 | } 25 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/provider/TwitterRequestFactory.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.provider; 2 | 3 | /** 4 | * Twitter-specific {@link ProviderRequestFactory} interface. 5 | * 6 | * @since 1.3.0 7 | */ 8 | public interface TwitterRequestFactory extends ProviderRequestFactory { 9 | } 10 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/provider/saml/StormpathProvider.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.provider.saml; 17 | 18 | import com.stormpath.sdk.provider.Provider; 19 | 20 | /** 21 | * @since 1.0.0 22 | */ 23 | public interface StormpathProvider extends Provider { 24 | } 25 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/resource/Deletable.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.resource; 17 | 18 | /** 19 | * @since 0.8 20 | */ 21 | public interface Deletable { 22 | 23 | void delete(); 24 | } 25 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/resource/Resource.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.resource; 17 | 18 | /** 19 | * @since 0.1 20 | */ 21 | public interface Resource { 22 | 23 | String getHref(); 24 | } 25 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/resource/Saveable.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.resource; 17 | 18 | /** 19 | * @since 0.2 20 | */ 21 | public interface Saveable { 22 | 23 | void save(); 24 | 25 | } 26 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/resource/VoidResource.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.resource; 2 | 3 | /** 4 | * A resource with no or an empty body. 5 | */ 6 | public interface VoidResource extends Resource { 7 | } 8 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/saml/SamlResponse.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.saml; 2 | 3 | import com.stormpath.sdk.resource.Resource; 4 | 5 | /** 6 | * A SamlResponse has a single field whose value is the base 64 encoded XML of a SAML response according to the SAML specification. 7 | * 8 | * @since 1.3.0 9 | */ 10 | public interface SamlResponse extends Resource { 11 | 12 | /** 13 | * Returns the base 64 encoded XML of the SAML response.. 14 | * 15 | * @return the base 64 encoded XML of the SAML response. 16 | */ 17 | String getValue(); 18 | } 19 | -------------------------------------------------------------------------------- /api/src/main/java/com/stormpath/sdk/saml/SsoInitiationEndpoint.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.saml; 17 | 18 | import com.stormpath.sdk.resource.Resource; 19 | 20 | /** 21 | * @since 1.0.RC8 22 | */ 23 | public interface SsoInitiationEndpoint extends Resource { 24 | 25 | } 26 | -------------------------------------------------------------------------------- /ci/after_success.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ -n "$BUILD_DOCS" ] && [ -n "$IS_RELEASE" ]; then 4 | ./ci/publish_docs.sh 5 | fi 6 | 7 | if [ -n "$RUN_ITS" ]; then 8 | ./ci/publish_coverage_report.sh 9 | fi 10 | -------------------------------------------------------------------------------- /ci/build_docs.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | source ./ci/common.sh 4 | 5 | # Update the path if scms is not available 6 | command -v scms >/dev/null 2>&1 || export PATH="$HOME/usr/local/scms/current/bin:$PATH" 7 | 8 | info "Generating guides..." 9 | git submodule init 10 | git submodule update 11 | (cd docs && ./build.sh &> $WORKDIR/target/guides.log) & 12 | PID=$! 13 | show_spinner "$PID" 14 | 15 | wait $PID ## sets exit code from command 16 | EXIT_CODE=$? 17 | 18 | if [ "$EXIT_CODE" -ne 0 ]; then 19 | error "Error generating guides" 20 | cat $WORKDIR/target/guides.log 21 | exit $EXIT_CODE 22 | fi 23 | 24 | info "Generating JavaDocs..." 25 | (mvn -s ci/settings.xml javadoc:aggregate -P travis-docs &> $WORKDIR/target/javadocs.log) & 26 | PID=$! 27 | 28 | show_spinner "$PID" 29 | 30 | wait $PID ## sets exit code from command 31 | EXIT_CODE=$? 32 | 33 | if [ "$EXIT_CODE" -ne 0 ]; then 34 | error "Error generating JavaDocs" 35 | cat $WORKDIR/target/javadocs.log 36 | exit $EXIT_CODE 37 | fi 38 | -------------------------------------------------------------------------------- /ci/common.sh: -------------------------------------------------------------------------------- 1 | WORKDIR=$PWD 2 | 3 | RED="\e[31m" 4 | GREEN="\e[32m" 5 | YELLOW="\e[33m" 6 | NORMAL="\e[0m" 7 | 8 | show_spinner() 9 | { 10 | local -r pid="${1}" 11 | local -r delay='1m' 12 | local spinstr='\|/-' 13 | local temp 14 | while ps a | awk '{print $1}' | grep -q "${pid}"; do 15 | echo "Still running... ¯\_(ツ)_/¯" 16 | sleep "${delay}" 17 | done 18 | } 19 | 20 | function error() { 21 | echo -e "$RED-------> $1 $NORMAL" 22 | } 23 | 24 | function info() { 25 | echo -e "$GREEN-------> $1 $NORMAL" 26 | } 27 | 28 | if [ ! -d target ]; then 29 | mkdir target 30 | fi 31 | 32 | -------------------------------------------------------------------------------- /ci/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | source ./ci/common.sh 4 | 5 | if [ -n "$BUILD_DOCS" ]; then 6 | info "Installing scms..." 7 | ./ci/install_scms.sh $> $WORKDIR/target/install_scms.log 8 | EXIT_CODE=$? 9 | if [ "$EXIT_CODE" -ne 0 ]; then 10 | error "Error installing SCMS" 11 | cat $WORKDIR/target/install_scms.log 12 | exit $EXIT_CODE 13 | fi 14 | 15 | info "Installing Sphinx..." 16 | pip -q install --user -r ./ci/requirements.txt &> $WORKDIR/target/pip.log 17 | EXIT_CODE=$? 18 | if [ "$EXIT_CODE" -ne 0 ]; then 19 | error "Error installing Sphinx" 20 | cat $WORKDIR/target/pip.log 21 | exit $EXIT_CODE 22 | fi 23 | fi 24 | 25 | if [ -n "RUN_ITS" ]; then 26 | info "Installing AWS CLI..." 27 | ./ci/install_aws_cli.sh $> $WORKDIR/target/aws-cli.log 28 | EXIT_CODE=$? 29 | if [ "$EXIT_CODE" -ne 0 ]; then 30 | error "Error installing AWS CLI" 31 | cat $WORKDIR/target/aws-cli.log 32 | exit $EXIT_CODE 33 | fi 34 | fi 35 | 36 | -------------------------------------------------------------------------------- /ci/install_aws_cli.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | #mkdir -p "$HOME/usr/local/aws/bin" 4 | #curl -s "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip" 5 | #unzip awscli-bundle.zip 6 | #./awscli-bundle/install -i "$HOME/usr/local/aws" -b "$HOME/usr/local/bin/aws" 7 | pip install --user awscli 8 | export PATH=$PATH:$HOME/.local/bin -------------------------------------------------------------------------------- /ci/install_scms.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | SCMS_VERSION="0.3.0" 4 | 5 | mkdir -p "$HOME/usr/local/scms" 6 | curl -s "http://repo.maven.apache.org/maven2/com/leshazlewood/scms/scms/$SCMS_VERSION/scms-$SCMS_VERSION.zip" -o scms.zip 7 | unzip scms.zip -d "$HOME/usr/local/scms" 8 | ln -s "$HOME/usr/local/scms/scms-$SCMS_VERSION" "$HOME/usr/local/scms/current" 9 | export PATH="$HOME/usr/local/scms/current/bin:$PATH" 10 | -------------------------------------------------------------------------------- /ci/junit-errors-to-stdout.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | source ./ci/common.sh 4 | 5 | ## XML files aren't being produced, so for now - just output the log file 6 | 7 | cat $WORKDIR/target/tests.log 8 | 9 | #echo 'Formatting results...' 10 | #FILES=$(find "$WORKDIR" -path '*/target/*-reports/junitreports/*.xml' | xargs --no-run-if-empty grep -L "failures=\"0\"") 11 | #FILES="$FILES $(find "$WORKDIR" -path '*/target/*-reports/junitreports/*.xml' | xargs --no-run-if-empty grep -L "errors=\"0\"")" 12 | #if [ -n "$FILES" ]; then 13 | # for file in $FILES; do 14 | # if [ -f "$file" ]; then 15 | # echo -e "\n\n=====================================================" 16 | # xsltproc "./ci/junit-xml-format-errors.xsl" "$file" | grep --color -E "at com\.stormpath.*$|$" 17 | # fi 18 | # done 19 | # echo -e "\n=====================================================\n\n" 20 | #fi 21 | -------------------------------------------------------------------------------- /ci/publish_coverage_report.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | source ./ci/common.sh 4 | 5 | source ./env.sh 6 | 7 | export PATH="$HOME/usr/local/bin:$PATH" 8 | 9 | info "Publishing coverage results to S3" 10 | aws s3 sync --quiet clover/target/site/clover s3://jsdk-clover-results 11 | -------------------------------------------------------------------------------- /ci/requirements.txt: -------------------------------------------------------------------------------- 1 | alabaster==0.7.7 2 | argh==0.26.1 3 | Babel==2.2.0 4 | backports-abc==0.4 5 | backports.ssl-match-hostname==3.5.0.1 6 | certifi==2016.2.28 7 | docutils==0.12 8 | Jinja2==2.8 9 | livereload==2.4.1 10 | MarkupSafe==0.23 11 | pathtools==0.1.2 12 | port-for==0.3.1 13 | Pygments==2.1.3 14 | pytz==2016.1 15 | PyYAML==3.11 16 | singledispatch==3.4.0.3 17 | six==1.10.0 18 | snowballstemmer==1.2.1 19 | Sphinx==1.3.6 20 | sphinx-autobuild==0.6.0 21 | tornado==4.3 22 | watchdog==0.8.3 23 | -------------------------------------------------------------------------------- /ci/settings.xml: -------------------------------------------------------------------------------- 1 | 2 | securecentral 3 | 4 | true 5 | 6 | 8 | 9 | 10 | central 11 | https://repo1.maven.org/maven2 12 | 13 | true 14 | 15 | 16 | 17 | 18 | 19 | central 20 | https://repo1.maven.org/maven2 21 | 22 | true 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /ci/transfer_logs_to_s3.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | source ./ci/common.sh 4 | 5 | source ./env.sh 6 | 7 | export PATH="$HOME/usr/local/bin:$PATH" 8 | 9 | S3_BASE_BUCKET=s3://jsdk-travis-ci-build-logs 10 | TSTAMP=`date "+%Y-%m-%d_%H-%M-%S"` 11 | S3_BUCKET="$S3_BASE_BUCKET/$TSTAMP-$TRAVIS_JOB_ID" 12 | 13 | echo "writing logs to: $S3_BUCKET/tests.log" 14 | echo "you can access the log at: http://jsdk-travis-ci-build-logs.s3-website-us-east-1.amazonaws.com/$TSTAMP-$TRAVIS_JOB_ID/tests.log" 15 | 16 | aws s3 mb $S3_BUCKET 17 | aws s3 cp "$WORKDIR/target/tests.log" $S3_BUCKET/tests.log 18 | -------------------------------------------------------------------------------- /docs/build.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 4 | CWD="$(pwd -P)" 5 | 6 | if [ -z "$1" ]; then 7 | targets=( 'servlet' 'spring' 'springboot' 'sczuul' ) 8 | else 9 | targets=( "$1" ) 10 | fi 11 | 12 | command -v scms >/dev/null 2>&1 || { echo >&2 "The docs/build.sh requires scms to be installed. Aborting."; exit 1; } 13 | command -v sphinx-build >/dev/null 2>&1 || { echo >&2 "The docs/build.sh requires sphinx to be installed. Aborting."; exit 1; } 14 | 15 | cd "$SCRIPT_DIR" 16 | 17 | for target in "${targets[@]}"; do 18 | echo Working on building: $target 19 | scms -e "$target" "$SCRIPT_DIR/build/$target" 20 | cd "$SCRIPT_DIR/build/$target" 21 | sphinx-build -n -b html -E -d build/doctrees source -t "$target" build/html 22 | cd "$SCRIPT_DIR" 23 | done 24 | 25 | cd "$CWD" 26 | -------------------------------------------------------------------------------- /docs/source/_static/console-application-href.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-java/72d5d21afbb85815d2e10c73bc2545ca55204561/docs/source/_static/console-application-href.png -------------------------------------------------------------------------------- /docs/source/_static/console-applications-ann.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-java/72d5d21afbb85815d2e10c73bc2545ca55204561/docs/source/_static/console-applications-ann.png -------------------------------------------------------------------------------- /docs/source/_static/console-directories-ann.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-java/72d5d21afbb85815d2e10c73bc2545ca55204561/docs/source/_static/console-directories-ann.png -------------------------------------------------------------------------------- /docs/source/_static/console-directory-ann.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-java/72d5d21afbb85815d2e10c73bc2545ca55204561/docs/source/_static/console-directory-ann.png -------------------------------------------------------------------------------- /docs/source/_static/console-directory-workflows-ann.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-java/72d5d21afbb85815d2e10c73bc2545ca55204561/docs/source/_static/console-directory-workflows-ann.png -------------------------------------------------------------------------------- /docs/source/_static/console-directory-workflows-pwreset-success-email.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-java/72d5d21afbb85815d2e10c73bc2545ca55204561/docs/source/_static/console-directory-workflows-pwreset-success-email.png -------------------------------------------------------------------------------- /docs/source/_static/console-directory-workflows-pwreset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-java/72d5d21afbb85815d2e10c73bc2545ca55204561/docs/source/_static/console-directory-workflows-pwreset.png -------------------------------------------------------------------------------- /docs/source/_static/facebook-new-project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-java/72d5d21afbb85815d2e10c73bc2545ca55204561/docs/source/_static/facebook-new-project.png -------------------------------------------------------------------------------- /docs/source/_static/facebook-url-settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-java/72d5d21afbb85815d2e10c73bc2545ca55204561/docs/source/_static/facebook-url-settings.png -------------------------------------------------------------------------------- /docs/source/_static/forgot-password-change.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-java/72d5d21afbb85815d2e10c73bc2545ca55204561/docs/source/_static/forgot-password-change.png -------------------------------------------------------------------------------- /docs/source/_static/forgot-password-email.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-java/72d5d21afbb85815d2e10c73bc2545ca55204561/docs/source/_static/forgot-password-email.png -------------------------------------------------------------------------------- /docs/source/_static/forgot-result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-java/72d5d21afbb85815d2e10c73bc2545ca55204561/docs/source/_static/forgot-result.png -------------------------------------------------------------------------------- /docs/source/_static/forgot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-java/72d5d21afbb85815d2e10c73bc2545ca55204561/docs/source/_static/forgot.png -------------------------------------------------------------------------------- /docs/source/_static/google-enable-login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-java/72d5d21afbb85815d2e10c73bc2545ca55204561/docs/source/_static/google-enable-login.png -------------------------------------------------------------------------------- /docs/source/_static/google-new-project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-java/72d5d21afbb85815d2e10c73bc2545ca55204561/docs/source/_static/google-new-project.png -------------------------------------------------------------------------------- /docs/source/_static/google-oauth-settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-java/72d5d21afbb85815d2e10c73bc2545ca55204561/docs/source/_static/google-oauth-settings.png -------------------------------------------------------------------------------- /docs/source/_static/group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-java/72d5d21afbb85815d2e10c73bc2545ca55204561/docs/source/_static/group.png -------------------------------------------------------------------------------- /docs/source/_static/idsite-config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-java/72d5d21afbb85815d2e10c73bc2545ca55204561/docs/source/_static/idsite-config.png -------------------------------------------------------------------------------- /docs/source/_static/idsite-login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-java/72d5d21afbb85815d2e10c73bc2545ca55204561/docs/source/_static/idsite-login.png -------------------------------------------------------------------------------- /docs/source/_static/linkedin-add-authorized-urls.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-java/72d5d21afbb85815d2e10c73bc2545ca55204561/docs/source/_static/linkedin-add-authorized-urls.gif -------------------------------------------------------------------------------- /docs/source/_static/linkedin-add-permissions.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-java/72d5d21afbb85815d2e10c73bc2545ca55204561/docs/source/_static/linkedin-add-permissions.gif -------------------------------------------------------------------------------- /docs/source/_static/linkedin-new-application.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-java/72d5d21afbb85815d2e10c73bc2545ca55204561/docs/source/_static/linkedin-new-application.gif -------------------------------------------------------------------------------- /docs/source/_static/linkedin-permissions-page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-java/72d5d21afbb85815d2e10c73bc2545ca55204561/docs/source/_static/linkedin-permissions-page.png -------------------------------------------------------------------------------- /docs/source/_static/login-changed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-java/72d5d21afbb85815d2e10c73bc2545ca55204561/docs/source/_static/login-changed.png -------------------------------------------------------------------------------- /docs/source/_static/login-page-facebook-permissions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-java/72d5d21afbb85815d2e10c73bc2545ca55204561/docs/source/_static/login-page-facebook-permissions.png -------------------------------------------------------------------------------- /docs/source/_static/login-page-facebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-java/72d5d21afbb85815d2e10c73bc2545ca55204561/docs/source/_static/login-page-facebook.png -------------------------------------------------------------------------------- /docs/source/_static/login-page-google-account.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-java/72d5d21afbb85815d2e10c73bc2545ca55204561/docs/source/_static/login-page-google-account.png -------------------------------------------------------------------------------- /docs/source/_static/login-page-google.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-java/72d5d21afbb85815d2e10c73bc2545ca55204561/docs/source/_static/login-page-google.png -------------------------------------------------------------------------------- /docs/source/_static/login-page-linkedin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-java/72d5d21afbb85815d2e10c73bc2545ca55204561/docs/source/_static/login-page-linkedin.png -------------------------------------------------------------------------------- /docs/source/_static/login-verified.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-java/72d5d21afbb85815d2e10c73bc2545ca55204561/docs/source/_static/login-verified.png -------------------------------------------------------------------------------- /docs/source/_static/login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-java/72d5d21afbb85815d2e10c73bc2545ca55204561/docs/source/_static/login.png -------------------------------------------------------------------------------- /docs/source/_static/password-changed-email.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-java/72d5d21afbb85815d2e10c73bc2545ca55204561/docs/source/_static/password-changed-email.png -------------------------------------------------------------------------------- /docs/source/_static/register-verify-email.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-java/72d5d21afbb85815d2e10c73bc2545ca55204561/docs/source/_static/register-verify-email.png -------------------------------------------------------------------------------- /docs/source/_static/register-verify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-java/72d5d21afbb85815d2e10c73bc2545ca55204561/docs/source/_static/register-verify.png -------------------------------------------------------------------------------- /docs/source/_static/register-with-birthday.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-java/72d5d21afbb85815d2e10c73bc2545ca55204561/docs/source/_static/register-with-birthday.png -------------------------------------------------------------------------------- /docs/source/_static/register.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-java/72d5d21afbb85815d2e10c73bc2545ca55204561/docs/source/_static/register.png -------------------------------------------------------------------------------- /docs/source/_static/social-login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-java/72d5d21afbb85815d2e10c73bc2545ca55204561/docs/source/_static/social-login.png -------------------------------------------------------------------------------- /docs/source/_static/theme_overrides.css: -------------------------------------------------------------------------------- 1 | .rst-footer-buttons { 2 | display:none; 3 | } -------------------------------------------------------------------------------- /docs/source/_static/user-custom-data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-java/72d5d21afbb85815d2e10c73bc2545ca55204561/docs/source/_static/user-custom-data.png -------------------------------------------------------------------------------- /docs/source/_static/user-no-custom-data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-java/72d5d21afbb85815d2e10c73bc2545ca55204561/docs/source/_static/user-no-custom-data.png -------------------------------------------------------------------------------- /docs/source/about_sczuul.rst: -------------------------------------------------------------------------------- 1 | The |project| is a drop-in plugin for `Spring Cloud Zuul`_ gateways that completely automates all user registration, 2 | login, authentication, authorization and other security workloads for your application within the gateway. 3 | 4 | This allows the Zuul gateway to perform all of this behavior so you don't have to add it to your applications! 5 | 6 | The gateway will ensure the appropriate user context is forwarded to any applications behind the gateway as a 7 | simple HTTP header that you can customize. 8 | 9 | .. _Spring Cloud Zuul: http://cloud.spring.io/spring-cloud-netflix/spring-cloud-netflix.html -------------------------------------------------------------------------------- /docs/source/appendix.rst: -------------------------------------------------------------------------------- 1 | .. _appendix: 2 | 3 | Appendix 4 | ======== 5 | 6 | .. toctree:: 7 | :maxdepth: 1 8 | 9 | #if( $servlet ) 10 | appendix/web-stormpath-properties 11 | #else 12 | appendix/default-stormpath-properties 13 | #end 14 | appendix/i18n-properties 15 | appendix/stormpath-css 16 | appendix/change-password 17 | appendix/forgot-password 18 | #if( $springboot or $sczuul ) 19 | appendix/head 20 | #end 21 | appendix/login 22 | appendix/register 23 | appendix/verify 24 | -------------------------------------------------------------------------------- /docs/source/appendix/change-password.rst: -------------------------------------------------------------------------------- 1 | #if( $springboot or $sczuul ) 2 | .. _change.html: 3 | 4 | /templates/stormpath/change-password.html 5 | ========================================= 6 | 7 | .. literalinclude:: ../../../../../extensions/spring/boot/stormpath-thymeleaf-spring-boot-starter/src/main/resources/templates/stormpath/change-password.html 8 | :language: html 9 | :linenos: 10 | #elseif( $spring or $servlet ) 11 | .. _change.jsp: 12 | 13 | /WEB-INF/jsp/stormpath/change-password.jsp 14 | ========================================== 15 | 16 | .. literalinclude:: ../../../../../extensions/servlet/src/main/resources/META-INF/resources/WEB-INF/jsp/stormpath/change-password.jsp 17 | :language: none 18 | :linenos: 19 | #end -------------------------------------------------------------------------------- /docs/source/appendix/default-stormpath-properties.rst: -------------------------------------------------------------------------------- 1 | .. _default.stormpath.properties: 2 | 3 | Default Stormpath Properties 4 | ============================ 5 | 6 | .. include:: spring-boot-core-properties.rst 7 | 8 | .. include:: spring-boot-web-properties.rst 9 | -------------------------------------------------------------------------------- /docs/source/appendix/forgot-password.rst: -------------------------------------------------------------------------------- 1 | #if( $springboot or $sczuul ) 2 | .. _forgot.html: 3 | 4 | /templates/stormpath/forgot-password.html 5 | ========================================= 6 | 7 | .. literalinclude:: ../../../../../extensions/spring/boot/stormpath-thymeleaf-spring-boot-starter/src/main/resources/templates/stormpath/forgot-password.html 8 | :language: html 9 | :linenos: 10 | #elseif( $spring or $servlet ) 11 | .. _forgot.jsp: 12 | 13 | /WEB-INF/jsp/stormpath/forgot-password.jsp 14 | ========================================== 15 | 16 | .. literalinclude:: ../../../../../extensions/servlet/src/main/resources/META-INF/resources/WEB-INF/jsp/stormpath/forgot-password.jsp 17 | :language: none 18 | :linenos: 19 | #end -------------------------------------------------------------------------------- /docs/source/appendix/head.rst: -------------------------------------------------------------------------------- 1 | .. _head.html: 2 | 3 | /templates/stormpath/head.html 4 | ============================== 5 | 6 | .. literalinclude:: ../../../../../extensions/spring/boot/stormpath-thymeleaf-spring-boot-starter/src/main/resources/templates/stormpath/head.html 7 | :language: html 8 | :linenos: 9 | -------------------------------------------------------------------------------- /docs/source/appendix/i18n-properties.rst: -------------------------------------------------------------------------------- 1 | .. _i18n.properties: 2 | 3 | i18n.properties 4 | =============== 5 | 6 | In stormpath-sdk-servlet-|version|.jar: ``/com/stormpath/sdk/servlet/i18n.properties`` 7 | 8 | .. literalinclude:: ../../../../../extensions/servlet/src/main/resources/com/stormpath/sdk/servlet/i18n.properties 9 | :language: properties 10 | -------------------------------------------------------------------------------- /docs/source/appendix/login.rst: -------------------------------------------------------------------------------- 1 | #if( $springboot or $sczuul ) 2 | .. _login.html: 3 | 4 | /templates/stormpath/login.html 5 | =============================== 6 | 7 | .. literalinclude:: ../../../../../extensions/spring/boot/stormpath-thymeleaf-spring-boot-starter/src/main/resources/templates/stormpath/login.html 8 | :language: html 9 | :linenos: 10 | #elseif( $spring or $servlet ) 11 | .. _login.jsp: 12 | 13 | /WEB-INF/jsp/stormpath/login.jsp 14 | ================================ 15 | 16 | .. literalinclude:: ../../../../../extensions/servlet/src/main/resources/META-INF/resources/WEB-INF/jsp/stormpath/login.jsp 17 | :language: none 18 | :linenos: 19 | #end 20 | -------------------------------------------------------------------------------- /docs/source/appendix/register.rst: -------------------------------------------------------------------------------- 1 | #if( $springboot or $sczuul ) 2 | .. _register.html: 3 | 4 | /templates/stormpath/register.html 5 | ================================== 6 | 7 | .. literalinclude:: ../../../../../extensions/spring/boot/stormpath-thymeleaf-spring-boot-starter/src/main/resources/templates/stormpath/register.html 8 | :language: html 9 | :linenos: 10 | #elseif( $spring or $servlet ) 11 | .. _register.jsp: 12 | 13 | /WEB-INF/jsp/stormpath/register.jsp 14 | =================================== 15 | 16 | .. literalinclude:: ../../../../../extensions/servlet/src/main/resources/META-INF/resources/WEB-INF/jsp/stormpath/register.jsp 17 | :language: none 18 | :linenos: 19 | #end -------------------------------------------------------------------------------- /docs/source/appendix/stormpath-css.rst: -------------------------------------------------------------------------------- 1 | .. _stormpath.css: 2 | 3 | stormpath.css 4 | ============= 5 | 6 | In stormpath-sdk-servlet-|version|.jar: ``/META-INF/resources/assets/css/stormpath.css`` 7 | 8 | .. literalinclude:: ../../../../../extensions/servlet/src/main/resources//META-INF/resources/assets/css/stormpath.css 9 | :language: css 10 | -------------------------------------------------------------------------------- /docs/source/appendix/verify.rst: -------------------------------------------------------------------------------- 1 | #if( $springboot or $sczuul ) 2 | .. _verify.html: 3 | 4 | /templates/stormpath/verify.html 5 | ================================ 6 | 7 | .. literalinclude:: ../../../../../extensions/spring/boot/stormpath-thymeleaf-spring-boot-starter/src/main/resources/templates/stormpath/verify.html 8 | :language: html 9 | :linenos: 10 | #elseif( $spring or $servlet ) 11 | .. _verify.jsp: 12 | 13 | /WEB-INF/jsp/stormpath/verify.jsp 14 | ================================= 15 | 16 | .. literalinclude:: ../../../../../extensions/servlet/src/main/resources/META-INF/resources/WEB-INF/jsp/stormpath/verify.jsp 17 | :language: none 18 | :linenos: 19 | #end -------------------------------------------------------------------------------- /docs/source/appendix/web-stormpath-properties.rst: -------------------------------------------------------------------------------- 1 | .. _web.stormpath.properties: 2 | 3 | web.stormpath.properties 4 | ======================== 5 | 6 | In stormpath-sdk-servlet-|version|.jar: ``/com/stormpath/sdk/servlet/config/web.stormpath.properties`` 7 | 8 | .. literalinclude:: ../../../../../extensions/servlet/src/main/resources/com/stormpath/sdk/servlet/config/web.stormpath.properties 9 | :language: properties 10 | -------------------------------------------------------------------------------- /docs/source/stormpath-spring-boot-circular-warning.txt: -------------------------------------------------------------------------------- 1 | .. ATTENTION:: 2 | 3 | You may encounter a circular redirect in your Google Chrome browser when you are in the process of developing your 4 | Spring Boot + Spring Security + Stormpath application. 5 | 6 | This is due to a known issue with Google Chrome whereby it aggressively caches ``302`` redirects. 7 | 8 | The solution is to clear cache or use an Icognito window while testing. 9 | 10 | `Here `_ a good post describing the issue and its solution further. 11 | 12 | **Note:** This will never occur in a production release environment. 13 | -------------------------------------------------------------------------------- /examples/quickstart/README.md: -------------------------------------------------------------------------------- 1 | Basic CLI Example 2 | ================= 3 | 4 | Run this example locally with the following Maven command: 5 | 6 | ``` bash 7 | $ mvn exec:java 8 | ``` 9 | -------------------------------------------------------------------------------- /examples/servlet/README.md: -------------------------------------------------------------------------------- 1 | Servlet Example 2 | =============== 3 | 4 | Run this example locally with the following Maven command: 5 | 6 | ``` bash 7 | $ mvn tomcat7:run 8 | ``` 9 | 10 | Then visit: http://localhost:8080 11 | 12 | Or simply deploy it Heroku with a click of a button! 13 | 14 | [![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/stormpath/heroku-war-runner&env\[GROUP_ID\]=com.stormpath.sdk&env\[ARTIFACT_ID\]=stormpath-sdk-examples-servlet) 15 | -------------------------------------------------------------------------------- /examples/servlet/src/main/java/com/stormpath/sdk/examples/servlet/PostLoginHandler.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.examples.servlet; 2 | 3 | import com.stormpath.sdk.account.Account; 4 | import com.stormpath.sdk.servlet.mvc.WebHandler; 5 | import org.slf4j.Logger; 6 | import org.slf4j.LoggerFactory; 7 | 8 | import javax.servlet.http.HttpServletRequest; 9 | import javax.servlet.http.HttpServletResponse; 10 | 11 | /** 12 | * @since 1.0.0 13 | */ 14 | public class PostLoginHandler implements WebHandler { 15 | private static final Logger log = LoggerFactory.getLogger(PostLoginHandler.class); 16 | 17 | @Override 18 | public boolean handle(HttpServletRequest request, HttpServletResponse response, Account account) { 19 | log.debug("----> PostLoginHandler"); 20 | return true; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /examples/servlet/src/main/java/com/stormpath/sdk/examples/servlet/PostRegisterHandler.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.examples.servlet; 2 | 3 | import com.stormpath.sdk.account.Account; 4 | import com.stormpath.sdk.servlet.mvc.WebHandler; 5 | import org.slf4j.Logger; 6 | import org.slf4j.LoggerFactory; 7 | 8 | import javax.servlet.http.HttpServletRequest; 9 | import javax.servlet.http.HttpServletResponse; 10 | 11 | /** 12 | * @since 1.0.0 13 | */ 14 | public class PostRegisterHandler implements WebHandler { 15 | private static final Logger log = LoggerFactory.getLogger(PostRegisterHandler.class); 16 | 17 | @Override 18 | public boolean handle(HttpServletRequest request, HttpServletResponse response, Account account) { 19 | log.debug("----> PostRegisterHandler"); 20 | return true; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /examples/servlet/src/main/java/com/stormpath/sdk/examples/servlet/PreLoginHandler.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.examples.servlet; 2 | 3 | import com.stormpath.sdk.account.Account; 4 | import com.stormpath.sdk.servlet.mvc.WebHandler; 5 | import org.slf4j.Logger; 6 | import org.slf4j.LoggerFactory; 7 | 8 | import javax.servlet.http.HttpServletRequest; 9 | import javax.servlet.http.HttpServletResponse; 10 | 11 | /** 12 | * @since 1.0.0 13 | */ 14 | public class PreLoginHandler implements WebHandler { 15 | private static final Logger log = LoggerFactory.getLogger(PreLoginHandler.class); 16 | 17 | @Override 18 | public boolean handle(HttpServletRequest request, HttpServletResponse response, Account account) { 19 | log.debug("----> PreLoginHandler"); 20 | return true; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /examples/servlet/src/main/java/com/stormpath/sdk/examples/servlet/PreRegisterHandler.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.examples.servlet; 2 | 3 | import com.stormpath.sdk.account.Account; 4 | import com.stormpath.sdk.servlet.mvc.WebHandler; 5 | import org.slf4j.Logger; 6 | import org.slf4j.LoggerFactory; 7 | 8 | import javax.servlet.http.HttpServletRequest; 9 | import javax.servlet.http.HttpServletResponse; 10 | 11 | /** 12 | * @since 1.0.0 13 | */ 14 | public class PreRegisterHandler implements WebHandler { 15 | private static final Logger log = LoggerFactory.getLogger(PreRegisterHandler.class); 16 | 17 | @Override 18 | public boolean handle(HttpServletRequest request, HttpServletResponse response, Account account) { 19 | log.debug("----> PreRegisterHandler"); 20 | return true; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /examples/servlet/src/main/webapp/assets/css/style.css: -------------------------------------------------------------------------------- 1 | #welcome { 2 | margin-top: 6em; 3 | } 4 | 5 | #welcome li { 6 | font-size: 1.5em; 7 | } 8 | 9 | .register, .login, .dashboard { 10 | margin-top: 6em; 11 | } 12 | 13 | .register-fail, .login-fail { 14 | margin-bottom: 1em; 15 | } 16 | 17 | .login .last-p { 18 | margin-bottom: 2em; 19 | } 20 | 21 | .dashboard h2 { 22 | font-weight: bold; 23 | } 24 | 25 | .dashboard .data { 26 | color: #DF691A; 27 | font-weight: bold; 28 | } 29 | 30 | .jumbotron h1 { 31 | text-align: center; 32 | } 33 | 34 | .bigbutton { 35 | text-align: center; 36 | padding: 24px 48px; 37 | font-size: 24px; 38 | line-height: 1.33; 39 | border-radius: 0; 40 | } 41 | -------------------------------------------------------------------------------- /examples/servlet/src/main/webapp/assets/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-java/72d5d21afbb85815d2e10c73bc2545ca55204561/examples/servlet/src/main/webapp/assets/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /examples/servlet/src/main/webapp/assets/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-java/72d5d21afbb85815d2e10c73bc2545ca55204561/examples/servlet/src/main/webapp/assets/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /examples/servlet/src/main/webapp/assets/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-java/72d5d21afbb85815d2e10c73bc2545ca55204561/examples/servlet/src/main/webapp/assets/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /examples/spring-boot-default/README.md: -------------------------------------------------------------------------------- 1 | Spring Boot Web Example 2 | ======================= 3 | 4 | Run this example locally with the following Maven command: 5 | 6 | ``` bash 7 | $ mvn spring-boot:run 8 | ``` 9 | 10 | Then visit: http://localhost:8080 11 | 12 | Or simply deploy it Heroku with a click of a button! 13 | 14 | [![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/stormpath/heroku-spring-boot-runner&env\[GROUP_ID\]=com.stormpath.spring&env\[ARTIFACT_ID\]=stormpath-sdk-examples-spring-boot-default) 15 | -------------------------------------------------------------------------------- /examples/spring-boot-default/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2015 Stormpath, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | # If you have more than one application registered with Stormpath, you must specify which one 18 | # corresponds to this webapp: 19 | # 20 | #stormpath.application.href = https://api.stormpath.com/v1/applications/YOUR_APPLICATION_ID_HERE 21 | -------------------------------------------------------------------------------- /examples/spring-boot-webmvc-angular/README.md: -------------------------------------------------------------------------------- 1 | Spring Boot AngularJS Example 2 | ============================= 3 | 4 | Run this example locally with the following Maven command: 5 | 6 | ``` bash 7 | $ mvn spring-boot:run 8 | ``` 9 | 10 | Then visit: http://localhost:8080 11 | 12 | Or simply deploy it Heroku with a click of a button! 13 | 14 | [![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/stormpath/heroku-spring-boot-runner&env\[GROUP_ID\]=com.stormpath.spring&env\[ARTIFACT_ID\]=stormpath-sdk-examples-spring-boot-web-angular) 15 | -------------------------------------------------------------------------------- /examples/spring-boot-webmvc-angular/src/main/resources/static/change-password/change-password.html: -------------------------------------------------------------------------------- 1 | 16 |
17 |
18 |
19 |

Reset Your Password

20 |
21 |
22 |
23 |
24 |
-------------------------------------------------------------------------------- /examples/spring-boot-webmvc-angular/src/main/resources/static/forgot-password/forgot-password.html: -------------------------------------------------------------------------------- 1 | 16 |
17 |
18 |
19 |

Forgot Password

20 |
21 |
22 |
23 |
24 |
-------------------------------------------------------------------------------- /examples/spring-boot-webmvc-angular/src/main/resources/static/home/home.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /* 4 | * Copyright 2016 Stormpath, Inc. 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | angular.module('exampleApp') 20 | .config(function ($stateProvider) { 21 | $stateProvider 22 | .state('home', { 23 | url: '/', 24 | templateUrl: 'home/home.html' 25 | }); 26 | }); -------------------------------------------------------------------------------- /examples/spring-boot-webmvc-angular/src/main/resources/static/login/login.html: -------------------------------------------------------------------------------- 1 | 16 |
17 |
18 |
19 |

Login

20 |
21 |
22 |
23 |
24 |
-------------------------------------------------------------------------------- /examples/spring-boot-webmvc-angular/src/main/resources/static/login/login.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /* 4 | * Copyright 2016 Stormpath, Inc. 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | angular.module('exampleApp') 20 | .config(function ($stateProvider) { 21 | $stateProvider 22 | .state('login', { 23 | url: '/login', 24 | templateUrl: 'login/login.html' 25 | }); 26 | }); -------------------------------------------------------------------------------- /examples/spring-boot-webmvc-angular/src/main/resources/static/register/register.html: -------------------------------------------------------------------------------- 1 | 16 |
17 |
18 |
19 |

Create an Account

20 |
21 |
22 |
23 |
24 |
-------------------------------------------------------------------------------- /examples/spring-boot-webmvc-angular/src/main/resources/static/register/register.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /* 4 | * Copyright 2016 Stormpath, Inc. 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | angular.module('exampleApp') 20 | .config(function ($stateProvider) { 21 | $stateProvider 22 | .state('register', { 23 | url: '/register', 24 | templateUrl: 'register/register.html' 25 | }); 26 | }); -------------------------------------------------------------------------------- /examples/spring-boot-webmvc-angular/src/main/resources/static/verify-email/verify-email.html: -------------------------------------------------------------------------------- 1 | 16 |
17 |
18 |
19 |

Verify Your Account

20 |
21 |
22 |
23 |
24 |
-------------------------------------------------------------------------------- /examples/spring-boot-webmvc/README.md: -------------------------------------------------------------------------------- 1 | Spring Boot Web MVC Example 2 | =========================== 3 | 4 | Run this example locally with the following Maven command: 5 | 6 | ``` bash 7 | $ mvn spring-boot:run 8 | ``` 9 | 10 | Then visit: http://localhost:8080 11 | 12 | Or simply deploy it Heroku with a click of a button! 13 | 14 | [![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/stormpath/heroku-spring-boot-runner&env\[GROUP_ID\]=com.stormpath.spring&env\[ARTIFACT_ID\]=stormpath-sdk-examples-spring-boot-web) 15 | -------------------------------------------------------------------------------- /examples/spring-boot-webmvc/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2015 Stormpath, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | # If you have more than one application registered with Stormpath, you must specify which one 18 | # corresponds to this webapp: 19 | # 20 | #stormpath.application.href = https://api.stormpath.com/v1/applications/YOUR_APPLICATION_ID_HERE 21 | -------------------------------------------------------------------------------- /examples/spring-boot/README.md: -------------------------------------------------------------------------------- 1 | Stand Alone Spring Boot CLI Example 2 | =================================== 3 | 4 | Run this example locally with the following Maven command: 5 | 6 | ``` bash 7 | $ mvn spring-boot:run 8 | ``` 9 | -------------------------------------------------------------------------------- /examples/spring-boot/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2015 Stormpath, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | # If you have more than one application registered with Stormpath, you must specify which one 18 | # corresponds to this webapp: 19 | # 20 | #stormpath.application.href = https://api.stormpath.com/v1/applications/YOUR_APPLICATION_ID_HERE -------------------------------------------------------------------------------- /examples/spring-security-spring-boot-webmvc-bare-bones/README.md: -------------------------------------------------------------------------------- 1 | Spring Security & Spring Boot Bare Bones Example 2 | ================================================ 3 | 4 | Run this example locally with the following Maven command: 5 | 6 | ``` bash 7 | $ mvn spring-boot:run 8 | ``` 9 | 10 | Then visit: http://localhost:8080 11 | 12 | Or simply deploy it Heroku with a click of a button! 13 | 14 | [![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/stormpath/heroku-spring-boot-runner&env\[GROUP_ID\]=com.stormpath.spring&env\[ARTIFACT_ID\]=stormpath-sdk-examples-spring-security-spring-boot-webmvc-bare-bones) 15 | -------------------------------------------------------------------------------- /examples/spring-security-spring-boot-webmvc-bare-bones/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2015 Stormpath, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | # If you have more than one application registered with Stormpath, you must specify which one 18 | # corresponds to this webapp: 19 | # 20 | #stormpath.application.href = https://api.stormpath.com/v1/applications/YOUR_APPLICATION_ID_HERE 21 | -------------------------------------------------------------------------------- /examples/spring-security-spring-boot-webmvc/README.md: -------------------------------------------------------------------------------- 1 | Spring Security & Spring Boot Example 2 | ===================================== 3 | 4 | Run this example locally with the following Maven command: 5 | 6 | ``` bash 7 | $ mvn spring-boot:run 8 | ``` 9 | 10 | Then visit: http://localhost:8080 11 | 12 | Or simply deploy it Heroku with a click of a button! 13 | 14 | [![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/stormpath/heroku-spring-boot-runner&env\[GROUP_ID\]=com.stormpath.spring&env\[ARTIFACT_ID\]=stormpath-sdk-examples-spring-security-spring-boot-webmvc) 15 | -------------------------------------------------------------------------------- /examples/spring-security-spring-boot-webmvc/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2015 Stormpath, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | # If you have more than one application registered with Stormpath, you must specify which one 18 | # corresponds to this webapp: 19 | # 20 | #stormpath.application.href = https://api.stormpath.com/v1/applications/YOUR_APPLICATION_ID_HERE -------------------------------------------------------------------------------- /examples/spring-security-spring-boot-webmvc/src/main/resources/templates/restricted.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 |
9 |
10 |
11 | 12 |
13 | 14 |

15 | Go Home 16 |

17 |
18 |
19 | 20 | -------------------------------------------------------------------------------- /examples/spring-security-webmvc/README.md: -------------------------------------------------------------------------------- 1 | Spring Security Web MVC Example 2 | =============================== 3 | 4 | Run this example locally with the following Maven command: 5 | 6 | ``` bash 7 | $ mvn tomcat7:run 8 | ``` 9 | 10 | Then visit: http://localhost:8080 11 | 12 | Or simply deploy it Heroku with a click of a button! 13 | 14 | [![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/stormpath/heroku-war-runner&env\[GROUP_ID\]=com.stormpath.spring&env\[ARTIFACT_ID\]=stormpath-sdk-examples-spring-security-webmvc) 15 | -------------------------------------------------------------------------------- /examples/spring-security-webmvc/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2015 Stormpath, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | # If you have more than one application registered with Stormpath, you must specify which one 18 | # corresponds to this webapp: 19 | # 20 | #stormpath.application.href = https://api.stormpath.com/v1/applications/YOUR_APPLICATION_ID_HERE -------------------------------------------------------------------------------- /examples/spring-security-webmvc/src/main/webapp/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | -------------------------------------------------------------------------------- /examples/spring-webmvc/README.md: -------------------------------------------------------------------------------- 1 | Spring Boot Web MVC Example 2 | =========================== 3 | 4 | Run this example locally with the following Maven command: 5 | 6 | ``` bash 7 | $ mvn tomcat7:run 8 | ``` 9 | 10 | Then visit: http://localhost:8080 11 | 12 | Or simply deploy it Heroku with a click of a button! 13 | 14 | [![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/stormpath/heroku-war-runner&env\[GROUP_ID\]=com.stormpath.spring&env\[ARTIFACT_ID\]=stormpath-sdk-examples-spring-webmvc) 15 | -------------------------------------------------------------------------------- /examples/spring-webmvc/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2015 Stormpath, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | # If you have more than one application registered with Stormpath, you must specify which one 18 | # corresponds to this webapp: 19 | # 20 | #stormpath.application.href = https://api.stormpath.com/v1/applications/YOUR_APPLICATION_ID_HERE 21 | -------------------------------------------------------------------------------- /examples/spring-webmvc/src/main/webapp/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 5 | -------------------------------------------------------------------------------- /examples/spring/README.md: -------------------------------------------------------------------------------- 1 | Stand Alone Spring CLI Example 2 | ============================== 3 | 4 | Run this example locally with the following Maven command: 5 | 6 | ``` bash 7 | $ mvn exec:java 8 | ``` 9 | -------------------------------------------------------------------------------- /examples/spring/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2015 Stormpath, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | # If you have more than one application registered with Stormpath, you must specify which one 18 | # corresponds to this webapp: 19 | # 20 | #stormpath.application.href = https://api.stormpath.com/v1/applications/YOUR_APPLICATION_ID_HERE -------------------------------------------------------------------------------- /examples/zuul-spring-cloud-starter/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | zuul: 2 | routes: 3 | app: 4 | path: /** 5 | url: http://localhost:8080 6 | 7 | server: 8 | port: 8000 9 | use-forward-headers: true 10 | 11 | logging: 12 | level: 13 | root: INFO 14 | 15 | stormpath: 16 | zuul: 17 | account: 18 | header: 19 | jwt: 20 | key: 21 | resource: classpath:rsatest.priv.pem 22 | # this is just one example of a key id - anything that the origin server can make sense of to lookup 23 | # the corresponding public key is fine. Here we use the public key file name (which the example origin app 24 | # has access to) 25 | id: rsatest.pub.pem 26 | -------------------------------------------------------------------------------- /examples/zuul-spring-cloud-starter/src/main/resources/rsatest.pub.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PUBLIC KEY----- 2 | MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9K1RO7ABH1CdCDflO/V2 3 | JesfKGRDdeuyJQe4OqkTHR1LOcLPKrCrnu+zYf1cLxemwgcbRY3RQAwJsMXNVT90 4 | kA2zfa4BgtGucckS1yTDTrrgQhFst16fw+fNQLvuGHRY5xshV9wrFXDsX71GHKXo 5 | A2QhBPtSGw1yiYfPtDwOvQ9jxBQkxVJ6YsCk9nqoU5oSIsA0rRC995RAoNqo1DAj 6 | X5OhPqaOg2+3y6fV8fGI+xprEmv1owFiq/NFY5PtyOn8W0jSsIKLDPSogzYfeAR+ 7 | Ryw0iSl5rHmLeEn16oy1aeKsApg1CkGTXOY7VyH0PsziTuLlOufZ1HyuGPUv7hQe 8 | UwIDAQAB 9 | -----END PUBLIC KEY----- 10 | -------------------------------------------------------------------------------- /examples/zuul-spring-cloud-starter/src/main/resources/secp384r1.priv.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MIGjAgEBBC92z4hOc4k1OWWlVHhNXqpXgeZvajIPAy1Y4HSgbi2dCVnl2fnePUyT 3 | HSAkhXqXEqAHBgUrgQQAIqFkA2IABJqEhTSo3jWGw0NQibaAWW91i8UuVaLEYt2t 4 | MWsLZKIu9za4sGBeQBZv5TgnrbN6mKrC6ro0MYb2m40D9mezqDJYqgeGDHzT/ogA 5 | x95LcAMfWg5WjuUqJ1aWYVZJgHULag== 6 | -----END EC PRIVATE KEY----- 7 | -------------------------------------------------------------------------------- /examples/zuul-spring-cloud-starter/src/main/resources/secp384r1.pub.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PUBLIC KEY----- 2 | MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEmoSFNKjeNYbDQ1CJtoBZb3WLxS5VosRi 3 | 3a0xawtkoi73NriwYF5AFm/lOCets3qYqsLqujQxhvabjQP2Z7OoMliqB4YMfNP+ 4 | iADH3ktwAx9aDlaO5SonVpZhVkmAdQtq 5 | -----END PUBLIC KEY----- 6 | -------------------------------------------------------------------------------- /extensions/servlet/src/main/java/com/stormpath/sdk/servlet/config/ConfigFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.servlet.config; 17 | 18 | import javax.servlet.ServletContext; 19 | 20 | /** 21 | * @since 1.0.RC3 22 | */ 23 | public interface ConfigFactory { 24 | 25 | Config createConfig(ServletContext servletContext); 26 | 27 | } 28 | -------------------------------------------------------------------------------- /extensions/servlet/src/main/java/com/stormpath/sdk/servlet/config/CookieProperties.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.servlet.config; 2 | 3 | /** 4 | * @since 1.0.0 5 | */ 6 | public interface CookieProperties { 7 | 8 | String getCookieName(); 9 | 10 | String getCookieComment(); 11 | 12 | String getCookieDomain(); 13 | 14 | int getCookieMaxAge(); 15 | 16 | String getCookiePath(); 17 | 18 | boolean isCookieHttpOnly(); 19 | 20 | boolean isCookieSecure(); 21 | } 22 | -------------------------------------------------------------------------------- /extensions/servlet/src/main/java/com/stormpath/sdk/servlet/config/Factory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.servlet.config; 17 | 18 | /** 19 | * @since 1.0.RC3 20 | * @param the type of object returned 21 | */ 22 | public interface Factory { 23 | 24 | T getInstance(); 25 | 26 | } 27 | -------------------------------------------------------------------------------- /extensions/servlet/src/main/java/com/stormpath/sdk/servlet/config/UriCleaner.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.servlet.config; 17 | 18 | /** 19 | * @since 1.0.RC3 20 | */ 21 | public interface UriCleaner { 22 | 23 | String clean(String uri); 24 | 25 | } 26 | -------------------------------------------------------------------------------- /extensions/servlet/src/main/java/com/stormpath/sdk/servlet/config/filter/GenericOAuth2CallbackFilterFactory.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.servlet.config.filter; 2 | 3 | import com.stormpath.sdk.servlet.mvc.provider.GenericOAuth2ProviderCallbackController; 4 | 5 | /** 6 | * @since 1.3.0 7 | */ 8 | public class GenericOAuth2CallbackFilterFactory extends SocialCallbackControllerFilterFactory { 9 | 10 | @Override 11 | protected GenericOAuth2ProviderCallbackController newController() { 12 | return new GenericOAuth2ProviderCallbackController(); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /extensions/servlet/src/main/java/com/stormpath/sdk/servlet/config/filter/TwitterCallbackFilterFactory.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.servlet.config.filter; 2 | 3 | import com.stormpath.sdk.servlet.mvc.provider.TwitterCallbackController; 4 | 5 | /** 6 | * @since 1.3.0 7 | */ 8 | public class TwitterCallbackFilterFactory extends SocialCallbackControllerFilterFactory { 9 | 10 | @Override 11 | protected TwitterCallbackController newController() { 12 | return new TwitterCallbackController(); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /extensions/servlet/src/main/java/com/stormpath/sdk/servlet/config/impl/AccessTokenCookieConfig.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.servlet.config.impl; 2 | 3 | import com.stormpath.sdk.servlet.config.CookieProperties; 4 | 5 | /** 6 | * @since 1.0.0 7 | */ 8 | public class AccessTokenCookieConfig extends AbstractCookieConfig { 9 | 10 | private static final String CONFIG_PREFIX = "stormpath.web.accessTokenCookie"; 11 | 12 | @Override 13 | protected String configPrefix() { 14 | return CONFIG_PREFIX; 15 | } 16 | 17 | public AccessTokenCookieConfig(ConfigReader configReader) { 18 | super(configReader); 19 | } 20 | 21 | public AccessTokenCookieConfig(CookieProperties cookieProperties) { 22 | super(cookieProperties); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /extensions/servlet/src/main/java/com/stormpath/sdk/servlet/config/impl/RefreshTokenCookieConfig.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.servlet.config.impl; 2 | 3 | import com.stormpath.sdk.servlet.config.CookieProperties; 4 | 5 | /** 6 | * @since 1.0.0 7 | */ 8 | public class RefreshTokenCookieConfig extends AbstractCookieConfig { 9 | 10 | private static final String CONFIG_PREFIX = "stormpath.web.refreshTokenCookie"; 11 | 12 | @Override 13 | protected String configPrefix() { 14 | return CONFIG_PREFIX; 15 | } 16 | 17 | public RefreshTokenCookieConfig(ConfigReader configReader) { 18 | super(configReader); 19 | } 20 | 21 | public RefreshTokenCookieConfig(CookieProperties cookieProperties) { 22 | super(cookieProperties); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /extensions/servlet/src/main/java/com/stormpath/sdk/servlet/event/impl/Publisher.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.servlet.event.impl; 17 | 18 | /** 19 | * @since 1.0.RC3 20 | * @param the type of object to publish 21 | */ 22 | public interface Publisher { 23 | 24 | void publish(T t); 25 | 26 | } 27 | -------------------------------------------------------------------------------- /extensions/servlet/src/main/java/com/stormpath/sdk/servlet/filter/AnonymousFilter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.servlet.filter; 17 | 18 | /** 19 | * @since 1.0.RC3 20 | */ 21 | public class AnonymousFilter extends HttpFilter { 22 | } 23 | -------------------------------------------------------------------------------- /extensions/servlet/src/main/java/com/stormpath/sdk/servlet/filter/ChangePasswordConfig.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.servlet.filter; 17 | 18 | /** 19 | * @since 1.0.0 20 | */ 21 | public interface ChangePasswordConfig extends ControllerConfig { 22 | 23 | String getErrorUri(); 24 | boolean isAutoLogin(); 25 | 26 | } 27 | -------------------------------------------------------------------------------- /extensions/servlet/src/main/java/com/stormpath/sdk/servlet/filter/account/InsecureCookieException.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.servlet.filter.account; 2 | 3 | /** 4 | * @since 1.1.0 5 | */ 6 | public class InsecureCookieException extends RuntimeException { 7 | private static final String I8N_MESSAGE_KEY = "stormpath.cookie.insecure.error"; 8 | 9 | public InsecureCookieException(String s) { 10 | super(s); 11 | } 12 | 13 | @Override 14 | public String getLocalizedMessage() { 15 | return I8N_MESSAGE_KEY; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /extensions/servlet/src/main/java/com/stormpath/sdk/servlet/filter/oauth/config/OktaRefreshTokenResultFactoryFactory.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.servlet.filter.oauth.config; 2 | 3 | import com.stormpath.sdk.application.Application; 4 | import com.stormpath.sdk.servlet.config.ConfigSingletonFactory; 5 | import com.stormpath.sdk.servlet.filter.oauth.OktaRefreshTokenResultFactory; 6 | import com.stormpath.sdk.servlet.filter.oauth.RefreshTokenResultFactory; 7 | 8 | import javax.servlet.ServletContext; 9 | 10 | /** 11 | * 12 | */ 13 | public class OktaRefreshTokenResultFactoryFactory extends ConfigSingletonFactory { 14 | 15 | @Override 16 | protected RefreshTokenResultFactory createInstance(ServletContext servletContext) throws Exception { 17 | Application application = (Application)servletContext.getAttribute(Application.class.getName()); 18 | return new OktaRefreshTokenResultFactory(application); 19 | } 20 | } -------------------------------------------------------------------------------- /extensions/servlet/src/main/java/com/stormpath/sdk/servlet/http/authc/AuthorizationHeaderParser.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.servlet.http.authc; 17 | 18 | /** 19 | * @since 1.0.RC3 20 | */ 21 | public interface AuthorizationHeaderParser { 22 | 23 | HttpCredentials parse(String headerValue); 24 | 25 | } 26 | -------------------------------------------------------------------------------- /extensions/servlet/src/main/java/com/stormpath/sdk/servlet/http/authc/HttpCredentials.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.servlet.http.authc; 17 | 18 | /** 19 | * @since 1.0.RC3 20 | */ 21 | public interface HttpCredentials { 22 | 23 | String getSchemeName(); 24 | 25 | String getSchemeValue(); 26 | } 27 | -------------------------------------------------------------------------------- /extensions/servlet/src/main/java/com/stormpath/sdk/servlet/i18n/MessageContext.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.servlet.i18n; 2 | 3 | import com.stormpath.sdk.servlet.http.Resolver; 4 | 5 | import java.util.Locale; 6 | 7 | /** 8 | * @since 1.0.0 9 | */ 10 | public interface MessageContext { 11 | 12 | MessageSource getMessageSource(); 13 | 14 | Resolver getLocaleResolver(); 15 | } 16 | -------------------------------------------------------------------------------- /extensions/servlet/src/main/java/com/stormpath/sdk/servlet/idsite/IdSiteOrganizationContext.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.servlet.idsite; 2 | 3 | /** 4 | * @since 1.0.RC5 5 | */ 6 | public interface IdSiteOrganizationContext { 7 | 8 | String getOrganizationNameKey(); 9 | 10 | Boolean isUseSubdomain(); 11 | 12 | Boolean isShowOrganizationField(); 13 | } 14 | -------------------------------------------------------------------------------- /extensions/servlet/src/main/java/com/stormpath/sdk/servlet/json/ObjectMapperFactory.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.servlet.json; 2 | 3 | import com.fasterxml.jackson.databind.ObjectMapper; 4 | import com.stormpath.sdk.servlet.config.ConfigSingletonFactory; 5 | 6 | import javax.servlet.ServletContext; 7 | 8 | /** 9 | * This factory provides an {@link com.fasterxml.jackson.databind.ObjectMapper} instance to be use for JSON serialization 10 | * 11 | * @since 1.0.0 12 | */ 13 | public class ObjectMapperFactory extends ConfigSingletonFactory { 14 | 15 | @Override 16 | protected ObjectMapper createInstance(ServletContext servletContext) throws Exception { 17 | return new ObjectMapper(); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /extensions/servlet/src/main/java/com/stormpath/sdk/servlet/mvc/AccountModelFactory.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.servlet.mvc; 2 | 3 | import com.stormpath.sdk.account.Account; 4 | 5 | import java.util.List; 6 | import java.util.Map; 7 | 8 | /** 9 | * @since 1.0.0 10 | */ 11 | public interface AccountModelFactory { 12 | 13 | Map toMap(Account account, List expands); 14 | } 15 | -------------------------------------------------------------------------------- /extensions/servlet/src/main/java/com/stormpath/sdk/servlet/mvc/DefaultErrorMapModelFactory.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.servlet.mvc; 2 | 3 | import com.stormpath.sdk.error.Error; 4 | 5 | import java.util.LinkedHashMap; 6 | import java.util.Map; 7 | 8 | /** 9 | * @since 1.0.0 10 | */ 11 | public class DefaultErrorMapModelFactory implements ErrorMapModelFactory{ 12 | @Override 13 | public Map toErrorMap(Error error) { 14 | Map errorMap = new LinkedHashMap(); 15 | 16 | errorMap.put("status", error.getStatus()); 17 | errorMap.put("message", error.getMessage()); 18 | 19 | return errorMap; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /extensions/servlet/src/main/java/com/stormpath/sdk/servlet/mvc/DisabledWebHandler.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.servlet.mvc; 2 | 3 | import com.stormpath.sdk.account.Account; 4 | 5 | import javax.servlet.http.HttpServletRequest; 6 | import javax.servlet.http.HttpServletResponse; 7 | 8 | /** 9 | * Default noop WebHandler use for pre/post login/register handlers 10 | * 11 | * @since 1.0.0 12 | */ 13 | public class DisabledWebHandler implements WebHandler { 14 | @Override 15 | public boolean handle(HttpServletRequest request, HttpServletResponse response, Account account) { 16 | return true; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /extensions/servlet/src/main/java/com/stormpath/sdk/servlet/mvc/ErrorMapModelFactory.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.servlet.mvc; 2 | 3 | import com.stormpath.sdk.error.Error; 4 | 5 | import java.util.Map; 6 | 7 | /** 8 | * @since 1.0.0 9 | */ 10 | public interface ErrorMapModelFactory { 11 | Map toErrorMap(Error error); 12 | } 13 | -------------------------------------------------------------------------------- /extensions/servlet/src/main/java/com/stormpath/sdk/servlet/mvc/ExpandsResolver.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.servlet.mvc; 17 | 18 | import java.util.List; 19 | 20 | /** 21 | * @since 1.2.0 22 | */ 23 | public interface ExpandsResolver { 24 | 25 | List getExpands(); 26 | 27 | } 28 | -------------------------------------------------------------------------------- /extensions/servlet/src/main/java/com/stormpath/sdk/servlet/mvc/FormFieldsFactory.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.servlet.mvc; 2 | 3 | import com.stormpath.sdk.servlet.form.Field; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * @since 1.0.0 9 | */ 10 | public interface FormFieldsFactory { 11 | List getFormFields(); 12 | } 13 | -------------------------------------------------------------------------------- /extensions/servlet/src/main/java/com/stormpath/sdk/servlet/mvc/LoginStatus.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.servlet.mvc; 2 | 3 | /** 4 | * A {@code LoginStatus} represents the various status messages that can result from a login. 5 | * 6 | * @since 1.0.3 7 | */ 8 | public enum LoginStatus { 9 | 10 | UNVERIFIED, 11 | VERIFIED, 12 | CREATED, 13 | FORGOT, 14 | RESET 15 | } 16 | -------------------------------------------------------------------------------- /extensions/servlet/src/main/java/com/stormpath/sdk/servlet/mvc/MismatchedPasswordException.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.servlet.mvc; 2 | 3 | /** 4 | * @since 1.0.0 5 | */ 6 | public class MismatchedPasswordException extends ValidationException { 7 | public MismatchedPasswordException() { 8 | super(); 9 | } 10 | 11 | public MismatchedPasswordException(String s) { 12 | super(s); 13 | } 14 | 15 | public MismatchedPasswordException(String s, Throwable throwable) { 16 | super(s, throwable); 17 | } 18 | 19 | public MismatchedPasswordException(Throwable throwable) { 20 | super(throwable); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /extensions/servlet/src/main/java/com/stormpath/sdk/servlet/mvc/ViewResolver.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.servlet.mvc; 17 | 18 | import javax.servlet.http.HttpServletRequest; 19 | 20 | /** 21 | * @since 1.0.0 22 | */ 23 | public interface ViewResolver { 24 | 25 | View getView(ViewModel model, HttpServletRequest request); 26 | 27 | } 28 | -------------------------------------------------------------------------------- /extensions/servlet/src/main/java/com/stormpath/sdk/servlet/mvc/provider/OktaOAuthProviderModel.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.servlet.mvc.provider; 2 | 3 | import com.stormpath.sdk.provider.OktaProvider; 4 | 5 | /** 6 | */ 7 | public class OktaOAuthProviderModel extends DefaultOAuthProviderModel { 8 | private final OktaProvider provider; 9 | 10 | public OktaOAuthProviderModel(OktaProvider provider) { 11 | super(provider); 12 | this.provider = provider; 13 | } 14 | 15 | public String getIdp() { 16 | return provider.getIdp(); 17 | } 18 | } -------------------------------------------------------------------------------- /extensions/servlet/src/main/java/com/stormpath/sdk/servlet/mvc/provider/ProviderModel.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.servlet.mvc.provider; 17 | 18 | /** 19 | * @since 1.0.0 20 | */ 21 | public interface ProviderModel { 22 | 23 | String getHref(); 24 | 25 | String getProviderId(); 26 | } 27 | -------------------------------------------------------------------------------- /extensions/servlet/src/main/java/com/stormpath/sdk/servlet/oauth/impl/AccessTokenResolver.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.servlet.oauth.impl; 2 | 3 | /** 4 | * Access Token implementation of the {@link com.stormpath.sdk.servlet.oauth.OAuthTokenResolver} interface. 5 | * 6 | * @since 1.0.0 7 | */ 8 | public class AccessTokenResolver extends AbstractOAuthTokenResolver { 9 | 10 | public static String REQUEST_ATTR_NAME = AccessTokenResolver.class.getName(); 11 | 12 | /** 13 | * A thread-safe instance to use as desired. 14 | */ 15 | public static final AccessTokenResolver INSTANCE = new AccessTokenResolver(); 16 | 17 | @Override 18 | protected String getRequestAttributeName() { 19 | return REQUEST_ATTR_NAME; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /extensions/servlet/src/main/java/com/stormpath/sdk/servlet/oauth/impl/RefreshTokenResolver.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.servlet.oauth.impl; 2 | 3 | /** 4 | * Refresh Token implementation of the {@link com.stormpath.sdk.servlet.oauth.OAuthTokenResolver} interface. 5 | * 6 | * @since 1.0.0 7 | */ 8 | public class RefreshTokenResolver extends AbstractOAuthTokenResolver { 9 | 10 | public static String REQUEST_ATTR_NAME = RefreshTokenResolver.class.getName(); 11 | 12 | /** 13 | * A thread-safe instance to use as desired. 14 | */ 15 | public static final RefreshTokenResolver INSTANCE = new RefreshTokenResolver(); 16 | 17 | @Override 18 | protected String getRequestAttributeName() { 19 | return REQUEST_ATTR_NAME; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /extensions/servlet/src/main/java/com/stormpath/sdk/servlet/saml/SamlOrganizationContext.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.servlet.saml; 17 | 18 | /** 19 | * @since 1.0.RC8 20 | */ 21 | public interface SamlOrganizationContext { 22 | 23 | String getOrganizationNameKey(); 24 | } 25 | -------------------------------------------------------------------------------- /extensions/servlet/src/main/resources/META-INF/resources/assets/css/custom.stormpath.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-java/72d5d21afbb85815d2e10c73bc2545ca55204561/extensions/servlet/src/main/resources/META-INF/resources/assets/css/custom.stormpath.css -------------------------------------------------------------------------------- /extensions/servlet/src/test/groovy/com/stormpath/sdk/servlet/utils/ConfigTestUtils.groovy: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.servlet.utils 2 | 3 | import java.lang.reflect.Field 4 | 5 | /** 6 | * @since 1.0.4 7 | */ 8 | class ConfigTestUtils { 9 | 10 | // From http://stackoverflow.com/a/496849 11 | static void setEnv(Map newenv) throws Exception { 12 | Class[] classes = Collections.class.getDeclaredClasses() 13 | Map env = System.getenv() 14 | for (Class cl : classes) { 15 | if ('java.util.Collections$UnmodifiableMap'.equals(cl.getName())) { 16 | Field field = cl.getDeclaredField('m') 17 | field.setAccessible(true) 18 | Object obj = field.get(env) 19 | Map map = (Map) obj 20 | map.clear() 21 | map.putAll(newenv) 22 | } 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /extensions/servlet/src/test/resources/stormpath.json: -------------------------------------------------------------------------------- 1 | { 2 | "stormpath": { 3 | "web": { 4 | "verify": { 5 | "nextUri": "/home?status=fabulous" 6 | } 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /extensions/servlet/src/test/resources/stormpath.properties: -------------------------------------------------------------------------------- 1 | stormpath.web.login.nextUri = /foo 2 | stormpath.client.baseUrl = http://api.stormpath.com/v100 3 | 4 | stormpath.web.oauth2.enabled=false 5 | stormpath.web.register.enabled=false 6 | stormpath.web.verifyEmail.enabled=false 7 | stormpath.web.login.enabled=false 8 | stormpath.web.logout.enabled=false 9 | stormpath.web.forgotPassword.enabled=false 10 | stormpath.web.changePassword.enabled=false 11 | stormpath.web.idSite.enabled=false 12 | stormpath.web.callback.enabled=false 13 | stormpath.web.me.enabled=false 14 | 15 | # use a few of the previous Stormpath defaults because using the Okta impls would require mocking out those discovery 16 | # requests (and we already have logic for the equivalent Stormpath calls) 17 | okta.enabled=false 18 | stormpath.client.authenticationScheme = BASIC -------------------------------------------------------------------------------- /extensions/servlet/src/test/resources/stormpath.yaml: -------------------------------------------------------------------------------- 1 | stormpath: 2 | web: 3 | logout: 4 | uri: "/getout" -------------------------------------------------------------------------------- /extensions/spring/boot/stormpath-spring-boot-starter/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration = com.stormpath.spring.boot.autoconfigure.StormpathAutoConfiguration -------------------------------------------------------------------------------- /extensions/spring/boot/stormpath-spring-boot-starter/src/main/resources/META-INF/spring.provides: -------------------------------------------------------------------------------- 1 | provides: stormpath -------------------------------------------------------------------------------- /extensions/spring/boot/stormpath-spring-security-spring-boot-starter/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration = com.stormpath.spring.boot.autoconfigure.StormpathSpringSecurityAutoConfiguration -------------------------------------------------------------------------------- /extensions/spring/boot/stormpath-spring-security-spring-boot-starter/src/main/resources/META-INF/spring.provides: -------------------------------------------------------------------------------- 1 | provides: stormpath-spring-security -------------------------------------------------------------------------------- /extensions/spring/boot/stormpath-spring-security-webmvc-spring-boot-starter/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration = com.stormpath.spring.boot.autoconfigure.StormpathWebSecurityAutoConfiguration,\ 2 | com.stormpath.spring.boot.autoconfigure.StormpathMethodSecurityAutoConfiguration,\ 3 | com.stormpath.spring.boot.autoconfigure.StormpathWebSecurityDisabledAutoConfiguration 4 | org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer = com.stormpath.spring.config.StormpathWebSecurityConfigurer -------------------------------------------------------------------------------- /extensions/spring/boot/stormpath-spring-security-webmvc-spring-boot-starter/src/main/resources/META-INF/spring.provides: -------------------------------------------------------------------------------- 1 | provides: stormpath-web-security -------------------------------------------------------------------------------- /extensions/spring/boot/stormpath-spring-security-webmvc-spring-boot-starter/src/test/resources/disabledstormpath.application.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2017 Stormpath, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | stormpath.enabled = false -------------------------------------------------------------------------------- /extensions/spring/boot/stormpath-thymeleaf-spring-boot-starter/src/main/resources/spring.provides: -------------------------------------------------------------------------------- 1 | provides: stormpath-thymeleaf -------------------------------------------------------------------------------- /extensions/spring/boot/stormpath-webmvc-spring-boot-starter/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration = com.stormpath.spring.boot.autoconfigure.StormpathWebMvcAutoConfiguration -------------------------------------------------------------------------------- /extensions/spring/boot/stormpath-webmvc-spring-boot-starter/src/main/resources/META-INF/spring.provides: -------------------------------------------------------------------------------- 1 | provides: stormpath-web -------------------------------------------------------------------------------- /extensions/spring/boot/stormpath-webmvc-spring-boot-starter/src/test/resources/it.application.properties: -------------------------------------------------------------------------------- 1 | stormpath.web.idSite.enabled = true -------------------------------------------------------------------------------- /extensions/spring/boot/stormpath-webmvc-spring-boot-starter/src/test/resources/test.application.properties: -------------------------------------------------------------------------------- 1 | spring.messages.basename = testMessages -------------------------------------------------------------------------------- /extensions/spring/boot/stormpath-webmvc-spring-boot-starter/src/test/resources/testMessages.properties: -------------------------------------------------------------------------------- 1 | foo = bar -------------------------------------------------------------------------------- /extensions/spring/cloud/stormpath-zuul-spring-cloud-starter/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration = com.stormpath.spring.cloud.zuul.autoconfigure.StormpathZuulAutoConfiguration -------------------------------------------------------------------------------- /extensions/spring/cloud/stormpath-zuul-spring-cloud-starter/src/main/resources/META-INF/spring.provides: -------------------------------------------------------------------------------- 1 | provides: stormpath-zuul -------------------------------------------------------------------------------- /extensions/spring/cloud/stormpath-zuul-spring-cloud-starter/src/test/resources/rsatest.pub.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PUBLIC KEY----- 2 | MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9K1RO7ABH1CdCDflO/V2 3 | JesfKGRDdeuyJQe4OqkTHR1LOcLPKrCrnu+zYf1cLxemwgcbRY3RQAwJsMXNVT90 4 | kA2zfa4BgtGucckS1yTDTrrgQhFst16fw+fNQLvuGHRY5xshV9wrFXDsX71GHKXo 5 | A2QhBPtSGw1yiYfPtDwOvQ9jxBQkxVJ6YsCk9nqoU5oSIsA0rRC995RAoNqo1DAj 6 | X5OhPqaOg2+3y6fV8fGI+xprEmv1owFiq/NFY5PtyOn8W0jSsIKLDPSogzYfeAR+ 7 | Ryw0iSl5rHmLeEn16oy1aeKsApg1CkGTXOY7VyH0PsziTuLlOufZ1HyuGPUv7hQe 8 | UwIDAQAB 9 | -----END PUBLIC KEY----- 10 | -------------------------------------------------------------------------------- /extensions/spring/cloud/stormpath-zuul-spring-cloud-starter/src/test/resources/secp384r1.priv.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MIGjAgEBBC92z4hOc4k1OWWlVHhNXqpXgeZvajIPAy1Y4HSgbi2dCVnl2fnePUyT 3 | HSAkhXqXEqAHBgUrgQQAIqFkA2IABJqEhTSo3jWGw0NQibaAWW91i8UuVaLEYt2t 4 | MWsLZKIu9za4sGBeQBZv5TgnrbN6mKrC6ro0MYb2m40D9mezqDJYqgeGDHzT/ogA 5 | x95LcAMfWg5WjuUqJ1aWYVZJgHULag== 6 | -----END EC PRIVATE KEY----- 7 | -------------------------------------------------------------------------------- /extensions/spring/cloud/stormpath-zuul-spring-cloud-starter/src/test/resources/secp384r1.pub.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PUBLIC KEY----- 2 | MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEmoSFNKjeNYbDQ1CJtoBZb3WLxS5VosRi 3 | 3a0xawtkoi73NriwYF5AFm/lOCets3qYqsLqujQxhvabjQP2Z7OoMliqB4YMfNP+ 4 | iADH3ktwAx9aDlaO5SonVpZhVkmAdQtq 5 | -----END PUBLIC KEY----- 6 | -------------------------------------------------------------------------------- /extensions/spring/stormpath-spring-security-webmvc/src/test/resources/com/stormpath/spring/config/applicationChangePassword.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2016 Stormpath, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | stormpath.web.csrf.token.enabled = false -------------------------------------------------------------------------------- /extensions/spring/stormpath-spring-security-webmvc/src/test/resources/com/stormpath/spring/config/applicationCors.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2016 Stormpath, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | stormpath.web.cors.allowed.originUris = http://localhost:3000 17 | stormpath.web.csrf.token.enabled = false 18 | -------------------------------------------------------------------------------- /extensions/spring/stormpath-spring-security-webmvc/src/test/resources/com/stormpath/spring/config/disabledspringsecurity.application.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2017 Stormpath, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | stormpath.spring.security.enabled = false -------------------------------------------------------------------------------- /extensions/spring/stormpath-spring-security-webmvc/src/test/resources/com/stormpath/spring/config/disabledstormpath.application.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2017 Stormpath, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | stormpath.enabled = false -------------------------------------------------------------------------------- /extensions/spring/stormpath-spring-security-webmvc/src/test/resources/com/stormpath/spring/config/loginAndLogoutHandlers.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2017 Stormpath, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | stormpath.web.csrf.token.enabled = false -------------------------------------------------------------------------------- /extensions/spring/stormpath-spring-security/src/main/java/com/stormpath/spring/security/provider/EmptyAccountGrantedAuthorityResolver.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.spring.security.provider; 2 | 3 | import com.stormpath.sdk.account.Account; 4 | import org.springframework.security.core.GrantedAuthority; 5 | 6 | import java.util.Collections; 7 | import java.util.Set; 8 | 9 | /** 10 | * An {@link AccountGrantedAuthorityResolver} that always returns an empty set of granted authorities. Useful 11 | * in testing or default configuration scenarios. 12 | * 13 | * @since 1.0.RC6 14 | */ 15 | public class EmptyAccountGrantedAuthorityResolver implements AccountGrantedAuthorityResolver { 16 | 17 | @Override 18 | public Set resolveGrantedAuthorities(Account account) { 19 | return Collections.emptySet(); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /extensions/spring/stormpath-spring-security/src/test/java/com/stormpath/spring/config/MinimalSpringSecurityTestAppConfig.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.spring.config; 2 | 3 | import org.springframework.context.annotation.Configuration; 4 | 5 | /** 6 | * @since 1.0.RC5 7 | */ 8 | @Configuration 9 | @EnableStormpathSecurity 10 | public class MinimalSpringSecurityTestAppConfig { 11 | } 12 | -------------------------------------------------------------------------------- /extensions/spring/stormpath-spring-webmvc/src/main/java/com/stormpath/spring/config/StormpathMessageSourceConfiguration.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.spring.config; 2 | 3 | import com.stormpath.spring.context.MessageSourceDefinitionPostProcessor; 4 | import org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor; 5 | import org.springframework.context.annotation.Bean; 6 | import org.springframework.context.annotation.Configuration; 7 | 8 | /** 9 | * @since 1.1.0 10 | */ 11 | @Configuration 12 | public class StormpathMessageSourceConfiguration { 13 | 14 | @Bean 15 | public static BeanDefinitionRegistryPostProcessor stormpathMessageSourceDefinitionPostProcessor() { 16 | return new MessageSourceDefinitionPostProcessor(); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /extensions/spring/stormpath-spring-webmvc/src/main/java/com/stormpath/spring/mvc/DisabledHandlerMapping.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.spring.mvc; 2 | 3 | import org.springframework.web.servlet.HandlerExecutionChain; 4 | import org.springframework.web.servlet.HandlerMapping; 5 | 6 | import javax.servlet.http.HttpServletRequest; 7 | 8 | /** 9 | * @since 1.0.0 10 | */ 11 | public class DisabledHandlerMapping implements HandlerMapping { 12 | 13 | @Override 14 | public HandlerExecutionChain getHandler(HttpServletRequest request) throws Exception { 15 | return null; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /extensions/spring/stormpath-spring-webmvc/src/main/java/com/stormpath/spring/util/SpringPatternMatcher.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.spring.util; 2 | 3 | import com.stormpath.sdk.servlet.util.PatternMatcher; 4 | import org.springframework.util.PathMatcher; 5 | 6 | /** 7 | * A {@code PatternMatcher} implementation that delegates to a Spring {@link PathMatcher} instance/ 8 | * 9 | * @since 1.0.0 10 | */ 11 | public class SpringPatternMatcher implements PatternMatcher { 12 | 13 | private final PathMatcher pathMatcher; 14 | 15 | public SpringPatternMatcher(PathMatcher pathMatcher) { 16 | this.pathMatcher = pathMatcher; 17 | } 18 | 19 | @Override 20 | public boolean matches(String pattern, String source) { 21 | return this.pathMatcher.match(pattern, source); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /extensions/spring/stormpath-spring-webmvc/src/test/java/com/stormpath/spring/config/ExplicitMessageSourceAppConfig.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.spring.config; 2 | 3 | import org.springframework.context.MessageSource; 4 | import org.springframework.context.annotation.Bean; 5 | import org.springframework.context.annotation.Configuration; 6 | import org.springframework.context.support.ResourceBundleMessageSource; 7 | 8 | /** 9 | * @since 1.1.0 10 | * @see Issue 703 11 | */ 12 | @Configuration 13 | @EnableStormpathWebMvc 14 | public class ExplicitMessageSourceAppConfig { 15 | 16 | @Bean 17 | public MessageSource messageSource() { 18 | ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource(); 19 | messageSource.setBasename("testMessages"); 20 | messageSource.setDefaultEncoding("UTF-8"); 21 | return messageSource; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /extensions/spring/stormpath-spring-webmvc/src/test/resources/testMessages.properties: -------------------------------------------------------------------------------- 1 | foo = bar -------------------------------------------------------------------------------- /extensions/spring/stormpath-spring/src/test/java/com/stormpath/spring/config/MinimalTestAppConfig.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.spring.config; 17 | 18 | import org.springframework.context.annotation.Configuration; 19 | 20 | /** 21 | * @since 1.0.RC4 22 | */ 23 | @Configuration 24 | @EnableStormpath 25 | public class MinimalTestAppConfig {} 26 | -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/account/DefaultAccountLinkOptions.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.impl.account; 2 | 3 | import com.stormpath.sdk.account.AccountLinkOptions; 4 | import com.stormpath.sdk.impl.query.DefaultOptions; 5 | 6 | /** 7 | * @since 1.1.0 8 | */ 9 | public class DefaultAccountLinkOptions extends DefaultOptions implements AccountLinkOptions { 10 | 11 | @Override 12 | public AccountLinkOptions withLeftAccount() { 13 | return expand(DefaultAccountLink.LEFT_ACCOUNT); 14 | } 15 | 16 | @Override 17 | public AccountLinkOptions withRightAccount() { 18 | return expand(DefaultAccountLink.RIGHT_ACCOUNT); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/api/ApiKeyResolver.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.impl.api; 17 | 18 | import com.stormpath.sdk.api.ApiKey; 19 | 20 | /** 21 | * @since 1.1.0 22 | */ 23 | public interface ApiKeyResolver { 24 | 25 | ApiKey getApiKey(); 26 | 27 | } 28 | -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/authc/BasicApiAuthenticationToken.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.impl.authc; 2 | 3 | /** 4 | * @since 1.0.RC 5 | */ 6 | public class BasicApiAuthenticationToken { 7 | 8 | private final String id; 9 | 10 | private final String secret; 11 | 12 | public BasicApiAuthenticationToken(String id, String secret) { 13 | this.id = id; 14 | this.secret = secret; 15 | } 16 | 17 | public String getId() { 18 | return id; 19 | } 20 | 21 | public String getSecret() { 22 | return secret; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/authc/BasicLoginAttempt.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.impl.authc; 17 | 18 | /** 19 | * @since 0.2 20 | */ 21 | public interface BasicLoginAttempt extends LoginAttempt { 22 | 23 | String getValue(); 24 | 25 | void setValue(String value); 26 | 27 | } 28 | -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/authc/credentials/ClientCredentialsProvider.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.impl.authc.credentials; 17 | 18 | /** 19 | * @since 1.0.4 20 | */ 21 | public interface ClientCredentialsProvider { 22 | 23 | ClientCredentials getClientCredentials(); 24 | 25 | } 26 | -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/config/EnvVarNameConverter.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.impl.config; 2 | 3 | public interface EnvVarNameConverter { 4 | 5 | String toEnvVarName(String dottedPropertyName); 6 | 7 | String toDottedPropertyName(String envVarName); 8 | } 9 | -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/config/EnvironmentVariablesPropertiesSource.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.impl.config; 2 | 3 | import com.stormpath.sdk.lang.Collections; 4 | 5 | import java.util.LinkedHashMap; 6 | import java.util.Map; 7 | 8 | public class EnvironmentVariablesPropertiesSource implements PropertiesSource { 9 | 10 | @Override 11 | public Map getProperties() { 12 | 13 | Map envVars = System.getenv(); 14 | 15 | if (!Collections.isEmpty(envVars)) { 16 | return new LinkedHashMap(envVars); 17 | } 18 | 19 | return java.util.Collections.emptyMap(); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/config/PropertiesSource.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.impl.config; 2 | 3 | import java.util.Map; 4 | 5 | public interface PropertiesSource { 6 | 7 | Map getProperties(); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/config/ResourcePropertiesSource.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.impl.config; 2 | 3 | import com.stormpath.sdk.impl.io.Resource; 4 | import com.stormpath.sdk.lang.Assert; 5 | 6 | import java.io.IOException; 7 | import java.util.Map; 8 | 9 | public class ResourcePropertiesSource implements PropertiesSource { 10 | 11 | private final Resource resource; 12 | 13 | public ResourcePropertiesSource(Resource resource) { 14 | Assert.notNull(resource, "resource argument cannot be null."); 15 | this.resource = resource; 16 | } 17 | 18 | @Override 19 | public Map getProperties() { 20 | try { 21 | return new DefaultPropertiesParser().parse(resource); 22 | } catch (IOException e) { 23 | throw new IllegalArgumentException("Unable to read resource [" + resource + "]: " + e.getMessage(), e); 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/ds/CacheRegionNameResolver.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.impl.ds; 17 | 18 | import com.stormpath.sdk.resource.Resource; 19 | 20 | /** 21 | * @since 0.8 22 | */ 23 | public interface CacheRegionNameResolver { 24 | 25 | String getCacheRegionName(Class clazz); 26 | } 27 | -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/ds/Filter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.impl.ds; 17 | 18 | public interface Filter { 19 | 20 | ResourceDataResult filter(ResourceDataRequest request, FilterChain chain); 21 | 22 | } 23 | -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/ds/FilterChain.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.impl.ds; 17 | 18 | public interface FilterChain { 19 | 20 | ResourceDataResult filter(ResourceDataRequest request); 21 | 22 | } 23 | -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/ds/ResourceAction.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.impl.ds; 17 | 18 | public enum ResourceAction { 19 | 20 | CREATE, READ, UPDATE, DELETE 21 | } 22 | -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/ds/ResourceConverter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.impl.ds; 17 | 18 | import com.stormpath.sdk.impl.resource.AbstractResource; 19 | 20 | import java.util.Map; 21 | 22 | public interface ResourceConverter { 23 | 24 | Map convert(AbstractResource resource); 25 | 26 | } 27 | -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/ds/ResourceDataResult.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.impl.ds; 17 | 18 | public interface ResourceDataResult extends ResourceMessage { 19 | 20 | ResourceAction getAction(); 21 | } 22 | -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/ds/ResourceFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.impl.ds; 17 | 18 | import com.stormpath.sdk.resource.Resource; 19 | 20 | /** 21 | * @since 0.1 22 | */ 23 | public interface ResourceFactory { 24 | 25 | T instantiate(Class clazz, Object... constructorArgs); 26 | 27 | } 28 | -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/ds/cache/CacheResolver.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.impl.ds.cache; 17 | 18 | import com.stormpath.sdk.cache.Cache; 19 | 20 | import java.util.Map; 21 | 22 | public interface CacheResolver { 23 | 24 | Cache> getCache(Class clazz); 25 | 26 | } 27 | -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/http/Content.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.impl.http; 17 | 18 | import java.io.InputStream; 19 | 20 | /** 21 | * @since 0.1 22 | */ 23 | public interface Content { 24 | 25 | InputStream getInputStream(); 26 | 27 | long getLength(); 28 | 29 | boolean isEmpty(); 30 | } 31 | -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/http/HttpHeadersHolder.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.impl.http; 2 | 3 | import java.util.List; 4 | import java.util.Map; 5 | 6 | /** 7 | * This class is used to hold key/value pairs in a ThreadLocal. 8 | */ 9 | public abstract class HttpHeadersHolder { 10 | private static ThreadLocal>> current = new ThreadLocal<>(); 11 | 12 | public static void set(Map> headers) { 13 | current.set(headers); 14 | } 15 | 16 | public static Map> get() { 17 | return current.get(); 18 | } 19 | 20 | public static void clear() { 21 | current.remove(); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/http/RequestExecutor.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.impl.http; 17 | 18 | /** 19 | * @since 0.1 20 | */ 21 | public interface RequestExecutor { 22 | 23 | Response executeRequest(Request request) throws RestException; 24 | 25 | } 26 | -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/http/authc/MacAlgorithm.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.impl.http.authc; 17 | 18 | /** 19 | * @since 0.1 20 | */ 21 | public enum MacAlgorithm { 22 | 23 | HmacSHA1, 24 | 25 | HmacSHA256 26 | } 27 | -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/http/support/BackoffStrategy.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.impl.http.support; 17 | 18 | /** 19 | * @since 0.1 20 | */ 21 | public interface BackoffStrategy { 22 | 23 | long getDelayMillis(int retryCount); 24 | } 25 | -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/io/ClasspathResource.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.impl.io; 2 | 3 | import com.stormpath.sdk.lang.Classes; 4 | 5 | import java.io.IOException; 6 | import java.io.InputStream; 7 | 8 | public class ClasspathResource extends AbstractResource { 9 | 10 | public static final String SCHEME = "classpath"; 11 | public static final String SCHEME_PREFIX = SCHEME + ":"; 12 | 13 | public ClasspathResource(String location) { 14 | super(location); 15 | } 16 | 17 | @Override 18 | protected String getScheme() { 19 | return SCHEME; 20 | } 21 | 22 | @Override 23 | public InputStream getInputStream() throws IOException { 24 | return Classes.getResourceAsStream(getLocation()); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/io/DefaultResourceFactory.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.impl.io; 2 | 3 | import com.stormpath.sdk.lang.Assert; 4 | 5 | public class DefaultResourceFactory implements ResourceFactory { 6 | 7 | @Override 8 | public Resource createResource(String location) { 9 | Assert.hasText(location, "location argument cannot be null or empty."); 10 | 11 | if (location.startsWith(ClasspathResource.SCHEME_PREFIX)) { 12 | return new ClasspathResource(location); 13 | } 14 | 15 | String lcase = location.toLowerCase(); 16 | 17 | if (location.startsWith(UrlResource.SCHEME_PREFIX) || lcase.startsWith("http:") || lcase.startsWith("https:")) { 18 | return new UrlResource(location); 19 | } 20 | 21 | //otherwise we assume a file: 22 | return new FileResource(location); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/io/FileResource.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.impl.io; 2 | 3 | import java.io.FileInputStream; 4 | import java.io.IOException; 5 | import java.io.InputStream; 6 | 7 | public class FileResource extends AbstractResource { 8 | 9 | public static final String SCHEME = "file"; 10 | public static final String SCHEME_PREFIX = SCHEME + ":"; 11 | 12 | public FileResource(String location) { 13 | super(location); 14 | } 15 | 16 | @Override 17 | protected String getScheme() { 18 | return SCHEME; 19 | } 20 | 21 | @Override 22 | public InputStream getInputStream() throws IOException { 23 | return new FileInputStream(getLocation()); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/io/Resource.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.impl.io; 2 | 3 | import java.io.IOException; 4 | import java.io.InputStream; 5 | 6 | public interface Resource { 7 | 8 | InputStream getInputStream() throws IOException; 9 | } 10 | -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/io/ResourceFactory.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.impl.io; 2 | 3 | public interface ResourceFactory { 4 | 5 | Resource createResource(String location); 6 | } 7 | -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/io/UrlResource.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.impl.io; 2 | 3 | import java.io.IOException; 4 | import java.io.InputStream; 5 | import java.net.URL; 6 | 7 | public class UrlResource extends AbstractResource { 8 | 9 | public static final String SCHEME = "url"; 10 | public static final String SCHEME_PREFIX = SCHEME + ":"; 11 | 12 | public UrlResource(String location) { 13 | super(location); 14 | } 15 | 16 | @Override 17 | protected String getScheme() { 18 | return SCHEME; 19 | } 20 | 21 | @Override 22 | public InputStream getInputStream() throws IOException { 23 | URL url = new URL(getLocation()); 24 | return url.openStream(); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/mail/template/DefaultTemplateRenderRequest.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.impl.mail.template; 2 | 3 | import com.stormpath.sdk.mail.templates.TemplateRenderRequest; 4 | 5 | import java.util.Map; 6 | 7 | /** 8 | */ 9 | public class DefaultTemplateRenderRequest implements TemplateRenderRequest { 10 | 11 | private String template; 12 | private Map context; 13 | 14 | @Override 15 | public String getTemplate() { 16 | return template; 17 | } 18 | 19 | @Override 20 | public TemplateRenderRequest setTemplate(String template) { 21 | this.template = template; 22 | return this; 23 | } 24 | 25 | @Override 26 | public Map getContext() { 27 | return context; 28 | } 29 | 30 | @Override 31 | public TemplateRenderRequest setContext(Map context) { 32 | this.context = context; 33 | return this; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/oauth/DefaultOAuthClientCredentialsRequestAuthenticatorFactory.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.impl.oauth; 2 | 3 | import com.stormpath.sdk.application.Application; 4 | import com.stormpath.sdk.application.OAuthApplication; 5 | import com.stormpath.sdk.oauth.OAuthClientCredentialsGrantRequestAuthenticator; 6 | import com.stormpath.sdk.oauth.OAuthClientCredentialsRequestAuthenticatorFactory; 7 | 8 | /** 9 | * @since 1.0.0 10 | */ 11 | public class DefaultOAuthClientCredentialsRequestAuthenticatorFactory implements OAuthClientCredentialsRequestAuthenticatorFactory { 12 | @Override 13 | public OAuthClientCredentialsGrantRequestAuthenticator forApplication(Application application) { 14 | return ((OAuthApplication) application).createClientCredentialsGrantAuthenticator(); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/oauth/DefaultOAuthStormpathSocialRequestAuthenticatorFactory.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.impl.oauth; 2 | 3 | import com.stormpath.sdk.application.Application; 4 | import com.stormpath.sdk.application.OAuthApplication; 5 | import com.stormpath.sdk.oauth.OAuthStormpathSocialGrantRequestAuthenticator; 6 | import com.stormpath.sdk.oauth.OAuthStormpathSocialRequestAuthenticatorFactory; 7 | 8 | /** 9 | * @since 1.0.0 10 | */ 11 | public class DefaultOAuthStormpathSocialRequestAuthenticatorFactory implements OAuthStormpathSocialRequestAuthenticatorFactory { 12 | @Override 13 | public OAuthStormpathSocialGrantRequestAuthenticator forApplication(Application application) { 14 | return ((OAuthApplication) application).createStormpathSocialGrantAuthenticator(); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/oauth/OAuthClientCredentialsGrantAuthenticationAttempt.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.impl.oauth; 2 | 3 | import com.stormpath.sdk.resource.Resource; 4 | 5 | /** 6 | * @since 1.0.0 7 | */ 8 | public interface OAuthClientCredentialsGrantAuthenticationAttempt extends Resource { 9 | /** 10 | * Method used to set the Authentication Grant Type that will be used for the token exchange request. Currently only "password" grant type is supported for this operation. 11 | * @param grantType the Authentication Grant Type that will be used for the token exchange request. 12 | */ 13 | void setGrantType(String grantType); 14 | 15 | void setApiKeyId(String apiKeyId); 16 | 17 | void setApiKeySecret(String apiKeySecret); 18 | } 19 | -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/okta/OktaApiPaths.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.impl.okta; 2 | 3 | /** 4 | * Static path properties in one place. 5 | */ 6 | public final class OktaApiPaths { 7 | 8 | public static final String API_V1 = "/api/v1/"; 9 | 10 | public static final String USERS = API_V1 + "users/"; 11 | 12 | public static final String PASSWORD_RECOVERY = API_V1 + "authn/recovery/password"; 13 | 14 | public static String apiPath(String ... parts) { 15 | 16 | return buildPath(API_V1, parts); 17 | } 18 | 19 | private static String buildPath(String base, String ... parts) { 20 | StringBuilder urlPart = new StringBuilder(base); 21 | for (String part : parts) { 22 | if ('/' != urlPart.charAt(urlPart.length()-1)) { 23 | urlPart.append("/"); 24 | } 25 | urlPart.append(part); 26 | } 27 | return urlPart.toString(); 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/okta/OktaSigningKeyResolver.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.impl.okta; 2 | 3 | import com.stormpath.sdk.resource.Resource; 4 | import io.jsonwebtoken.SigningKeyResolver; 5 | 6 | /** 7 | * 8 | */ 9 | public interface OktaSigningKeyResolver extends SigningKeyResolver, Resource { 10 | 11 | OktaSigningKeyResolver setKeysUrl(String keysUrl); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/provider/DefaultOktaAccountRequestBuilder.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.impl.provider; 2 | 3 | import com.stormpath.sdk.provider.OktaAccountRequestBuilder; 4 | import com.stormpath.sdk.provider.ProviderData; 5 | 6 | import java.util.Map; 7 | 8 | /** 9 | */ 10 | public class DefaultOktaAccountRequestBuilder extends AbstractSocialProviderAccountRequestBuilder implements OktaAccountRequestBuilder { 11 | 12 | @Override 13 | protected String getConcreteProviderId() { 14 | return IdentityProviderType.OKTA.getNameKey(); 15 | } 16 | 17 | @Override 18 | protected ProviderData newProviderData(Map properties) { 19 | return new DefaultOktaProviderData(null, properties); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/provider/DefaultOktaProviderRequestFactory.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.impl.provider; 2 | 3 | import com.stormpath.sdk.lang.Classes; 4 | import com.stormpath.sdk.provider.OktaAccountRequestBuilder; 5 | import com.stormpath.sdk.provider.OktaCreateProviderRequestBuilder; 6 | import com.stormpath.sdk.provider.OktaRequestFactory; 7 | 8 | /** 9 | */ 10 | public class DefaultOktaProviderRequestFactory implements OktaRequestFactory { 11 | @Override 12 | public OktaAccountRequestBuilder account() { 13 | return (OktaAccountRequestBuilder) Classes.newInstance("com.stormpath.sdk.impl.provider.DefaultOktaAccountRequestBuilder"); 14 | } 15 | 16 | @Override 17 | public OktaCreateProviderRequestBuilder builder() { 18 | return (OktaCreateProviderRequestBuilder) Classes.newInstance("com.stormpath.sdk.impl.provider.DefaultOktaCreateProviderRequestBuilder"); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/provider/DefaultTwitterRequestFactory.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.impl.provider; 2 | 3 | import com.stormpath.sdk.lang.Classes; 4 | import com.stormpath.sdk.provider.TwitterAccountRequestBuilder; 5 | import com.stormpath.sdk.provider.TwitterCreateProviderRequestBuilder; 6 | import com.stormpath.sdk.provider.TwitterRequestFactory; 7 | 8 | /** 9 | * @since 1.3.0 10 | */ 11 | public class DefaultTwitterRequestFactory implements TwitterRequestFactory { 12 | 13 | @Override 14 | public TwitterAccountRequestBuilder account() { 15 | return (TwitterAccountRequestBuilder) Classes.newInstance("com.stormpath.sdk.impl.provider.DefaultTwitterAccountRequestBuilder"); 16 | } 17 | 18 | @Override 19 | public TwitterCreateProviderRequestBuilder builder() { 20 | return (TwitterCreateProviderRequestBuilder) Classes.newInstance("com.stormpath.sdk.impl.provider.DefaultTwitterCreateProviderRequestBuilder"); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/query/Expandable.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.impl.query; 17 | 18 | import java.util.List; 19 | 20 | /** 21 | * @since 0.8 22 | */ 23 | public interface Expandable { 24 | 25 | List getExpansions(); 26 | } 27 | -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/resource/BooleanProperty.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.impl.resource; 17 | 18 | /** 19 | * @since 0.9 20 | */ 21 | public class BooleanProperty extends Property { 22 | 23 | public BooleanProperty(String name) { 24 | super(name, Boolean.class); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/resource/DateProperty.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.impl.resource; 17 | 18 | import java.util.Date; 19 | 20 | /** 21 | * @since 0.9 22 | */ 23 | public class DateProperty extends Property { 24 | 25 | public DateProperty(String name) { 26 | super(name, Date.class); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/resource/IntegerProperty.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.impl.resource; 17 | 18 | /** 19 | * @since 0.8 20 | */ 21 | public class IntegerProperty extends NonStringProperty { 22 | 23 | public IntegerProperty(String name) { 24 | super(name, Integer.class); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/resource/ListProperty.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.impl.resource; 17 | 18 | import java.util.List; 19 | 20 | /** 21 | * @since 1.0.RC8 22 | */ 23 | public class ListProperty extends Property { 24 | 25 | public ListProperty(String name) { 26 | super(name, List.class); 27 | } 28 | } -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/resource/SetProperty.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.impl.resource; 17 | 18 | /** 19 | * @since 1.0.RC8 20 | */ 21 | public class SetProperty extends Property { 22 | 23 | public SetProperty(String name, Class type) { 24 | super(name, type); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/saml/SamlResultStatus.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.impl.saml; 17 | 18 | /** 19 | * @since 1.0.RC8 20 | */ 21 | public enum SamlResultStatus { 22 | 23 | AUTHENTICATED, LOGOUT; 24 | 25 | } 26 | -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/security/EncryptionService.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.impl.security; 17 | 18 | /** 19 | * @since 1.0.RC 20 | */ 21 | public interface EncryptionService { 22 | 23 | String decryptBase64String(String base64EncryptedValue); 24 | } 25 | -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/security/SaltGenerator.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.impl.security; 17 | 18 | /** 19 | * @since 1.0.RC 20 | */ 21 | public interface SaltGenerator { 22 | 23 | String generate(); 24 | } 25 | -------------------------------------------------------------------------------- /impl/src/main/java/com/stormpath/sdk/impl/util/BaseUrlResolver.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 Stormpath, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.stormpath.sdk.impl.util; 17 | 18 | /** 19 | * @since 1.2.0 20 | */ 21 | public interface BaseUrlResolver { 22 | String getBaseUrl(); 23 | } 24 | -------------------------------------------------------------------------------- /impl/src/main/resources/com/stormpath/sdk/config/stormpath.properties: -------------------------------------------------------------------------------- 1 | stormpath.client.apiKey.file: 2 | stormpath.client.apiKey.id: 3 | stormpath.client.apiKey.secret: 4 | stormpath.client.cacheManager.enabled: true 5 | stormpath.client.cacheManager.defaultTtl: 300 6 | stormpath.client.cacheManager.defaultTti: 300 7 | stormpath.client.baseUrl: https://api.stormpath.com/v1 8 | stormpath.client.connectionTimeout: 30 9 | stormpath.client.authenticationScheme: SAUTHC1 10 | stormpath.client.proxy.port: 11 | stormpath.client.proxy.host: 12 | stormpath.client.proxy.username: 13 | stormpath.client.proxy.password: -------------------------------------------------------------------------------- /impl/src/main/resources/com/stormpath/sdk/version.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2014 Stormpath, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | ${project.version} -------------------------------------------------------------------------------- /impl/src/test/groovy/com/stormpath/sdk/impl/authc/BasicApiAuthenticationTokenTest.groovy: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.impl.authc 2 | 3 | import org.testng.annotations.Test 4 | 5 | import static org.testng.Assert.assertEquals 6 | 7 | /** 8 | * @since 1.0.RC9 9 | */ 10 | class BasicApiAuthenticationTokenTest { 11 | 12 | @Test 13 | void testBasicApiAuthenticationToken() { 14 | 15 | def token = new BasicApiAuthenticationToken("my id", "my secret") 16 | 17 | assertEquals token.id, "my id" 18 | assertEquals token.secret, "my secret" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /impl/src/test/groovy/com/stormpath/sdk/impl/client/Account.groovy: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.impl.client 2 | 3 | // Class used to test cache configuration 4 | class Account { 5 | def name 6 | } -------------------------------------------------------------------------------- /impl/src/test/groovy/com/stormpath/sdk/impl/config/SystemPropertiesSourceTest.groovy: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.impl.config 2 | 3 | import org.testng.annotations.Test 4 | 5 | import static org.testng.Assert.assertEquals 6 | 7 | /** 8 | * @since 1.0.RC9 9 | */ 10 | class SystemPropertiesSourceTest { 11 | 12 | static { 13 | System.setProperty("MY_SPECIAL_PROPERTY", "MY_SPECIAL_VALUE") 14 | } 15 | 16 | @Test 17 | void test() { 18 | 19 | def systemProperties = new SystemPropertiesSource() 20 | def properties = systemProperties.getProperties() 21 | 22 | assertEquals properties.get("MY_SPECIAL_PROPERTY"), "MY_SPECIAL_VALUE" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /impl/src/test/groovy/com/stormpath/sdk/impl/idsite/TestIdSiteResultListenerType.groovy: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.impl.idsite 2 | 3 | public enum TestIdSiteResultListenerType { 4 | SINGLE, MULTI, NONE, SET, ADD 5 | } 6 | -------------------------------------------------------------------------------- /impl/src/test/groovy/com/stormpath/sdk/impl/io/ClasspathResourceTest.groovy: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.impl.io 2 | 3 | import org.testng.annotations.Test 4 | 5 | import static org.testng.Assert.assertNotNull 6 | 7 | /** 8 | * @since 1.0.RC9 9 | */ 10 | class ClasspathResourceTest { 11 | 12 | @Test 13 | void testInputStream() { 14 | def classpathResource = new ClasspathResource("classpath:com/stormpath/sdk/impl/io/DefaultResourceFactory.class") 15 | 16 | assertNotNull classpathResource.inputStream 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /impl/src/test/groovy/com/stormpath/sdk/impl/io/DefaultResourceFactoryTest.groovy: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.impl.io 2 | 3 | import org.testng.annotations.BeforeMethod 4 | import org.testng.annotations.Test 5 | 6 | import static org.testng.Assert.assertTrue 7 | 8 | /** 9 | * @since 1.0.RC9 10 | */ 11 | class DefaultResourceFactoryTest { 12 | 13 | def resourceFactory 14 | 15 | @BeforeMethod 16 | void setup() { 17 | resourceFactory = new DefaultResourceFactory() 18 | } 19 | 20 | @Test 21 | void testCreateResourceClasspath() { 22 | def resource = resourceFactory.createResource("classpath:com/stormpath/sdk/impl/io/DefaultResourceFactory.class") 23 | 24 | assertTrue resource instanceof ClasspathResource 25 | } 26 | 27 | @Test 28 | void testCreateResourceUrl() { 29 | def resource = resourceFactory.createResource("https://www.google.com") 30 | 31 | assertTrue resource instanceof UrlResource 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /impl/src/test/groovy/com/stormpath/sdk/impl/io/UrlResourceTest.groovy: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.impl.io 2 | 3 | import org.testng.annotations.Test 4 | 5 | import static org.testng.Assert.assertEquals 6 | import static org.testng.Assert.assertNotNull 7 | 8 | /** 9 | * @since 1.0.RC9 10 | */ 11 | class UrlResourceTest { 12 | 13 | @Test 14 | void testLocation() { 15 | def resource = new UrlResource("url:https://www.google.com") 16 | 17 | assertEquals resource.location, "https://www.google.com" 18 | 19 | // This doesn't seem right, but it's how the code is setup right now 20 | assertEquals resource.toString(), "urlhttps://www.google.com" 21 | } 22 | 23 | @Test 24 | void testInputStream() { 25 | def resource = new UrlResource("url:https://www.google.com") 26 | 27 | assertNotNull resource.inputStream 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /impl/src/test/java/com/stormpath/sdk/impl/config/TestStringResource.java: -------------------------------------------------------------------------------- 1 | package com.stormpath.sdk.impl.config; 2 | 3 | import com.stormpath.sdk.impl.io.Resource; 4 | 5 | import java.io.ByteArrayInputStream; 6 | import java.io.IOException; 7 | import java.io.InputStream; 8 | 9 | /** 10 | * @since 1.0.RC9 11 | */ 12 | public class TestStringResource implements Resource { 13 | 14 | private String string; 15 | 16 | public TestStringResource(String string) { 17 | this.string = string; 18 | } 19 | 20 | @Override 21 | public InputStream getInputStream() throws IOException { 22 | return new ByteArrayInputStream(string.getBytes()); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /impl/src/test/resources/credentials.txt: -------------------------------------------------------------------------------- 1 | apiKey.id = 1234 2 | apiKey.secret = 5678 -------------------------------------------------------------------------------- /impl/src/test/resources/key.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-java/72d5d21afbb85815d2e10c73bc2545ca55204561/impl/src/test/resources/key.txt -------------------------------------------------------------------------------- /impl/src/test/resources/stormpath.json: -------------------------------------------------------------------------------- 1 | { 2 | "stormpath": { 3 | "client": { 4 | "proxy": { 5 | "port": 9999, 6 | "host": "proxyhost" 7 | } 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /impl/src/test/resources/stormpath.properties: -------------------------------------------------------------------------------- 1 | stormpath.client.apiKey.file: classpath:key.txt 2 | stormpath.client.apiKey.id: 12 3 | stormpath.client.apiKey.secret: 13 4 | stormpath.client.cacheManager.enabled: true 5 | stormpath.client.cacheManager.defaultTtl: 10000 6 | stormpath.client.cacheManager.defaultTti: 10000 7 | stormpath.client.cacheManager.caches.com.stormpath.sdk.impl.client.Account.tti=1000 8 | stormpath.client.cacheManager.caches.com.stormpath.sdk.impl.client.Account.ttl=1500 9 | stormpath.client.baseUrl: https://api.stormpath.com/v42 10 | stormpath.client.connectionTimeout: 10 11 | stormpath.client.authenticationScheme: BASIC 12 | stormpath.client.proxy.port: 9000 13 | stormpath.client.proxy.host: localhost 14 | stormpath.client.proxy.username: foo 15 | stormpath.client.proxy.password: bar -------------------------------------------------------------------------------- /impl/src/test/resources/stormpath.yaml: -------------------------------------------------------------------------------- 1 | stormpath: 2 | client: 3 | proxy: 4 | host: "proxyyaml" 5 | username: "fooyaml" 6 | -------------------------------------------------------------------------------- /tutorials/README.md: -------------------------------------------------------------------------------- 1 | ## Tutorials 2 | 3 | Each part of the tutorial code can be run completely standalone - inside the sdk here or in a folder that you create. 4 | 5 | You can use the tutorials as a starting point for your own projects. 6 | 7 | For instance, if you wanted to build a Spring Boot WebMVC project, including Spring Security integrated with Stormpath, you 8 | could do the following: 9 | 10 | ``` 11 | mkdir MyProject 12 | cd MyProject 13 | cp -r /tutorials/spring-boot/03-spring-security-refined/* . 14 | mvn clean package 15 | java -jar target/*.jar 16 | ``` 17 | 18 | For more information, refer to the links found on the [homepage](https://github.com/stormpath/stormpath-sdk-java) of the Java SDK Project. -------------------------------------------------------------------------------- /tutorials/spring-boot/02-spring-security-ftw/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2015 Stormpath, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | # If you have more than one application registered with Stormpath, you must specify which one 18 | # corresponds to this webapp: 19 | # 20 | #stormpath.application.href = https://api.stormpath.com/v1/applications/YOUR_APPLICATION_ID_HERE 21 | -------------------------------------------------------------------------------- /tutorials/spring-boot/05-token-management/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2015 Stormpath, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | # If you have more than one application registered with Stormpath, you must specify which one 18 | # corresponds to this webapp: 19 | # 20 | #stormpath.application.href = https://api.stormpath.com/v1/applications/YOUR_APPLICATION_ID_HERE 21 | -------------------------------------------------------------------------------- /tutorials/spring-boot/05-token-management/src/main/resources/static/index.html: -------------------------------------------------------------------------------- 1 |

Congrats! You Made it!

-------------------------------------------------------------------------------- /tutorials/spring/02-spring-security-ftw/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2017 Stormpath, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | # If you have more than one application registered with Stormpath, you must specify which one 18 | # corresponds to this webapp: 19 | # 20 | #stormpath.application.href = https://api.stormpath.com/v1/applications/YOUR_APPLICATION_ID_HERE 21 | -------------------------------------------------------------------------------- /tutorials/spring/05-token-management/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2017 Stormpath, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | # If you have more than one application registered with Stormpath, you must specify which one 18 | # corresponds to this webapp: 19 | # 20 | #stormpath.application.href = https://api.stormpath.com/v1/applications/YOUR_APPLICATION_ID_HERE 21 | -------------------------------------------------------------------------------- /tutorials/spring/05-token-management/src/main/webapp/static/index.html: -------------------------------------------------------------------------------- 1 |

Congrats! You Made it!

--------------------------------------------------------------------------------