2016-05-27 13 views
0

Ich habe meine Spring MVC-Anwendung Shiro aus Sicherheitsgründen integriert.Vermeiden Sie direkten Zugriff auf statische Inhalte in Webapps

Alle meine URLs funktionieren gut, aber ich habe ein paar HTML-Seiten, die direkt zugegriffen werden können.

Wie kann ich diese Seiten schützen, dh wenn ein Benutzer nicht in einer Anwendung angemeldet ist und versucht, eine HTML-Seite zu öffnen, sollten sie auf die Anmeldeseite umgeleitet werden.

Ich habe auf Steg und Tomcat Server getestet.

Jetty

http://ip:port - works fine, redirects to login page 

http://ip:port/html/ - opens html pages 

Tomcat

http://localhost:8070/my-app/html/myPage.html - opens html pages 

Grundsätzlich möchte ich keinen direkten Zugriff meiner statischen Inhalte ohne dass ein Benutzer angemeldet ist.

Meine HTML-Datei ist mit Winkelcode integriert. Gibt es irgendeine Art von Servlet, die HTML daraus erstellen und zurückgeben kann? Bedeutung Ich werde HTML von einem anderen bestimmten Ort lesen, parsen und HTML als Antwort zurückgeben.

HTML-Datei Standort - my-app\html\myPage.html

Shiro Einstellungen in web.xml

filter> 
     <filter-name>shiroFilter</filter-name> 
     <filter-class>org.springframework.web.filter.DelegatingFilterProxy 
     </filter-class> 
     <init-param> 
      <param-name>targetFilterLifecycle</param-name> 
      <param-value>true</param-value> 
     </init-param> 
    </filter> 

    <filter-mapping> 
     <filter-name>shiroFilter</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 

Wenn ich bauen Krieg, kopiert es Bilder, HTML-Ordner außerhalb web-inf auch. Wie Bilder zu kopieren vermeiden können, html Ordner außerhalb web-inf Maven mit

Antwort

0

Sie sie innerhalb des WEB-INF-Ordner, indem Sie einen direkten Zugang zu Seite vermeiden. ini

+0

wenn ich WAR-Datei erstellen, legt es meine HTML-Ordner in web-inf und außerhalb auch, wie kann ich verhindern, dass –

0

in shiro versuchen

[url] 

/*.html = authc 

Nach Sie aber immer noch empfohlen verwenden können, ist von shiro.ini zu verwenden, wie Sie nie wissen, wann Ihre Anwendung wächst, und es wäre unkontrollierbar dies von web.xml zu tun. Es macht auch web.xml fat das ist für nicht Frühling. Die Konfiguration, die Sie anzeigen, ist nur für das Shiro-Setup gedacht, nicht zum Sichern von URLs. Für Urls Sicherung entweder Sie sie programmatisch leisten oder von web.xml

<filter> 
    <filter-name>ShiroFilter</filter-name> 
    <filter-class>org.apache.shiro.web.servlet.IniShiroFilter</filter-class> 
    <init-param><param-name>config</param-name><param-value> 

    # INI Config Here 

    [url] 

    /*.html = authc 



    </param-value></init-param> 
</filter> 
+0

ich habe hinzugefügt Meine Shiro-URL-Muster von web.xml –

+0

überprüfen Sie Update zur Verwendung von web.xml – dev

Verwandte Themen