gitextract_6sr2pa59/ ├── .gitignore ├── LICENSE.md ├── README.md ├── build.gradle ├── gradle/ │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle.properties ├── gradlew ├── gradlew.bat └── src/ ├── main/ │ ├── config/ │ │ └── ci/ │ │ └── gradle.properties │ ├── java/ │ │ └── com/ │ │ └── porterhead/ │ │ └── rest/ │ │ ├── api/ │ │ │ ├── ErrorResponse.java │ │ │ ├── PagedQueryRequest.java │ │ │ ├── PagedResponse.java │ │ │ └── ValidationError.java │ │ ├── authorization/ │ │ │ ├── AuthorizationRequestContext.java │ │ │ ├── AuthorizationService.java │ │ │ ├── exception/ │ │ │ │ └── InvalidAuthorizationHeaderException.java │ │ │ └── impl/ │ │ │ ├── RequestSigningAuthorizationService.java │ │ │ ├── SecurityContextImpl.java │ │ │ └── SessionTokenAuthorizationService.java │ │ ├── config/ │ │ │ ├── ApplicationConfig.java │ │ │ ├── ApplicationDevConfig.java │ │ │ ├── ApplicationProductionConfig.java │ │ │ └── ApplicationStagingConfig.java │ │ ├── exception/ │ │ │ ├── ApplicationRuntimeException.java │ │ │ ├── BaseWebApplicationException.java │ │ │ ├── NotFoundException.java │ │ │ └── ValidationException.java │ │ ├── filter/ │ │ │ ├── ResourceFilterFactory.java │ │ │ └── SecurityContextFilter.java │ │ ├── gateway/ │ │ │ └── EmailServicesGateway.java │ │ ├── model/ │ │ │ └── BaseEntity.java │ │ ├── resource/ │ │ │ ├── GenericExceptionMapper.java │ │ │ └── HealthCheckResource.java │ │ ├── service/ │ │ │ └── BaseService.java │ │ ├── user/ │ │ │ ├── EmailServiceTokenModel.java │ │ │ ├── SocialUserRepository.java │ │ │ ├── UserRepository.java │ │ │ ├── UserService.java │ │ │ ├── UserServiceImpl.java │ │ │ ├── VerificationTokenRepository.java │ │ │ ├── VerificationTokenService.java │ │ │ ├── VerificationTokenServiceImpl.java │ │ │ ├── api/ │ │ │ │ ├── AuthenticatedUserToken.java │ │ │ │ ├── CreateUserRequest.java │ │ │ │ ├── EmailVerificationRequest.java │ │ │ │ ├── ExternalUser.java │ │ │ │ ├── LoginRequest.java │ │ │ │ ├── LostPasswordRequest.java │ │ │ │ ├── OAuth2Request.java │ │ │ │ ├── PasswordRequest.java │ │ │ │ ├── SocialProfile.java │ │ │ │ └── UpdateUserRequest.java │ │ │ ├── domain/ │ │ │ │ ├── AuthorizationToken.java │ │ │ │ ├── Role.java │ │ │ │ ├── SocialUser.java │ │ │ │ ├── SocialUserBuilder.java │ │ │ │ ├── User.java │ │ │ │ └── VerificationToken.java │ │ │ ├── exception/ │ │ │ │ ├── AlreadyVerifiedException.java │ │ │ │ ├── AuthenticationException.java │ │ │ │ ├── AuthorizationException.java │ │ │ │ ├── DuplicateUserException.java │ │ │ │ ├── TokenHasExpiredException.java │ │ │ │ ├── TokenNotFoundException.java │ │ │ │ └── UserNotFoundException.java │ │ │ ├── mail/ │ │ │ │ ├── MailSenderService.java │ │ │ │ ├── MockJavaMailSender.java │ │ │ │ └── impl/ │ │ │ │ └── MailSenderServiceImpl.java │ │ │ ├── resource/ │ │ │ │ ├── PasswordResource.java │ │ │ │ ├── UserResource.java │ │ │ │ └── VerificationResource.java │ │ │ └── social/ │ │ │ ├── JpaConnectionRepository.java │ │ │ ├── JpaUsersConnectionRepository.java │ │ │ └── SocialConfig.java │ │ └── util/ │ │ ├── DateUtil.java │ │ ├── HashUtil.java │ │ └── StringUtil.java │ ├── resources/ │ │ ├── META-INF/ │ │ │ ├── persistence.xml │ │ │ ├── spring/ │ │ │ │ ├── component-scan-context.xml │ │ │ │ ├── data-context.xml │ │ │ │ ├── email-services-context.xml │ │ │ │ ├── email-template-context.xml │ │ │ │ ├── root-context.xml │ │ │ │ └── social-configuration-context.xml │ │ │ └── velocity/ │ │ │ ├── LostPasswordEmail.vm │ │ │ ├── RegistrationEmail.vm │ │ │ └── VerifyEmail.vm │ │ ├── logback.xml │ │ ├── properties/ │ │ │ ├── app.properties │ │ │ ├── dev-app.properties │ │ │ ├── production-app.properties │ │ │ └── staging-app.properties │ │ └── schema/ │ │ ├── indexes.sql │ │ ├── message_store.sql │ │ └── truncate_data.sql │ └── webapp/ │ ├── META-INF/ │ │ └── MANIFEST.MF │ ├── WEB-INF/ │ │ ├── spring/ │ │ │ └── appservlet/ │ │ │ └── servlet-context.xml │ │ └── web.xml │ ├── css/ │ │ └── styles.css │ ├── dashboard.html │ ├── forgot_password.html │ ├── index.html │ ├── js/ │ │ ├── bootstrap.js │ │ ├── cookie.js │ │ ├── enc-base64-min.js │ │ ├── grid.locale-en.js │ │ ├── javarest.js │ │ ├── jquery-full-house.js │ │ ├── sha256.js │ │ ├── store.js │ │ ├── user.js │ │ └── verify.js │ ├── request_email.html │ ├── reset_password.html │ ├── signup.html │ └── validate.html └── test/ ├── groovy/ │ ├── BaseIntegrationTst.groovy │ └── UserIntegrationTest.groovy ├── java/ │ └── com/ │ └── porterhead/ │ └── rest/ │ ├── authorization/ │ │ ├── BaseAuthorizationTst.java │ │ ├── RequestSigningAuthorizationServiceTest.java │ │ ├── SecurityContextTest.java │ │ └── SessionTokenAuthorizationServiceTest.java │ ├── filter/ │ │ └── SecurityContextFilterTest.java │ ├── mock/ │ │ └── AppMockConfiguration.java │ ├── resource/ │ │ ├── BaseResourceTst.java │ │ ├── ConsumerSimpleSecurityFilter.java │ │ ├── HealthCheckResourceTest.java │ │ └── SimpleSecurityFilter.java │ └── user/ │ ├── BaseServiceTest.java │ ├── MailSenderServiceTest.java │ ├── UserServiceTest.java │ ├── VerificationServiceTest.java │ ├── api/ │ │ ├── CreateUserRequestTest.java │ │ ├── LoginRequestTest.java │ │ ├── PasswordRequestTest.java │ │ └── ValidationTst.java │ ├── builder/ │ │ └── ExternalUserBuilder.java │ ├── resource/ │ │ ├── PasswordResourceTest.java │ │ ├── UserResourceTest.java │ │ └── VerificationResourceTest.java │ └── social/ │ ├── AbstractSocialTst.java │ ├── JpaConnectionRepositoryTest.java │ └── JpaUsersConnectionRepositoryTest.java └── resources/ ├── integration-test-context.xml └── social-test-context.xml