spec/actions.js: Add OIDC metadata fetching components/auth/oauth2: Add OIDC URL to the Authorization popup
This commit is contained in:
@@ -150,6 +150,7 @@ const debResolveSubtrees = debounce(async () => {
|
||||
errSelectors,
|
||||
fn: {
|
||||
resolveSubtree,
|
||||
fetch,
|
||||
AST = {}
|
||||
},
|
||||
specSelectors,
|
||||
@@ -206,6 +207,28 @@ const debResolveSubtrees = debounce(async () => {
|
||||
errActions.newThrownErrBatch(preparedErrors)
|
||||
}
|
||||
|
||||
if (spec && specSelectors.isOAS3() && path[0] === "components" && path[1] === "securitySchemes") {
|
||||
// Resolve OIDC URLs if present
|
||||
await Promise.all(Object.values(spec)
|
||||
.filter((scheme) => scheme.type === "openIdConnect")
|
||||
.map(async (oidcScheme) => {
|
||||
const req = {
|
||||
url: oidcScheme.openIdConnectUrl,
|
||||
requestInterceptor: requestInterceptor,
|
||||
responseInterceptor: responseInterceptor
|
||||
}
|
||||
try {
|
||||
const res = await fetch(req)
|
||||
if (res instanceof Error || res.status >= 400) {
|
||||
console.error(res.statusText + " " + req.url)
|
||||
} else {
|
||||
oidcScheme.openIdConnectData = JSON.parse(res.text)
|
||||
}
|
||||
} catch (e) {
|
||||
console.error(e)
|
||||
}
|
||||
}))
|
||||
}
|
||||
set(resultMap, path, spec)
|
||||
set(specWithCurrentSubtrees, path, spec)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user