避免直接访问webapps中的静态内容

时间:2016-05-27 04:43:10

标签: java html spring servlets shiro

出于安全原因,我已经集成了我的Spring MVC应用程序Shiro。

我的所有网址都运行良好,但我有几个html网页可以直接访问。

如何保护这些页面,这意味着如果用户未登录到应用程序,并尝试打开html页面,则应将其重定向到登录页面。

我已在jetty和tomcat服务器上测试过。

码头

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

基本上我不希望在没有用户登录的情况下直接访问我的静态内容。

我的html文件与角度代码集成在一起。是否有任何类型的servlet可以从中创建和返回html。意思是我将从其他特定位置读取html,解析并返回html作为响应。

html文件位置 - my-app\html\myPage.html

web.xml

中的Shiro设置
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>

当我建立战争时,它还复制图像,web-inf外的html文件夹。 如何避免使用maven

复制图像,web-inf外的html文件夹

2 个答案:

答案 0 :(得分:0)

您可以通过将其放在WEB-INF文件夹中来避免直接访问页面。

答案 1 :(得分:0)

在shiro ini尝试

<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>

以下您可以使用但仍然建议使用shiro.ini,因为您永远不知道应用程序何时增长,并且从web.xml执行此操作将无法管理。它也使web.xml变胖,这是非弹簧。您显示的配置仅适用于shiro设置,不适用于保护网址。要保护URL,您必须以编程方式或从web.xml

创建它们
CNContactPickerViewController