2016-06-16 24 views
1

ich feder Boot bin mit: 1.3.3, feder hateoas: 0.19.0 und Feder-data-rest-Kern: 2.4.4 .Feder hateoas Erzwingen https Links zu generieren, anstatt http

{ 
    "_embedded" : { 
    "projects" : [ { 
     "status" : "ACTIVE", 
     "storageRegion" : "US", 
     "dataSize" : 96850, 
     "freemiumUnits" : 1, 
     "_links" : { 
     "self" : { 
      "href" : "http://example.com/x-region-us/api/data/projects/2c9f93b755359a4a015535c19b1f0006" 
     }, 
     "project" : { 
      "href" : "http://example.com/x-region-us/api/data/projects/2c9f93b755359a4a015535c19b1f0006" 
     }, 

Dies ist ein Beispiel für Inhalte von Spring-hateoas serviert. Nach einer Weile wechselte ich meine Anwendung zu SSL.

Problem kommt, wenn traverson.js-Sprung (hop) durch "_links" verwenden. Fehler occures:

traverson.min.js: 2 Gemischte Inhalt: Die Seite bei 'https://example.com/project-new' wurde über HTTPS geladen, aber die angeforderte einen unsicheren XMLHttpRequest Endpunkt 'http://example.com/x-region-us/api/data/submittalActions'. Diese Anfrage wurde blockiert; Der Inhalt muss über HTTPS bereitgestellt werden.

Gibt es eine Möglichkeit Feder zu zwingen, zu erzeugen HTTPS Links über HTTP in "_links" Teil json?

+0

, das automatisch passiert, wenn Sie die REST-Endpunkt über Call 'https'. – zeroflagL

+0

@zeroflagL Es passiert nicht. Ich rufe Endpoint über 'https', aber alle _href_ in _" _ Links "_ Eigenschaft sind mit' http' Präfix ... –

+0

Gibt es einen Proxy oder Web-Server vor der Anwendung? – zeroflagL

Antwort

0

Fügen Sie die folgenden Überschriften Nginx

proxy_redirect off; 
proxy_set_header Host $http_host; 
proxy_set_header X-Real-IP $remote_addr; 
proxy_set_header X-Forwarded-Proto https; 
proxy_set_header X-Forwarded-Prefix $http_x_forwarded_prefix; 
proxy_set_header X-Forwarded-Host $http_x_forwarded_host; 
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
proxy_set_header X-NginX-Proxy true; 
proxy_set_header X-Forwarded-Protocol https; 
proxy_set_header X-Forwarded-Ssl on; 
proxy_set_header X-Url-Scheme https; 
proxy_http_version 1.1; 
0

Wenn Sie Apache HTTP-Server verwenden, können Sie in der Konfigurationsdatei die folgende Zeile hinzufügen müssen:

RequestHeader set X-Forwarded-Proto "https"