From 9f5977bce2e36f493a2290a055ea4973e56a2314 Mon Sep 17 00:00:00 2001 From: Nelson Susanto Date: Fri, 22 Apr 2022 14:52:58 +1000 Subject: [PATCH] Add an explicit check for OctopusID --- .../Issuer/AuthorizationEndpointUrlBuilder.cs | 5 ++++- .../Web/UserAuthenticationAction.cs | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/source/Server.OpenIDConnect.Common/Issuer/AuthorizationEndpointUrlBuilder.cs b/source/Server.OpenIDConnect.Common/Issuer/AuthorizationEndpointUrlBuilder.cs index 7d0cf67..2c70818 100644 --- a/source/Server.OpenIDConnect.Common/Issuer/AuthorizationEndpointUrlBuilder.cs +++ b/source/Server.OpenIDConnect.Common/Issuer/AuthorizationEndpointUrlBuilder.cs @@ -16,7 +16,10 @@ protected AuthorizationEndpointUrlBuilder(TStore configurationStore, IUrlEncoder this.urlEncoder = urlEncoder; } - protected virtual string ResponseType => ConfigurationStore.HasClientSecret ? OpenIDConnectConfiguration.AuthCodeResponseType : OpenIDConnectConfiguration.HybridResponseType; + // TODO: Remove the explicit check for OctopusID once OctopusID supports auth code flow + protected virtual string ResponseType => ConfigurationStore.HasClientSecret && ConfigurationStore.ConfigurationSettingsName != "OctopusID" + ? OpenIDConnectConfiguration.AuthCodeResponseType + : OpenIDConnectConfiguration.HybridResponseType; protected virtual string ResponseMode => OpenIDConnectConfiguration.DefaultResponseMode; public virtual string Build(string requestDirectoryPath, IssuerConfiguration issuerConfiguration, string? nonce = null, string? state = null, string? codeChallenge = null) diff --git a/source/Server.OpenIDConnect.Common/Web/UserAuthenticationAction.cs b/source/Server.OpenIDConnect.Common/Web/UserAuthenticationAction.cs index a39c4dd..d2c779d 100644 --- a/source/Server.OpenIDConnect.Common/Web/UserAuthenticationAction.cs +++ b/source/Server.OpenIDConnect.Common/Web/UserAuthenticationAction.cs @@ -79,7 +79,8 @@ public async Task ExecuteAsync(IOctoRequest request) var issuer = ConfigurationStore.GetIssuer() ?? string.Empty; var issuerConfig = await identityProviderConfigDiscoverer.GetConfigurationAsync(issuer); - var response = ConfigurationStore.HasClientSecret + // TODO: Remove the explicit check for OctopusID once OctopusID supports auth code flow + var response = ConfigurationStore.HasClientSecret && ConfigurationStore.ConfigurationSettingsName != "OctopusID" ? await BuildAuthorizationCodePkceResponse(model, new LoginStateWithRequestId(state.RedirectAfterLoginTo, state.UsingSecureConnection, Guid.NewGuid()), issuerConfig) : BuildHybridResponse(model, state, issuerConfig);