...

Source file src/github.com/ory/fosite/token/jwt/claims_id_token_test.go

Documentation: github.com/ory/fosite/token/jwt

     1  /*
     2   * Copyright © 2015-2018 Aeneas Rekkas <aeneas+oss@aeneas.io>
     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   * @author		Aeneas Rekkas <aeneas+oss@aeneas.io>
    17   * @copyright 	2015-2018 Aeneas Rekkas <aeneas+oss@aeneas.io>
    18   * @license 	Apache-2.0
    19   *
    20   */
    21  
    22  package jwt_test
    23  
    24  import (
    25  	"testing"
    26  	"time"
    27  
    28  	"github.com/stretchr/testify/assert"
    29  
    30  	. "github.com/ory/fosite/token/jwt"
    31  )
    32  
    33  func TestIDTokenAssert(t *testing.T) {
    34  	assert.NoError(t, (&IDTokenClaims{ExpiresAt: time.Now().UTC().Add(time.Hour)}).
    35  		ToMapClaims().Valid())
    36  	assert.Error(t, (&IDTokenClaims{ExpiresAt: time.Now().UTC().Add(-time.Hour)}).
    37  		ToMapClaims().Valid())
    38  
    39  	assert.NotEmpty(t, (new(IDTokenClaims)).ToMapClaims()["jti"])
    40  }
    41  
    42  func TestIDTokenClaimsToMap(t *testing.T) {
    43  	idTokenClaims := &IDTokenClaims{
    44  		JTI:                                 "foo-id",
    45  		Subject:                             "peter",
    46  		IssuedAt:                            time.Now().UTC().Round(time.Second),
    47  		Issuer:                              "fosite",
    48  		Audience:                            []string{"tests"},
    49  		ExpiresAt:                           time.Now().UTC().Add(time.Hour).Round(time.Second),
    50  		AuthTime:                            time.Now().UTC(),
    51  		RequestedAt:                         time.Now().UTC(),
    52  		AccessTokenHash:                     "foobar",
    53  		CodeHash:                            "barfoo",
    54  		AuthenticationContextClassReference: "acr",
    55  		AuthenticationMethodsReferences:     []string{"amr"},
    56  		Extra: map[string]interface{}{
    57  			"foo": "bar",
    58  			"baz": "bar",
    59  		},
    60  	}
    61  	assert.Equal(t, map[string]interface{}{
    62  		"jti":       idTokenClaims.JTI,
    63  		"sub":       idTokenClaims.Subject,
    64  		"iat":       idTokenClaims.IssuedAt.Unix(),
    65  		"rat":       idTokenClaims.RequestedAt.Unix(),
    66  		"iss":       idTokenClaims.Issuer,
    67  		"aud":       idTokenClaims.Audience,
    68  		"exp":       idTokenClaims.ExpiresAt.Unix(),
    69  		"foo":       idTokenClaims.Extra["foo"],
    70  		"baz":       idTokenClaims.Extra["baz"],
    71  		"at_hash":   idTokenClaims.AccessTokenHash,
    72  		"c_hash":    idTokenClaims.CodeHash,
    73  		"auth_time": idTokenClaims.AuthTime.Unix(),
    74  		"acr":       idTokenClaims.AuthenticationContextClassReference,
    75  		"amr":       idTokenClaims.AuthenticationMethodsReferences,
    76  	}, idTokenClaims.ToMap())
    77  
    78  	idTokenClaims.Nonce = "foobar"
    79  	assert.Equal(t, map[string]interface{}{
    80  		"jti":       idTokenClaims.JTI,
    81  		"sub":       idTokenClaims.Subject,
    82  		"iat":       idTokenClaims.IssuedAt.Unix(),
    83  		"rat":       idTokenClaims.RequestedAt.Unix(),
    84  		"iss":       idTokenClaims.Issuer,
    85  		"aud":       idTokenClaims.Audience,
    86  		"exp":       idTokenClaims.ExpiresAt.Unix(),
    87  		"foo":       idTokenClaims.Extra["foo"],
    88  		"baz":       idTokenClaims.Extra["baz"],
    89  		"at_hash":   idTokenClaims.AccessTokenHash,
    90  		"c_hash":    idTokenClaims.CodeHash,
    91  		"auth_time": idTokenClaims.AuthTime.Unix(),
    92  		"acr":       idTokenClaims.AuthenticationContextClassReference,
    93  		"amr":       idTokenClaims.AuthenticationMethodsReferences,
    94  		"nonce":     idTokenClaims.Nonce,
    95  	}, idTokenClaims.ToMap())
    96  }
    97  

View as plain text