Hi,
I would like to write a filter that will intercept a page properties post request. My filter will check to see what parameters are being posted and if it find the ones I am interested in. I would like to stop further processing of this post and do a redirect to another page. So far I have had no luck. Can you please provide an example.
Thanks
Solved! Go to Solution.
Views
Replies
Total Likes
One sample filter for a reference at http://aemfaq.blogspot.com/2013/05/blocking-anonymous-access-to-crx-in-non.html
Views
Replies
Total Likes
One sample filter for a reference at http://aemfaq.blogspot.com/2013/05/blocking-anonymous-access-to-crx-in-non.html
Views
Replies
Total Likes
Did you install the package and see the redirect in action - i just installed it and it worked for me. Here is the code for the Filter: See the attachment -- you need to get similar code into your project.
Views
Replies
Total Likes
hi,
thanks for that. I was looking at the code and this looks like a java servlet filter is it possible to use a sling servlet filter and is there any differences?
Thanks
Views
Replies
Total Likes
hi,
when you say install the package you mean upload it into package manager is that correct ?
I will do that now for a fresh publisher instance.
Views
Replies
Total Likes
Hi,
I have installed it on a fresh instance and tried to change the redirect locations and it does not point to the new locations
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { if ( req instanceof HttpServletRequest && res instanceof HttpServletResponse ) { final HttpServletRequest request = (HttpServletRequest)req; final HttpServletResponse response = (HttpServletResponse)res; String pathInfo = request.getPathInfo() ; boolean crxdeAuthenticated = false; boolean crxAuthenticated = false; if(pathInfo != null){ Cookie[] cookies = request.getCookies(); if(cookies!=null){ for (int i = 0; i < cookies.length; i++) { String name = cookies[i].getName(); String value = cookies[i].getValue(); if(name!=null && name.equals("login-workspace") && value!=null){ crxAuthenticated = true; } if(name!=null && name.equals("login-token") && value!=null){ crxdeAuthenticated = true; } } } if(pathInfo.startsWith("/crx/explorer/crx_main_files/admin.css")){ //Do nothing }else if ( !pathInfo.startsWith("/crx/explorer/login.jsp") && pathInfo.startsWith("/crx/explorer") && !crxAuthenticated ){ response.sendRedirect("/content/geometrixx-outdoors/en.html"); return; }else if( ( pathInfo.startsWith("/crxde") || pathInfo.startsWith("/crx/de") ) && !crxdeAuthenticated ){ RequestDispatcher rd = request.getRequestDispatcher("/content/geometrixx-outdoors/en.html"); rd.forward(request, response); return; } } } chain.doFilter(req, res); }
Views
Replies
Total Likes
A sling servlet is a Java Servlet - the difference is the classes that the servlet inherits from. For example:
http://sling.apache.org/apidocs/sling5/org/apache/sling/api/servlets/SlingAllMethodsServlet.html
Did you successfully deploy your servlet and can you post data to it?
Views
Replies
Total Likes
Hi,
I have managed to post to the servlet filter, the problems is when I try to do a redirect from the servlet filter to another page. I get an alert box on the browser and the browser refuses to go the the redirect page. I have looked inside the browser console for firefox and I can see that it is doing a post for the current page and a get to the redirected page and then I see an alert on the browser. I cannot see any errors of any sort.
Thanks
Views
Replies
Total Likes
I have done followed Sham's suggestion and this is the result I get.
Views
Replies
Total Likes
I recommend trying the solution that Sham suggested.
Views
Replies
Total Likes
Views
Likes
Replies