2013-02-22 79 views
33
से एक यूआरएल को कैसे बाहर

मेरे web.xml तरह दिखता है। क्या यह संभव है ?प्राधिकरण

<security-constraint> 
    <web-resource-collection> 
     <web-resource-name>app</web-resource-name> 
     <url-pattern>/info</url-pattern> 
    </web-resource-collection> 
    <!-- OMIT auth-constraint --> 
</security-constraint> 

<security-constraint> 
    <web-resource-collection> 
     <web-resource-name>app</web-resource-name> 
     <url-pattern>/*</url-pattern> 
    </web-resource-collection> 
    <auth-constraint> 
     <role-name>Role</role-name> 
    </auth-constraint> 
</security-constraint> 

उत्तर

57

संसाधनों जिसके लिए आप की तरह प्रमाणीकरण की जरूरत नहीं है के लिए <security-constraint> में <auth-constraint> तत्व छोड़ देते हैं। फिर संरक्षित सामग्री से संसाधन को बाहर करना आसान है। Shiro का उपयोग करके आप WEB-INF/shiro.ini जाते थे:

[urls] 
/info = anon 
/** = authc 
+0

मैंने इस दृष्टिकोण की कोशिश की और काम नहीं किया। क्या यह मान्य है? – cherry

+3

/पथ मेरे लिए काम नहीं कर रहा है, जबकि /पथ/*/path के अंतर्गत रखी गई सभी फ़ाइलों के लिए काम करता है। इसके अलावा, /path/myfile.xhtml व्यक्तिगत फ़ाइल के लिए काम करता है लेकिन /पथ/*। Xhtml काम नहीं करता है –

0

एक समाधान कंटेनर आधारित सुरक्षा के बजाय Apache Shiro की तरह एक वैकल्पिक सुरक्षा ढांचे का उपयोग करने के लिए है:

0

मैं कि क्या मैं आप सही पता नहीं है! मेरे सीमित ज्ञान के साथ मुझे लगता है कि सुरक्षा को लागू करने के लिए सामग्री को सुरक्षित करने के लिए एक या अधिक वेब-संसाधन-संग्रह तत्वों का उपयोग करके घोषित किया जाता है। प्रत्येक वेब-संसाधन-संग्रह तत्व में यूआरएल-पैटर्न तत्वों की एक वैकल्पिक श्रृंखला होती है जिसके बाद http-method तत्वों की एक वैकल्पिक श्रृंखला होती है। यूआरएल-पैटर्न तत्व मान एक यूआरएल पैटर्न निर्दिष्ट करता है जिसके खिलाफ एक अनुरोध यूआरएल सुरक्षित सामग्री तक पहुंचने के प्रयास के अनुरूप अनुरोध के लिए मेल खाना चाहिए। Http-method तत्व मान अनुमति देने के लिए HTTP अनुरोध का एक प्रकार निर्दिष्ट करता है।

<security-constraint> 
    <web-resource-collection> 
     <web-resource-name>Secure Content</web-resource-name> 
     <url-pattern>/restricted/*</url-pattern> 
    </web-resource-collection> 
    <auth-constraint> 
     <role-name>AuthorizedUser</role-name> 
    </auth-constraint> 
    <user-data-constraint> 
     <transport-guarantee>NONE</transport-guarantee> 
    </user-data-constraint> 
</security-constraint> 
<!-- ... --> 
<login-config> 
    <auth-method>BASIC</auth-method> 
    <realm-name>The Restricted Zone</realm-name> 
</login-config> 
<!-- ... --> 
<security-role> 
    <description>The role required to access restricted content </description> 
    <role-name>AuthorizedUser</role-name> 
</security-role> 

वेब एप्लिकेशन के/प्रतिबंधित पथ के अंतर्गत स्थित यूआरएल प्राधिकृत उपयोगकर्ता भूमिका की आवश्यकता है।

0

मैं पहले https/के तहत @ user517491 से समझाया ऊपर जिस तरह से, लेकिन मेरी बिल्ला की कोशिश की है 7 फिल्टर सभी यातायात, लेकिन पिछले अपवाद नजरअंदाज कर दिया है ...

<security-constraint> 
    <web-resource-collection> 
     <web-resource-name>app1</web-resource-name> 
     <url-pattern>/webservice/*</url-pattern> 
    </web-resource-collection> 
</security-constraint> 

<security-constraint> 
    <web-resource-collection> 
     <web-resource-name>Protected Context</web-resource-name> 
     <url-pattern>/*</url-pattern> 
    </web-resource-collection> 
    <user-data-constraint> 
     <transport-guarantee>CONFIDENTIAL</transport-guarantee> 
    </user-data-constraint> 
</security-constraint> 

कैसे मैं करने के लिए एक अपवाद जोड़ सकते हैं एचटीएमएल के साथ http और अन्य सभी यातायात के साथ जाओ ???