This file is indexed.

/usr/share/gocode/src/github.com/coreos/go-oidc/jose/jwt_test.go is in golang-github-coreos-go-oidc-dev 0.0~git20160926.0.16c5ecc-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
package jose

import (
	"reflect"
	"testing"
)

func TestParseJWT(t *testing.T) {
	tests := []struct {
		r string
		h JOSEHeader
		c Claims
	}{
		{
			// Example from JWT spec:
			// http://self-issued.info/docs/draft-ietf-oauth-json-web-token.html#ExampleJWT
			"eyJ0eXAiOiJKV1QiLA0KICJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ.dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk",
			JOSEHeader{
				HeaderMediaType:    "JWT",
				HeaderKeyAlgorithm: "HS256",
			},
			Claims{
				"iss": "joe",
				// NOTE: test numbers must be floats for equality checks to work since values are converted form interface{} to float64 by default.
				"exp": 1300819380.0,
				"http://example.com/is_root": true,
			},
		},
	}

	for i, tt := range tests {
		jwt, err := ParseJWT(tt.r)
		if err != nil {
			t.Errorf("raw token should parse. test: %d. expected: valid, actual: invalid. err=%v", i, err)
		}

		if !reflect.DeepEqual(tt.h, jwt.Header) {
			t.Errorf("JOSE headers should match. test: %d. expected: %v, actual: %v", i, tt.h, jwt.Header)
		}

		claims, err := jwt.Claims()
		if err != nil {
			t.Errorf("test: %d. expected: valid claim parsing. err=%v", i, err)
		}
		if !reflect.DeepEqual(tt.c, claims) {
			t.Errorf("claims should match. test: %d. expected: %v, actual: %v", i, tt.c, claims)
		}

		enc := jwt.Encode()
		if enc != tt.r {
			t.Errorf("encoded jwt should match raw jwt. test: %d. expected: %v, actual: %v", i, tt.r, enc)
		}
	}
}

func TestNewJWTHeaderType(t *testing.T) {
	jwt, err := NewJWT(JOSEHeader{}, Claims{})
	if err != nil {
		t.Fatalf("Unexpected error: %v", err)
	}

	want := "JWT"
	got := jwt.Header[HeaderMediaType]
	if want != got {
		t.Fatalf("Header %q incorrect: want=%s got=%s", HeaderMediaType, want, got)
	}

}

func TestNewJWTHeaderKeyID(t *testing.T) {
	jwt, err := NewJWT(JOSEHeader{HeaderKeyID: "foo"}, Claims{})
	if err != nil {
		t.Fatalf("Unexpected error: %v", err)
	}

	want := "foo"
	got, ok := jwt.KeyID()
	if !ok {
		t.Fatalf("KeyID not set")
	} else if want != got {
		t.Fatalf("KeyID incorrect: want=%s got=%s", want, got)
	}
}

func TestNewJWTHeaderKeyIDNotSet(t *testing.T) {
	jwt, err := NewJWT(JOSEHeader{}, Claims{})
	if err != nil {
		t.Fatalf("Unexpected error: %v", err)
	}

	if _, ok := jwt.KeyID(); ok {
		t.Fatalf("KeyID set, but should not be")
	}
}