├── .gitignore ├── OAuth2Server.dpk ├── OAuth2Server.dproj ├── README.md ├── boss-lock.json ├── boss.json └── src ├── OAuth2.AuthorizationServer.pas ├── OAuth2.CryptKey.pas ├── OAuth2.ResourceServer.pas ├── authorization-validators ├── OAuth2.AuthorizationValidator.Contract.pas └── OAuth2.BearerTokenValidator.pas ├── code-challenge-verifiers ├── OAuth2.CodeChallengeVerifier.Contract.pas ├── OAuth2.CodeChallengeVerifier.PlainVerifier.pas └── OAuth2.CodeChallengeVerifier.S256Verifier.pas ├── entities ├── OAuth2.Entity.AccessToken.Contract.pas ├── OAuth2.Entity.AuthCode.Contract.pas ├── OAuth2.Entity.Client.Contract.pas ├── OAuth2.Entity.RefreshToken.Contract.pas ├── OAuth2.Entity.Scope.Contract.pas ├── OAuth2.Entity.Token.Contract.pas ├── OAuth2.Entity.User.Contract.pas └── concrets │ ├── OAuth2.Entity.AccessToken.pas │ ├── OAuth2.Entity.AuthCode.pas │ ├── OAuth2.Entity.Client.pas │ ├── OAuth2.Entity.RefreshToken.pas │ ├── OAuth2.Entity.Scope.pas │ ├── OAuth2.Entity.Token.pas │ └── OAuth2.Entity.User.pas ├── exception └── OAuth2.Exception.ServerException.pas ├── grant ├── OAuth2.Grant.AbstractAuthorize.pas ├── OAuth2.Grant.AbstractGrant.pas ├── OAuth2.Grant.AuthCode.pas ├── OAuth2.Grant.ClientCredentials.pas ├── OAuth2.Grant.GrantType.Contract.pas ├── OAuth2.Grant.Implicit.pas ├── OAuth2.Grant.Password.pas └── OAuth2.Grant.RefreshToken.pas ├── providers └── OAuth2.Provider.Crypto.pas ├── repositories ├── OAuth2.Repository.AccessToken.Contract.pas ├── OAuth2.Repository.AuthCode.Contract.pas ├── OAuth2.Repository.Client.Contract.pas ├── OAuth2.Repository.Contract.pas ├── OAuth2.Repository.RefreshToken.Contract.pas ├── OAuth2.Repository.Scope.Contract.pas └── OAuth2.Repository.User.Contract.pas ├── request-type └── OAuth2.RequestType.AuthorizationRequest.pas └── response-type ├── OAuth2.ResponseType.Abstract.pas ├── OAuth2.ResponseType.BearerTokenResponse.pas ├── OAuth2.ResponseType.Contract.pas └── OAuth2.ResponseType.RedirectResponse.pas /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/.gitignore -------------------------------------------------------------------------------- /OAuth2Server.dpk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/OAuth2Server.dpk -------------------------------------------------------------------------------- /OAuth2Server.dproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/OAuth2Server.dproj -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/README.md -------------------------------------------------------------------------------- /boss-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/boss-lock.json -------------------------------------------------------------------------------- /boss.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/boss.json -------------------------------------------------------------------------------- /src/OAuth2.AuthorizationServer.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/src/OAuth2.AuthorizationServer.pas -------------------------------------------------------------------------------- /src/OAuth2.CryptKey.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/src/OAuth2.CryptKey.pas -------------------------------------------------------------------------------- /src/OAuth2.ResourceServer.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/src/OAuth2.ResourceServer.pas -------------------------------------------------------------------------------- /src/authorization-validators/OAuth2.AuthorizationValidator.Contract.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/src/authorization-validators/OAuth2.AuthorizationValidator.Contract.pas -------------------------------------------------------------------------------- /src/authorization-validators/OAuth2.BearerTokenValidator.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/src/authorization-validators/OAuth2.BearerTokenValidator.pas -------------------------------------------------------------------------------- /src/code-challenge-verifiers/OAuth2.CodeChallengeVerifier.Contract.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/src/code-challenge-verifiers/OAuth2.CodeChallengeVerifier.Contract.pas -------------------------------------------------------------------------------- /src/code-challenge-verifiers/OAuth2.CodeChallengeVerifier.PlainVerifier.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/src/code-challenge-verifiers/OAuth2.CodeChallengeVerifier.PlainVerifier.pas -------------------------------------------------------------------------------- /src/code-challenge-verifiers/OAuth2.CodeChallengeVerifier.S256Verifier.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/src/code-challenge-verifiers/OAuth2.CodeChallengeVerifier.S256Verifier.pas -------------------------------------------------------------------------------- /src/entities/OAuth2.Entity.AccessToken.Contract.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/src/entities/OAuth2.Entity.AccessToken.Contract.pas -------------------------------------------------------------------------------- /src/entities/OAuth2.Entity.AuthCode.Contract.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/src/entities/OAuth2.Entity.AuthCode.Contract.pas -------------------------------------------------------------------------------- /src/entities/OAuth2.Entity.Client.Contract.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/src/entities/OAuth2.Entity.Client.Contract.pas -------------------------------------------------------------------------------- /src/entities/OAuth2.Entity.RefreshToken.Contract.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/src/entities/OAuth2.Entity.RefreshToken.Contract.pas -------------------------------------------------------------------------------- /src/entities/OAuth2.Entity.Scope.Contract.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/src/entities/OAuth2.Entity.Scope.Contract.pas -------------------------------------------------------------------------------- /src/entities/OAuth2.Entity.Token.Contract.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/src/entities/OAuth2.Entity.Token.Contract.pas -------------------------------------------------------------------------------- /src/entities/OAuth2.Entity.User.Contract.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/src/entities/OAuth2.Entity.User.Contract.pas -------------------------------------------------------------------------------- /src/entities/concrets/OAuth2.Entity.AccessToken.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/src/entities/concrets/OAuth2.Entity.AccessToken.pas -------------------------------------------------------------------------------- /src/entities/concrets/OAuth2.Entity.AuthCode.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/src/entities/concrets/OAuth2.Entity.AuthCode.pas -------------------------------------------------------------------------------- /src/entities/concrets/OAuth2.Entity.Client.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/src/entities/concrets/OAuth2.Entity.Client.pas -------------------------------------------------------------------------------- /src/entities/concrets/OAuth2.Entity.RefreshToken.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/src/entities/concrets/OAuth2.Entity.RefreshToken.pas -------------------------------------------------------------------------------- /src/entities/concrets/OAuth2.Entity.Scope.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/src/entities/concrets/OAuth2.Entity.Scope.pas -------------------------------------------------------------------------------- /src/entities/concrets/OAuth2.Entity.Token.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/src/entities/concrets/OAuth2.Entity.Token.pas -------------------------------------------------------------------------------- /src/entities/concrets/OAuth2.Entity.User.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/src/entities/concrets/OAuth2.Entity.User.pas -------------------------------------------------------------------------------- /src/exception/OAuth2.Exception.ServerException.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/src/exception/OAuth2.Exception.ServerException.pas -------------------------------------------------------------------------------- /src/grant/OAuth2.Grant.AbstractAuthorize.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/src/grant/OAuth2.Grant.AbstractAuthorize.pas -------------------------------------------------------------------------------- /src/grant/OAuth2.Grant.AbstractGrant.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/src/grant/OAuth2.Grant.AbstractGrant.pas -------------------------------------------------------------------------------- /src/grant/OAuth2.Grant.AuthCode.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/src/grant/OAuth2.Grant.AuthCode.pas -------------------------------------------------------------------------------- /src/grant/OAuth2.Grant.ClientCredentials.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/src/grant/OAuth2.Grant.ClientCredentials.pas -------------------------------------------------------------------------------- /src/grant/OAuth2.Grant.GrantType.Contract.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/src/grant/OAuth2.Grant.GrantType.Contract.pas -------------------------------------------------------------------------------- /src/grant/OAuth2.Grant.Implicit.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/src/grant/OAuth2.Grant.Implicit.pas -------------------------------------------------------------------------------- /src/grant/OAuth2.Grant.Password.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/src/grant/OAuth2.Grant.Password.pas -------------------------------------------------------------------------------- /src/grant/OAuth2.Grant.RefreshToken.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/src/grant/OAuth2.Grant.RefreshToken.pas -------------------------------------------------------------------------------- /src/providers/OAuth2.Provider.Crypto.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/src/providers/OAuth2.Provider.Crypto.pas -------------------------------------------------------------------------------- /src/repositories/OAuth2.Repository.AccessToken.Contract.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/src/repositories/OAuth2.Repository.AccessToken.Contract.pas -------------------------------------------------------------------------------- /src/repositories/OAuth2.Repository.AuthCode.Contract.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/src/repositories/OAuth2.Repository.AuthCode.Contract.pas -------------------------------------------------------------------------------- /src/repositories/OAuth2.Repository.Client.Contract.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/src/repositories/OAuth2.Repository.Client.Contract.pas -------------------------------------------------------------------------------- /src/repositories/OAuth2.Repository.Contract.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/src/repositories/OAuth2.Repository.Contract.pas -------------------------------------------------------------------------------- /src/repositories/OAuth2.Repository.RefreshToken.Contract.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/src/repositories/OAuth2.Repository.RefreshToken.Contract.pas -------------------------------------------------------------------------------- /src/repositories/OAuth2.Repository.Scope.Contract.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/src/repositories/OAuth2.Repository.Scope.Contract.pas -------------------------------------------------------------------------------- /src/repositories/OAuth2.Repository.User.Contract.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/src/repositories/OAuth2.Repository.User.Contract.pas -------------------------------------------------------------------------------- /src/request-type/OAuth2.RequestType.AuthorizationRequest.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/src/request-type/OAuth2.RequestType.AuthorizationRequest.pas -------------------------------------------------------------------------------- /src/response-type/OAuth2.ResponseType.Abstract.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/src/response-type/OAuth2.ResponseType.Abstract.pas -------------------------------------------------------------------------------- /src/response-type/OAuth2.ResponseType.BearerTokenResponse.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/src/response-type/OAuth2.ResponseType.BearerTokenResponse.pas -------------------------------------------------------------------------------- /src/response-type/OAuth2.ResponseType.Contract.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/src/response-type/OAuth2.ResponseType.Contract.pas -------------------------------------------------------------------------------- /src/response-type/OAuth2.ResponseType.RedirectResponse.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atkins126/oauth2-server/HEAD/src/response-type/OAuth2.ResponseType.RedirectResponse.pas --------------------------------------------------------------------------------