2013-04-29 28 views
0

我正在測試某些URL的安全約束。我覺得網址格式行事怪異。我想訪問限制ServletSecurityTest(webapproot)/之後。但是,在websphere部署war文件後,即使ServletSecurityTest(webapproot)本身也受到限制。爲什麼?安全約束<url-pattern>代理奇怪 - websphere

例如:

我想這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..."); 

    } 

} 
+0

找到了解釋。不錯的一個>> http://stackoverflow.com/a/10667527/2093375 – 2013-04-29 12:21:45

回答

1

<url-pattern>/*</url-pattern>表示所有網址/後。

/testSecurity.do and /testSecurity都屬於您指定的模式。

嘗試<url-pattern>/*.do</url-pattern>並參見。

+0

我想你誤解了我的Q.我的Q是爲什麼我的網絡應用程序根文件夾也受到限制,這是'http // ravi-pc:9080/ServletSecurityTest' – 2013-04-29 04:24:27

+0

/表示根web應用程序的位置。所以之後的任何事情都會受到影響。檢查servlet規範以獲取確切的規格信息。 http://jcp.org/aboutJava/communityprocess/final/jsr315/ – Thihara 2013-04-29 04:32:28

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文件夾或創建基於角色的文件夾並提供對這些文件夾的不同訪問權限。