Match Request VS Content URL in AEM-6.4

Avatar

Avatar

sunitac70336244

Avatar

sunitac70336244

sunitac70336244

03-07-2019

Dear All,

I have below requirement in my AEM-6.4

Step-1

Extract plan id from cookie/session/http header (I want to write a dummy request for now For example I should get PlanId value as 197881 from cookie/session/http header)

Step-2

I want to Extract plan id from my content path URL (My dummy content path is /content/VignetteContent , as shown below.)

1784124_pastedImage_5.png

Step-3

If plan ID match (request vs content URL) then Continue Otherwise Reject.

Can anybody let me know how can I do this one in AEM-6.4?

Thanks

Sunita

View Entire Topic

Avatar

Avatar

sunitac70336244

Avatar

sunitac70336244

sunitac70336244

05-07-2019

Hi Arun,

Thanks For your reply.

Now I need to Provide the planID as URL params in the servlet call and compare that planID with the JCR Property of the content (Step-2).

So I have written the code like below.

But , I am not sure how to Provide the planID as URL params in the servlet call and compare. Can you please help me on this?

@SlingServlet(resourceTypes = "sunita/components/structure/page", methods="GET", selectors="model")
public class PlanService extends SlingAllMethodsServlet{
Logger log = LoggerFactory.getLogger(this.getClass());

private static final long serialVersionUID = 1L;
   
ResourceResolver resourceResolver;

public void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response)throws ServletException,IOException{
  response.setContentType("text/html");
  try {
   // Get the resource (a node in the JCR) using ResourceResolver from the request
   resourceResolver = request.getResourceResolver();
   request.getParameter("");
   log.info("resourceResolver ----==="+resourceResolver);

   //Specify the node of interest in the suffix on the request
   String nodePath = request.getRequestPathInfo().getSuffix();
   if(nodePath != null){
    Resource resource = resourceResolver.getResource(nodePath);
    log.info("resource is === "+resource);
    // Adapt resource properties to variables using ValueMap, and log their values
    Resource parent = resource.getChild("plan");
    log.info("PARAENT resource is === "+parent);
    ValueMap valueMap=parent.adaptTo(ValueMap.class);
    response.getOutputStream().println("<h3>");
    response.getOutputStream().println("PlanID is");
    response.getOutputStream().println("</h3><br />");   
    log.info("PLANID from Content URL/JCR is === "+ valueMap.get("planID").toString());       
    response.getOutputStream().println(valueMap.get("planID").toString());