安全约束<url-pattern>表现得很奇怪--websphere </url-pattern>

时间:2013-04-29 03:58:51

标签: java java-ee servlets websphere security

我正在测试某些网址的安全限制。我觉得 url pattern 表现得很奇怪。我希望在ServletSecurityTest(webapproot)/之后的访问受限制。但是,在websphere中部署war文件后,即使ServletSecurityTest(webapproot)本身也受到限制。为什么?

例如:

我希望限制此http//ravi-pc:9080/ServletSecurityTest/testSecurity.do。这个没关系。但即使http//ravi-pc:9080/ServletSecurityTest也受到限制。为什么?

有什么想法吗?

的web.xml

<security-constraint>
    <web-resource-collection>
        <web-resource-name>Servlet Security Resources</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>Administrator</role-name>
    </auth-constraint>

</security-constraint>

<security-role>
    <role-name>Administrator</role-name>
</security-role>

的Servlet

@WebServlet(name="SecurityTestServlet", urlPatterns={"/testSecurity.do"})
public class SecurityTestServlet extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        response.getWriter().write("Only Administrators can see this...");

    }

}

2 个答案:

答案 0 :(得分:1)

<url-pattern>/*</url-pattern>表示/之后的所有网址。

/testSecurity.do and /testSecurity都属于您指定的模式。

尝试<url-pattern>/*.do</url-pattern>并查看。

答案 1 :(得分:0)

通过提及<url-pattern>/*</url-pattern>,您确保根文件夹也是安全的。 我遇到了类似的问题,并解决了我的更改文件夹结构,如下所示。

<security-constraint>
     <web-resource-collection>
         <web-resource-name>Servlet Security Resources</web-resource-name>
         <url-pattern>/ServletSecurityTest/*</url-pattern>
         <url-pattern>/auth/*</url-pattern>
     </web-resource-collection>
     <auth-constraint>
         <role-name>Administrator</role-name>
     </auth-constraint>

所有身份验证内容都将移至auth文件夹或创建基于角色的文件夹,并提供对这些文件夹的不同访问权限。