2016-08-05 2 views
1

Meine Frage ist, wie kann ich einen Autorisierungsheader in meinem Index hmtl hinzufügen, bevor Sie die Swagger-Datei. Ich bekomme die Swagger-Datei von einer http-URL, die Basic Auth verwendet. Also muss ich Benutzer und Passwort angeben, bevor ich den Service anrufe. So jetzt muss ich wissen, wo ich die Kopfzeile hinzufügen. Swagger UI: grundlegende Authentifizierung für Swagger-Datei

$(function() { 
 
     var url = window.location.search.match(/[?]url=([^&]+)/); 
 
     if (url && url.length > 1) { 
 
     url = decodeURIComponent(url[1]); 
 
     } else { 
 
     url = "test.json"; 
 
     } 
 
     
 

 
     hljs.configure({ 
 
     highlightSizeThreshold: 5000 
 
     }); 
 

 
     // Pre load translate... 
 
     if(window.SwaggerTranslator) { 
 
     window.SwaggerTranslator.translate(); 
 
     } 
 
     window.swaggerUi = new SwaggerUi({ 
 
     url: url, 
 
     dom_id: "swagger-ui-container", 
 
     supportedSubmitMethods: ['get', 'post', 'put', 'delete', 'patch'], 
 
     onComplete: function(swaggerApi, swaggerUi){ 
 
      if(typeof initOAuth == "function") { 
 
      initOAuth({ 
 
       clientId: "your-client-id", 
 
       clientSecret: "your-client-secret-if-required", 
 
       realm: "your-realms", 
 
       appName: "your-app-name", 
 
       scopeSeparator: ",", 
 
       additionalQueryStringParams: {} 
 
      }); 
 
      } 
 

 
      if(window.SwaggerTranslator) { 
 
      window.SwaggerTranslator.translate(); 
 
      } 
 
     }, 
 
     onFailure: function(data) { 
 
      log("Unable to Load SwaggerUI"); 
 
     }, 
 
     docExpansion: "none", 
 
     jsonEditor: false, 
 
     defaultModelRendering: 'schema', 
 
     showRequestHeaders: false 
 
     }); 
 

 
     window.swaggerUi.load(); 
 

 
     function log() { 
 
     if ('console' in window) { 
 
      console.log.apply(console, arguments); 
 
     } 
 
     } 
 
    });

Antwort

0

Wenn die Spezifikation auf einer anderen Domäne ist, dann wird der Browser eine Preflight-OPTIONS Anfrage tun CORS zu bestimmen.

Leider wird dies automatisch vom Browser durchgeführt, so dass es keine Möglichkeit gibt, den Autorisierungsheader zu dieser Anfrage hinzuzufügen. Die einzige Lösung besteht darin, den Server zu konfigurieren, der die Spezifikation enthält, um keine Autorisierung für OPTIONS-Anforderungen zu erfordern.

Verwandte Themen