मैंने PUT, DELETE, आदि को हटाने के प्रयास के लिए अपने आवेदन के web.xml में निम्नलिखित डाला है:
<security-constraint>
<web-resource-collection>
<web-resource-name>restricted methods</web-resource-name>
<url-pattern>/*</url-pattern>
<http-method>DELETE</http-method>
<http-method>PUT</http-method>
<http-method>SEARCH</http-method>
<http-method>COPY</http-method>
<http-method>MOVE</http-method>
<http-method>PROPFIND</http-method>
<http-method>PROPPATCH</http-method>
<http-method>MKCOL</http-method>
<http-method>LOCK</http-method>
<http-method>UNLOCK</http-method>
<http-method>delete</http-method>
<http-method>put</http-method>
<http-method>search</http-method>
<http-method>copy</http-method>
<http-method>move</http-method>
<http-method>propfind</http-method>
<http-method>proppatch</http-method>
<http-method>mkcol</http-method>
<http-method>lock</http-method>
<http-method>unlock</http-method>
</web-resource-collection>
<auth-constraint />
</security-constraint>
ठीक है, तो अब:
यदि मैं एक विधि के साथ अनुरोध करता हूं तो DELETE
मुझे 403 वापस मिल जाता है।
यदि मैं एक विधि के साथ अनुरोध करता हूं तो delete
मुझे 403 वापस मिल जाता है।
परंतु
अगर मैं DeLeTe
ठीक होने की विधि के साथ एक अनुरोध करता हूं!
मैं इन मामलों को असंवेदनशील कैसे बना सकता हूं?
संपादित करें: मैं इसे C # प्रोग्राम के साथ परीक्षण कर रहा हूं:
private void button1_Click(object sender, EventArgs e)
{
textBox1.Text = "making request";
System.Threading.Thread.Sleep(400);
WebRequest req = WebRequest.Create("http://serverurl/Application/cache_test.jsp");
req.Method = txtMethod.Text;
try
{
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
textBox1.Text = "Status: " + resp.StatusCode;
if (resp.StatusCode == System.Net.HttpStatusCode.OK)
{
WebHeaderCollection header = resp.Headers;
using (System.IO.StreamReader reader = new System.IO.StreamReader(resp.GetResponseStream(), ASCIIEncoding.ASCII))
{
//string responseText = reader.ReadToEnd();
textBox1.Text += "\r\n" + reader.ReadToEnd();
}
}
}
catch (Exception ex)
{
textBox1.Text = ex.Message;
}
}
txtMethod.Text
एक टेक्स्ट बॉक्स है जहाँ मैं विधि नाम लिख रहा हूँ। जब एक 403 होता है तो एक अपवाद फेंक दिया जाता है जो कैच ब्लॉक में पकड़ा जाता है।
Cache_test.jsp में शामिल हैं:
<%
response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
response.setHeader("Pragma","no-cache");
out.print("Method used was: "+request.getMethod());
%>
HttpWebRequest
होगा केस-insensitively समझते हैं और परिवर्तित अपरकेस में मानक HTTP तरीकों। इसके अतिरिक्त, यह केवल मानक HTTP विधियों की अनुमति के रूप में प्रलेखित है । सबसे अच्छा विकल्प एक कच्ची टीसीपी स्ट्रीम (उदाहरण के लिए नेटकैट या पुटी कच्चे, या टेलनेट, आदि) का उपयोग करना है।