2017-11-09 5 views
0

Ich bin mit einem wirklich peinlichen Problem konfrontiert, indem ich Spring Basic Authorization für einen Rest-Service in Liveray implementiere. Eigentlich funktioniert die Konfiguration perfekt, wenn ich die Anwendung auf meinem lokalen Computer teste.Spring Basic Autorisierung für REST Service auf Liferay funktioniert nicht

Das Problem tritt auf, sobald ich die Anwendung auf unserem Testserver bereitstellen. Der Server gibt immer einen nicht autorisierten 401-Zugriff zurück, aber der Autorisierungsanbieter wird nie erreicht.

Durch das Debuggen, bemerkte ich, dass die Anforderung enthält nicht den Header mit den Anmeldeinformationen (header = null), wenn die BasicAuthenticationFilter erreicht:

if(header != null && header.startsWith("Basic ")) 

Durch den Netzwerkverkehr an dem Browser zu analysieren, der Authorization-Header ist Dort.

Hier ist meine Sicherheitskonfiguration:

<http pattern="/*" security="none"/> 

<!-- urls that need authentication and roles --> 
<http use-expressions="true" > 
    <intercept-url pattern="/myrest/url/**" access="hasAnyRole('myrole')" /> 
    <http-basic/> 
</http> 

<!-- AuthenticationManager/Provider that checks the authentication against Liferay --> 
<beans:bean id="myCustomAuthorizationProvider" 
      class="myCustomAuthorizationProvider"> 
    <beans:constructor-arg ref="myUsersDao"/> 
    <beans:constructor-arg ref="MyRolesDao"/> 
</beans:bean> 

<authentication-manager> 
    <authentication-provider ref="myCustomAuthorizationProvider"/> 
</authentication-manager> 

Ich werde jede Hilfe schätzen es.

+0

Welche Version von Liferay verwenden Sie? –

Antwort

0

Sie müssen überprüfen, ob zwischen diesem Filter-HTTP-Header ein intermediärer Apache oder Webserver liegt, bevor er zu liveray tomcat kommt. Im Apache-Webserver oder nginx müssen Sie die Autorisierungs-Header-Weiterleitung einstellen.

Apache Config

proxy_pass_header Authorization; 

Für nginx

proxy_set_header X-Forwarded-User $http_authorization; 
proxy_set_header X-Real-IP $remote_addr; 
proxy_set_header Host $host; 
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
proxy_pass_header Accept; 
proxy_pass_header Server; 
proxy_http_version 1.1; 
proxy_set_header Authorization $http_authorization; 
#proxy_pass_header Authorization; 
proxy_set_header ns_server-ui yes; 
Verwandte Themen