Skip to content

Commit ff7ea2b

Browse files
authored
Add endpointOIDC expiresAt metadata (#35)
1 parent 1112b1c commit ff7ea2b

File tree

3 files changed

+15
-6
lines changed

3 files changed

+15
-6
lines changed

client.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,8 @@ type ConfigHost struct {
108108
}
109109

110110
type ConfigEndpointOIDC struct {
111-
Email string
111+
Email string
112+
ExpiresAt *time.Time
112113
}
113114

114115
// Enroll issues an enrollment request against the REST API using the given enrollment code, passing along a locally
@@ -185,7 +186,8 @@ func (c *Client) Enroll(ctx context.Context, logger logrus.FieldLogger, code str
185186

186187
if r.EndpointOIDCMeta != nil {
187188
meta.EndpointOIDC = &ConfigEndpointOIDC{
188-
Email: r.EndpointOIDCMeta.Email,
189+
Email: r.EndpointOIDCMeta.Email,
190+
ExpiresAt: r.EndpointOIDCMeta.ExpiresAt,
189191
}
190192
}
191193

@@ -369,7 +371,8 @@ func (c *Client) DoUpdate(ctx context.Context, creds keys.Credentials) ([]byte,
369371

370372
if result.EndpointOIDCMeta != nil {
371373
meta.EndpointOIDC = &ConfigEndpointOIDC{
372-
Email: result.EndpointOIDCMeta.Email,
374+
Email: result.EndpointOIDCMeta.Email,
375+
ExpiresAt: result.EndpointOIDCMeta.ExpiresAt,
373376
}
374377
}
375378

client_test.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ func TestEnroll(t *testing.T) {
5151
hostName := "foo host"
5252
hostIP := "192.168.100.1"
5353
oidcEmail := "[email protected]"
54+
oidcExpiresAt := time.Now()
5455
counter := uint(5)
5556
ca, _ := dnapitest.NebulaCACert()
5657
caPEM, err := ca.MarshalToPEM()
@@ -94,7 +95,8 @@ func TestEnroll(t *testing.T) {
9495
IPAddress: hostIP,
9596
},
9697
EndpointOIDCMeta: &message.HostEndpointOIDCMetadata{
97-
Email: oidcEmail,
98+
Email: oidcEmail,
99+
ExpiresAt: &oidcExpiresAt,
98100
},
99101
},
100102
})
@@ -144,6 +146,7 @@ func TestEnroll(t *testing.T) {
144146
assert.Equal(t, hostName, meta.Host.Name)
145147
assert.Equal(t, hostIP, meta.Host.IPAddress)
146148
assert.Equal(t, oidcEmail, meta.EndpointOIDC.Email)
149+
assert.WithinDuration(t, oidcExpiresAt, *meta.EndpointOIDC.ExpiresAt, 1*time.Second)
147150

148151
// Test error handling
149152
errorMsg := "invalid enrollment code"
@@ -407,7 +410,8 @@ func TestDoUpdate(t *testing.T) {
407410
IPAddress: hostIP,
408411
},
409412
EndpointOIDCMeta: &message.HostEndpointOIDCMetadata{
410-
Email: oidcEmail,
413+
Email: oidcEmail,
414+
ExpiresAt: nil,
411415
},
412416
}
413417
rawRes := jsonMarshal(newConfigResponse)
@@ -437,6 +441,7 @@ func TestDoUpdate(t *testing.T) {
437441
assert.Equal(t, hostName, meta.Host.Name)
438442
assert.Equal(t, hostIP, meta.Host.IPAddress)
439443
assert.Equal(t, oidcEmail, meta.EndpointOIDC.Email)
444+
assert.Nil(t, meta.EndpointOIDC.ExpiresAt)
440445

441446
}
442447

message/message.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,8 @@ type HostHostMetadata struct {
220220

221221
// HostEndpointOIDCMetadata is included in EnrollResponseData.
222222
type HostEndpointOIDCMetadata struct {
223-
Email string `json:"email"`
223+
Email string `json:"email"`
224+
ExpiresAt *time.Time `json:"expiresAt"`
224225
}
225226

226227
// PreAuthEndpoint is called when starting an OIDC auth flow.

0 commit comments

Comments
 (0)