protected virtual void EnsureClientExists(TokenRequestMessage message) { var clientId = message.Parameters[OAuthConstants.ClientId]; if (!this.ClientStore.ClientExists(clientId)) { throw new OAuthException(OAuthErrorCodes.InvalidClient, string.Format("The client_id '{0}' is not registered", clientId)); } }
public override bool CanValidateMessage(TokenRequestMessage message) { if (message.Type == RequestGrantType.None) { return true; } return false; }
public TokenResponseMessage CreateResponse(TokenRequestMessage message, NameValueCollection additionalInfo) { TokenResponseMessage response = new TokenResponseMessage(); response.AccessToken = this.CreateAccessToken(message, additionalInfo); response.RefreshToken = this.CreateRefreshToken(); response.AccessTokenExpiresIn = TimeSpan.FromSeconds(this.serviceConfig.SimpleWebTokenHandlerConfiguration.Issuer.TokenExpirationInSeconds); return response; }
public override NameValueCollection Validate(TokenRequestMessage message) { string clientId = message.Parameters[OAuthConstants.ClientId]; string clientSecret = message.Parameters[OAuthConstants.ClientSecret]; if (string.IsNullOrEmpty(clientId) || string.IsNullOrEmpty(clientSecret)) { throw new InvalidOperationException("client_id and client_secret must be present for this profile"); } bool valid = this.ClientStore.ValidateClient(clientId, clientSecret); if (!valid) { throw new InvalidOperationException("client_id is not registered or client_secret is invalid"); } message.Parameters.Remove(OAuthConstants.ClientSecret); return message.Parameters; }
public virtual TokenRequestMessage ReadMessage(StreamReader reader) { NameValueCollection requestParameters; string requestString; requestString = reader.ReadToEnd(); reader.Close(); requestParameters = HttpUtility.ParseQueryString(requestString); var message = new TokenRequestMessage(); foreach (string key in requestParameters.AllKeys) { if (key == OAuthConstants.GrantType) { message.Type = requestParameters[key]; requestParameters.Remove(key); } message.Parameters = requestParameters; } return message; }
private string CreateAccessToken(TokenRequestMessage message, NameValueCollection additionalInfo) { var scope = message.Parameters["scope"]; var validity = TimeSpan.FromSeconds(this.serviceConfig.SimpleWebTokenHandlerConfiguration.Issuer.TokenExpirationInSeconds); var swt = CreateSimpleWebToken(this.serviceConfig.SimpleWebTokenHandlerConfiguration.Issuer.IssuerIdentifier, scope, validity, additionalInfo); var accessToken = SerializeToken(swt, this.serviceConfig.SecurityTokenHandlers); return accessToken; }
public abstract NameValueCollection Validate(TokenRequestMessage message);
public virtual bool CanValidateMessage(TokenRequestMessage message) { return false; }