From 9b0954f3d4d696014d937421417541c0f8aad16c Mon Sep 17 00:00:00 2001 From: Jederson Zuchi Date: Fri, 13 May 2022 04:17:20 -0300 Subject: [PATCH] feat(rp): Adding end_session endpoint to relaying party interface (#179) --- pkg/client/rp/relaying_party.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pkg/client/rp/relaying_party.go b/pkg/client/rp/relaying_party.go index 610a903..5fbce27 100644 --- a/pkg/client/rp/relaying_party.go +++ b/pkg/client/rp/relaying_party.go @@ -50,6 +50,9 @@ type RelyingParty interface { //Signer is used if the relaying party uses the JWT Profile Signer() jose.Signer + //GetEndSessionEndpoint returns the endpoint to sign out on a IDP + GetEndSessionEndpoint() string + //UserinfoEndpoint returns the userinfo UserinfoEndpoint() string @@ -117,6 +120,10 @@ func (rp *relyingParty) UserinfoEndpoint() string { return rp.endpoints.UserinfoURL } +func (rp *relyingParty) GetEndSessionEndpoint() string { + return rp.endpoints.EndSessionURL +} + func (rp *relyingParty) IDTokenVerifier() IDTokenVerifier { if rp.idTokenVerifier == nil { rp.idTokenVerifier = NewIDTokenVerifier(rp.issuer, rp.oauthConfig.ClientID, NewRemoteKeySet(rp.httpClient, rp.endpoints.JKWsURL), rp.verifierOpts...) @@ -476,6 +483,7 @@ type Endpoints struct { IntrospectURL string UserinfoURL string JKWsURL string + EndSessionURL string } func GetEndpoints(discoveryConfig *oidc.DiscoveryConfiguration) Endpoints { @@ -488,6 +496,7 @@ func GetEndpoints(discoveryConfig *oidc.DiscoveryConfiguration) Endpoints { IntrospectURL: discoveryConfig.IntrospectionEndpoint, UserinfoURL: discoveryConfig.UserinfoEndpoint, JKWsURL: discoveryConfig.JwksURI, + EndSessionURL: discoveryConfig.EndSessionEndpoint, } }