gtsocial-umbx

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

errors.go (1844B)


      1 package jwt
      2 
      3 import (
      4 	"errors"
      5 )
      6 
      7 // Error constants
      8 var (
      9 	ErrInvalidKey      = errors.New("key is invalid")
     10 	ErrInvalidKeyType  = errors.New("key is of invalid type")
     11 	ErrHashUnavailable = errors.New("the requested hash function is unavailable")
     12 )
     13 
     14 // The errors that might occur when parsing and validating a token
     15 const (
     16 	ValidationErrorMalformed        uint32 = 1 << iota // Token is malformed
     17 	ValidationErrorUnverifiable                        // Token could not be verified because of signing problems
     18 	ValidationErrorSignatureInvalid                    // Signature validation failed
     19 
     20 	// Standard Claim validation errors
     21 	ValidationErrorAudience      // AUD validation failed
     22 	ValidationErrorExpired       // EXP validation failed
     23 	ValidationErrorIssuedAt      // IAT validation failed
     24 	ValidationErrorIssuer        // ISS validation failed
     25 	ValidationErrorNotValidYet   // NBF validation failed
     26 	ValidationErrorId            // JTI validation failed
     27 	ValidationErrorClaimsInvalid // Generic claims validation error
     28 )
     29 
     30 // Helper for constructing a ValidationError with a string error message
     31 func NewValidationError(errorText string, errorFlags uint32) *ValidationError {
     32 	return &ValidationError{
     33 		text:   errorText,
     34 		Errors: errorFlags,
     35 	}
     36 }
     37 
     38 // The error from Parse if token is not valid
     39 type ValidationError struct {
     40 	Inner  error  // stores the error returned by external dependencies, i.e.: KeyFunc
     41 	Errors uint32 // bitfield.  see ValidationError... constants
     42 	text   string // errors that do not have a valid error just have text
     43 }
     44 
     45 // Validation error is an error type
     46 func (e ValidationError) Error() string {
     47 	if e.Inner != nil {
     48 		return e.Inner.Error()
     49 	} else if e.text != "" {
     50 		return e.text
     51 	} else {
     52 		return "token is invalid"
     53 	}
     54 }
     55 
     56 // No errors
     57 func (e *ValidationError) valid() bool {
     58 	return e.Errors == 0
     59 }