chore: introduce supportsDigestAuth field at the interceptor service level (#4498)

This commit is contained in:
James George 2024-10-30 09:14:14 -07:00 committed by GitHub
parent 8643819926
commit 223dd25788
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 14 additions and 17 deletions

View File

@ -54,11 +54,6 @@ export type PlatformDef = {
* Whether to show the A/B testing workspace switcher click login flow or not
*/
workspaceSwitcherLogin?: Ref<boolean>
/**
* Whether to show the warning about supported interceptors while using the Digest Authorization type
*/
showInterceptorWarningForDigestAuth?: boolean
}
limits?: LimitsPlatformDef
infra?: InfraPlatformDef

View File

@ -14,5 +14,4 @@ export type PlatformInterceptorDef =
export type InterceptorsPlatformDef = {
default: string
interceptors: PlatformInterceptorDef[]
showInterceptorWarningForDigestAuth?: boolean
}

View File

@ -302,6 +302,8 @@ export class AgentInterceptorService extends Service implements Interceptor {
public proxyInfo = ref<RequestDef["proxy"]>(undefined)
public supportsDigestAuth = true
override onServiceInit() {
// Register the Root UI Extension
this.uiExtensionService.addRootUIExtension(AgentRootUIExtension)

View File

@ -6,8 +6,6 @@ import { Service } from "dioc"
import { computed, markRaw, Ref } from "vue"
import { getI18n } from "~/modules/i18n"
import { platform } from "~/platform"
import { AgentInterceptorService } from "~/platform/std/interceptors/agent"
import { InterceptorService } from "~/services/interceptor.service"
import { RESTTabService } from "~/services/tab/rest"
import IconAlertTriangle from "~icons/lucide/alert-triangle"
@ -31,7 +29,6 @@ export class AuthorizationInspectorService
private readonly inspection = this.bind(InspectionService)
private readonly interceptorService = this.bind(InterceptorService)
private readonly agentService = this.bind(AgentInterceptorService)
private readonly restTabService = this.bind(RESTTabService)
override onServiceInit() {
@ -74,15 +71,12 @@ export class AuthorizationInspectorService
const results: InspectorResult[] = []
// `Agent` interceptor is recommended while using Digest Auth
const isUnsupportedInterceptor =
platform.platformFeatureFlags.showInterceptorWarningForDigestAuth &&
this.interceptorService.currentInterceptorID.value !==
this.agentService.interceptorID
const resolvedAuthType = this.resolveAuthType(auth)
if (resolvedAuthType === "digest" && isUnsupportedInterceptor) {
if (
resolvedAuthType === "digest" &&
!this.interceptorService.currentInterceptor.value?.supportsDigestAuth
) {
results.push({
id: "url",
icon: markRaw(IconAlertTriangle),

View File

@ -141,6 +141,12 @@ export type Interceptor<Err extends InterceptorError = InterceptorError> = {
* @param request The request to run the interceptor on.
*/
runRequest: (request: AxiosRequestConfig) => RequestRunResult<Err>
/**
* Defines whether the interceptor has support for Digest Auth.
* If this field is undefined, it is assumed as not supporting the Digest Auth type.
*/
supportsDigestAuth?: boolean
}
/**

View File

@ -277,6 +277,8 @@ export class NativeInterceptorService extends Service implements Interceptor {
public validateCerts = ref(true)
public proxyInfo = ref<RequestDef["proxy"]>(undefined)
public supportsDigestAuth = true
override onServiceInit() {
// Load SSL Validation
const persistedValidateSSL: unknown = JSON.parse(

View File

@ -42,7 +42,6 @@ createHoppApp("#app", {
platformFeatureFlags: {
exportAsGIST: false,
hasTelemetry: false,
showInterceptorWarningForDigestAuth: true,
},
limits: {
collectionImportSizeLimit: 50,