2016-11-01 2 views
0

Ich habe eine Website, die nur Personen mit Autorisierung betreten können. Wenn jemand keine Berechtigung hat, leitet meine web.xml sie zu einer 403-Fehlerseite weiter.Wie behandelt man die Berechtigung web.xml für lokale js/css-Dateien, wenn '403 Forbidden' zurückgegeben wird?

Allerdings verwenden sowohl meine Anwendung als auch meine Fehlerseiten einige externe js und CSS-Dateien (z. B. bootstrap). Logischerweise kann die 403-Fehlerseite nicht auf diese js/css-Dateien zugreifen, da die Berechtigung für alles mit Ausnahme der Fehlerseite html verboten ist.

Wie soll ich das sauber lösen? Soll ich meinen Bibliotheksordner öffentlich zugänglich machen? Wenn ja, wie kann ich meine Sicherheitsregeln für einen bestimmten Ordner außer Kraft setzen?

Ich schaute durch die documentation here, aber ich sehe dieses Szenario nicht erwähnt. Ich nehme an, ich muss eine Sicherheitsbeschränkung zu "/ Bibliotheken" hinzufügen, und irgendwie die erforderlichen Rollen für die HTTP-Methode GET überschreiben?

Die potenziell relevante Teile meines web.xml:

<error-page> 
     <error-code>403</error-code> 
     <location>/errorPages/forbidden.jsp</location> 
    </error-page> 

    <security-role> 
    <role-name>myRole</role-name> 
    </security-role> 

    <security-constraint> 
    <display-name>MySecurityConstraint</display-name> 
    <web-resource-collection> 
     <web-resource-name>WebResource</web-resource-name> 
     <url-pattern>/*</url-pattern> 
     <http-method>GET</http-method> 
     <http-method>DELETE</http-method> 
     <http-method>PUT</http-method> 
     <http-method>HEAD</http-method> 
     <http-method>OPTIONS</http-method> 
     <http-method>POST</http-method>  
    </web-resource-collection> 
    <auth-constraint> 
     <role-name>myRole</role-name> 
    </auth-constraint> 
    <user-data-constraint> 
     <transport-guarantee>NONE</transport-guarantee> 
    </user-data-constraint> 
    </security-constraint> 

Antwort

1

Sie könnten eine zusätzliche Sicherheit-Constraint mit detaillierten Pfad und ohne die Auth-Constraint

<security-constraint> 
    <display-name>NoSecurityConstraint</display-name> 
    <web-resource-collection> 
     <web-resource-name>WebResource</web-resource-name> 
     <url-pattern>/library/*</url-pattern> 
     <http-method>GET</http-method> 
     <http-method>DELETE</http-method> 
     <http-method>PUT</http-method> 
     <http-method>HEAD</http-method> 
     <http-method>OPTIONS</http-method> 
     <http-method>POST</http-method>  
    </web-resource-collection> 
    </security-constraint> 

Ich hoffe, das löst einfach hinzufügen Ihr Problem

Verwandte Themen