Expand my Community achievements bar.

SOLVED

Restrict POST request from a specific SlingAllMethodsServlet

Avatar

Level 1

Hi,

I have defined both doGet() and doPost() methods for SlingAllMethodsServlet as below

@Override

protected void doGet(SlingHttpServletRequest request,
SlingHttpServletResponse response) throws ServletException {

}

@Override
protected void doPost(SlingHttpServletRequest request,
SlingHttpServletResponse response) throws ServletException {

}

Why are both GET and POST requests in this servlet accessible from Postman even though sling.servlet.methods has been explicitly declared as GET  as shown below? 

@component(
service = { Servlet.class },
property = {
"sling.servlet.methods=" + HttpConstants.METHOD_GET,
"sling.servlet.paths="+ "/bin/sling/requestchecker",
},
)

1 Accepted Solution

Avatar

Correct answer by
Employee

See : https://sling.apache.org/documentation/the-sling-engine/servlets.html

 

sling.servlet.methods is only applicable on registration of a servlet via sling.servlet.resourceTypes

 

your servlet example is registered on sling.servlet.paths

View solution in original post

1 Reply

Avatar

Correct answer by
Employee

See : https://sling.apache.org/documentation/the-sling-engine/servlets.html

 

sling.servlet.methods is only applicable on registration of a servlet via sling.servlet.resourceTypes

 

your servlet example is registered on sling.servlet.paths