保护JBoss Web工件

时间:2014-08-12 16:04:44

标签: security web jboss

问题 - 我们正在JBoss AS中的Windows上部署Web应用程序。使用默认页面可以干净地访问应用程序:

https://server:8443/app/

用户登录并进行身份验证,然后在应用程序中运行。但是,我们确实有一些用于渲染页面的Web工件(图像,JS文件等)。因此,如果用户知道正确的路径,用户可能会绕过身份验证并直接访问这些工件:

https://server:8443/app/img/image.jpg

有没有办法保护这些文物?由于它绕过我们的主servlet,我们似乎没有任何访问阻止未经身份验证的访问,但实际上我们不希望任何人访问这些工件,只有Web应用程序作为其处理的一部分。我们已经进行了渗透测试以允许此访问。

提前致谢,对不起,如果这是一个简单的问题,我只是不知道答案!

1 个答案:

答案 0 :(得分:0)

陈述性方式

如果您使用声明式安全性,那么只需将安全性约束放到web.xml即可。要保护webapp中的所有内容,您可以使用类似:

<security-constraint>
    <web-resource-collection>
        <web-resource-name>Protect all data</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>User</role-name>
    </auth-constraint>
</security-constraint>

<login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>Secured area</realm-name>
</login-config>

Anil's articleJava EE tutorial

中详细了解相关信息

程序方式

如果以编程方式处理安全性,则可以使用servlet过滤器,该过滤器将映射到所有URL(即图像)。

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