fix: add code_challenge_methods_supported to discovery endpoint (#43)
* fix: add code_challenge_methods_supported to discovery endpoint * fix mock
This commit is contained in:
parent
5a8e69978f
commit
57cf8ee9c7
5 changed files with 32 additions and 0 deletions
|
@ -20,5 +20,6 @@ type DiscoveryConfiguration struct {
|
||||||
SubjectTypesSupported []string `json:"subject_types_supported,omitempty"`
|
SubjectTypesSupported []string `json:"subject_types_supported,omitempty"`
|
||||||
IDTokenSigningAlgValuesSupported []string `json:"id_token_signing_alg_values_supported,omitempty"`
|
IDTokenSigningAlgValuesSupported []string `json:"id_token_signing_alg_values_supported,omitempty"`
|
||||||
TokenEndpointAuthMethodsSupported []string `json:"token_endpoint_auth_methods_supported,omitempty"`
|
TokenEndpointAuthMethodsSupported []string `json:"token_endpoint_auth_methods_supported,omitempty"`
|
||||||
|
CodeChallengeMethodsSupported []string `json:"code_challenge_methods_supported,omitempty"`
|
||||||
ClaimsSupported []string `json:"claims_supported,omitempty"`
|
ClaimsSupported []string `json:"claims_supported,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,6 +16,7 @@ type Configuration interface {
|
||||||
KeysEndpoint() Endpoint
|
KeysEndpoint() Endpoint
|
||||||
|
|
||||||
AuthMethodPostSupported() bool
|
AuthMethodPostSupported() bool
|
||||||
|
CodeMethodS256Supported() bool
|
||||||
}
|
}
|
||||||
|
|
||||||
func ValidateIssuer(issuer string) error {
|
func ValidateIssuer(issuer string) error {
|
||||||
|
|
|
@ -26,6 +26,8 @@ const (
|
||||||
AuthMethodBasic AuthMethod = "client_secret_basic"
|
AuthMethodBasic AuthMethod = "client_secret_basic"
|
||||||
AuthMethodPost = "client_secret_post"
|
AuthMethodPost = "client_secret_post"
|
||||||
AuthMethodNone = "none"
|
AuthMethodNone = "none"
|
||||||
|
|
||||||
|
CodeMethodS256 = "S256"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -58,6 +60,7 @@ type Config struct {
|
||||||
Issuer string
|
Issuer string
|
||||||
CryptoKey [32]byte
|
CryptoKey [32]byte
|
||||||
DefaultLogoutRedirectURI string
|
DefaultLogoutRedirectURI string
|
||||||
|
CodeMethodS256 bool
|
||||||
// ScopesSupported: oidc.SupportedScopes,
|
// ScopesSupported: oidc.SupportedScopes,
|
||||||
// ResponseTypesSupported: responseTypes,
|
// ResponseTypesSupported: responseTypes,
|
||||||
// GrantTypesSupported: oidc.SupportedGrantTypes,
|
// GrantTypesSupported: oidc.SupportedGrantTypes,
|
||||||
|
@ -222,6 +225,10 @@ func (p *DefaultOP) AuthMethodPostSupported() bool {
|
||||||
return true //TODO: config
|
return true //TODO: config
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (p *DefaultOP) CodeMethodS256Supported() bool {
|
||||||
|
return p.config.CodeMethodS256
|
||||||
|
}
|
||||||
|
|
||||||
func (p *DefaultOP) HttpHandler() http.Handler {
|
func (p *DefaultOP) HttpHandler() http.Handler {
|
||||||
return p.http
|
return p.http
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,6 +28,7 @@ func CreateDiscoveryConfig(c Configuration, s Signer) *oidc.DiscoveryConfigurati
|
||||||
IDTokenSigningAlgValuesSupported: SigAlgorithms(s),
|
IDTokenSigningAlgValuesSupported: SigAlgorithms(s),
|
||||||
SubjectTypesSupported: SubjectTypes(c),
|
SubjectTypesSupported: SubjectTypes(c),
|
||||||
TokenEndpointAuthMethodsSupported: AuthMethods(c),
|
TokenEndpointAuthMethodsSupported: AuthMethods(c),
|
||||||
|
CodeChallengeMethodsSupported: CodeChallengeMethods(c),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -117,3 +118,11 @@ func AuthMethods(c Configuration) []string {
|
||||||
}
|
}
|
||||||
return authMethods
|
return authMethods
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func CodeChallengeMethods(c Configuration) []string {
|
||||||
|
codeMethods := make([]string, 0, 1)
|
||||||
|
if c.CodeMethodS256Supported() {
|
||||||
|
codeMethods = append(codeMethods, CodeMethodS256)
|
||||||
|
}
|
||||||
|
return codeMethods
|
||||||
|
}
|
||||||
|
|
|
@ -61,6 +61,20 @@ func (mr *MockConfigurationMockRecorder) AuthorizationEndpoint() *gomock.Call {
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AuthorizationEndpoint", reflect.TypeOf((*MockConfiguration)(nil).AuthorizationEndpoint))
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AuthorizationEndpoint", reflect.TypeOf((*MockConfiguration)(nil).AuthorizationEndpoint))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CodeMethodS256Supported mocks base method
|
||||||
|
func (m *MockConfiguration) CodeMethodS256Supported() bool {
|
||||||
|
m.ctrl.T.Helper()
|
||||||
|
ret := m.ctrl.Call(m, "CodeMethodS256Supported")
|
||||||
|
ret0, _ := ret[0].(bool)
|
||||||
|
return ret0
|
||||||
|
}
|
||||||
|
|
||||||
|
// CodeMethodS256Supported indicates an expected call of CodeMethodS256Supported
|
||||||
|
func (mr *MockConfigurationMockRecorder) CodeMethodS256Supported() *gomock.Call {
|
||||||
|
mr.mock.ctrl.T.Helper()
|
||||||
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CodeMethodS256Supported", reflect.TypeOf((*MockConfiguration)(nil).CodeMethodS256Supported))
|
||||||
|
}
|
||||||
|
|
||||||
// EndSessionEndpoint mocks base method
|
// EndSessionEndpoint mocks base method
|
||||||
func (m *MockConfiguration) EndSessionEndpoint() op.Endpoint {
|
func (m *MockConfiguration) EndSessionEndpoint() op.Endpoint {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue