Skip to content

Commit 5044f45

Browse files
fix: swagger spec same-origin so /AnalysisService and /ContentService docs load
dev.reactome.org sits behind mod_auth_openidc which 302s /AnalysisService/v3/api-docs to Keycloak; the redirect response carries no Access-Control-Allow-Origin header so the browser blocks the cross-origin XHR even after the user has signed in. Fetch the OpenAPI spec from window.location.origin instead -- beta/release/reactome.org all reverse-proxy their own /AnalysisService and /ContentService.
1 parent c30f9fb commit 5044f45

1 file changed

Lines changed: 10 additions & 1 deletion

File tree

projects/website-angular/src/app/swagger-page/swagger-page.component.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,16 @@ export class SwaggerPageComponent implements AfterViewInit, OnDestroy {
3333
await this.loadCss('assets/swagger-ui/swagger-ui.css');
3434
await this.loadScript('assets/swagger-ui/swagger-ui-bundle.js');
3535

36-
const url = `${APP_CONFIG.swaggerSpecBaseUrl}/${this.serviceName}/v3/api-docs`;
36+
// Fetch the OpenAPI spec from the same origin we're served from, not
37+
// APP_CONFIG.swaggerSpecBaseUrl. dev.reactome.org sits behind
38+
// mod_auth_openidc which 302s /AnalysisService/v3/api-docs to Keycloak;
39+
// that login response carries no Access-Control-Allow-Origin, so the
40+
// browser blocks the cross-origin XHR even after the user has logged
41+
// in. Every public host (beta, release, reactome.org) reverse-proxies
42+
// its own /AnalysisService and /ContentService, so same-origin works.
43+
const baseUrl =
44+
typeof window !== 'undefined' ? window.location.origin : APP_CONFIG.swaggerSpecBaseUrl;
45+
const url = `${baseUrl}/${this.serviceName}/v3/api-docs`;
3746
SwaggerUIBundle({
3847
domNode: this.swaggerContainer.nativeElement,
3948
url,

0 commit comments

Comments
 (0)