2011-12-12 76 views
13

我想從security-constraint只排除一個JSP文件question.jsp從web.xml的安全約束中排除JSP

我有這個從我的web.xml

<security-constraint> 
    <display-name>My Security Constraint</display-name> 
    <web-resource-collection> 
     <web-resource-name>Protected Area</web-resource-name>  
     <url-pattern>*.do</url-pattern> 
     <url-pattern>*.jsp</url-pattern> 
    </web-resource-collection> 
    <auth-constraint>  
     <role-name>*</role-name> 
    </auth-constraint> 
</security-constraint> 
+0

您可以創建一個文件夾並將其他所有內容(question.jsp除外)放在該文件夾中並使用該模式,例如'/ securefolder/*。jsp'。 –

+0

我有這麼多的JSP,所以它非常危險。還有其他解決方案嗎? –

回答

0

一種方式去了解這是你所有的安全JSP內容移動到特定的目錄路徑(比如/從Web根保護/)然後你的web.xml的內容將是這樣的:

<security-constraint> 
    <display-name>My Security Constraint</display-name> 
    <web-resource-collection> 
     <web-resource-name>Protected Area</web-resource-name>  
     <url-pattern>/protected/*.jsp</url-pattern> 

的要求,則可以留在默認文檔根目錄或其他目錄路徑的公共的JSP。

+0

感謝您的迴應,我想到了這個解決方案,但是我無法應用它,我擁有這麼多的JSP,所以它非常危險。還有其他解決方案嗎? –

+0

@naj_ib我不明白爲什麼你認爲它比冒險提高'* .jsp' –

+0

因爲web項目是非常大的,我不需要操作該解決方案只有一個jsp –

24

只需添加一個免費頁面部分,而不提供任何驗證約束。它將優先於受保護的頁面:

<security-constraint> 
    <web-resource-collection> 
    <web-resource-name>free pages</web-resource-name> 
    <url-pattern>/question.jsp</url-pattern> 
    </web-resource-collection> 
</security-constraint> 
+2

這對我有效。 –

+0

[此博客文章](http://blog.mafr.de/2011/04/17/excluding-pages-from-auth/)是關於這個話題的一篇很好的文章。你需要一個比安全的模式更具體的模式,以便公開一些資源。 – cheffe