2012-07-16 11 views
8

पर जेटी यूआरएल-पैटर्न से मिलान करें, मैं केवल जेटी वेब ऐप के लिए अपने संदर्भ पथ पर रूट निर्देशिका की रक्षा करना चाहता हूं। मेरे संदर्भ पथ है/MyApp, तो मैं पहुँचने के लिए एक पासवर्ड की आवश्यकता चाहते हैं:केवल रूट निर्देशिका

http://localhost:8080/MyApp 

लेकिन नहीं के लिए:

http://localhost:8080/MyApp/cometd 

मेरे वर्तमान सेट अप कम हों (यूआरएल पैटर्न पर ध्यान देना):

<security-constraint> 
    <web-resource-collection> 
     <web-resource-name>Private Page</web-resource-name> 
      <url-pattern>/</url-pattern> 
    </web-resource-collection> 
    <auth-constraint> 
     <role-name>moderator</role-name> 
    </auth-constraint> 
</security-constraint> 

<login-config> 
    <auth-method>BASIC</auth-method> 
    <realm-name>Test Realm</realm-name> 
</login-config> 

मैं उम्मीद करता हूं कि यह सामान्य रूप से कैसे/और/* काम की प्रकृति से काम करेगा। http://www.coderanch.com/t/364782/Servlets/java/there-key-difference-between-url

हालांकि, मेरे मामले, url प्रतिमानों के लिए:

<url-pattern>/</url-pattern> 

और

<url-pattern>/*</url-pattern> 

लगते हैं मैं भी इस संसाधन जो मेरा मानना ​​है कि सुझाव दे रहा है कि यह काफी होना चाहिए काम देखा है सटीक कार्य करने के लिए:

http://localhost:8080/MyApp 

और

http://localhost:8080/MyApp/cometd 

दोनों पासवर्ड सुरक्षित हैं।

बेशक

, अगर मैं/nothingishere को बदलने के लिए, बस एक विवेक परीक्षण के रूप में, कुछ भी नहीं पासवर्ड सुरक्षित है के लिए छोड़कर,/MyApp/nothingishere

किसी को भी पता है कि कैसे केवल वेब सर्वलेट्स के लिए रूट निर्देशिका की रक्षा के लिए?

उत्तर

5

यहाँ आप के लिए जवाब है:

<?xml version="1.0" encoding="UTF-8"?> 

<web-app xmlns="http://java.sun.com/xml/ns/javaee" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
     version="3.0"> 
    <session-config> 
     <session-timeout> 
      30 
     </session-timeout> 
    </session-config> 
    <security-constraint> 
     <web-resource-collection> 
      <web-resource-name>Private Page</web-resource-name> 
      <url-pattern>/</url-pattern> 
     </web-resource-collection> 
     <auth-constraint> 
      <role-name>moderator</role-name> 
     </auth-constraint> 
    </security-constraint> 
    <security-constraint> 
     <web-resource-collection> 
      <web-resource-name>Public page</web-resource-name> 
      <url-pattern>/test/*</url-pattern> 
     </web-resource-collection>   
    </security-constraint> 
    <login-config> 
     <auth-method>BASIC</auth-method> 
     <realm-name>Test Realm</realm-name> 
    </login-config> 
</web-app> 

इस विन्यास में, रूट निर्देशिका पासवर्ड से सुरक्षित है और /test/... निर्देशिका नहीं है। मुझे लगता है कि यह वही है जो आप पूछ रहे हैं।

यह कॉन्फ़िगरेशन टॉमकैट 7+ पर परीक्षण किया गया है और नेटबीन में शुरुआत से बनाई गई एक नई परियोजना (यदि आपको इसकी आवश्यकता हो तो मैं आपको संपूर्ण स्रोत ईमेल कर सकता हूं)। output

+0

धन्यवाद, इस _exactly_ मैं के लिए क्या देख रहा था है:

यह उत्पादन होता है। – Drewch

+0

मेरे लिए भी काम करता है :) जैसे ही 24 घंटों तक मैं बक्षीस का पुरस्कार दूंगा। –

+1

बेशक यह न केवल जेटी के लिए बल्कि सभी j2ee अनुपालन वेब-सर्वर के लिए भी है। तो हो सकता है कि आप शीर्षक बदलना चाहें ... बीटीडब्ल्यू, खुशी है कि मैंने – MaVRoSCy

संबंधित मुद्दे