This conversation has been locked due to inactivity. Please create a new post.
This conversation has been locked due to inactivity. Please create a new post.
*Reposted since I am not able to see this post
Hi everyone,
I have a custom servlet which I am using to return folder information. I am able to return the information when I attempting to hit the servlet directly with HTTP and specifying the port number. However, we are setting AEM to be SSL by Default and I am unable to get the same information to be returned through HTTPS and when I do not specify the port which is the case I want. I'm assuming it has to do with the mapping I have in place but I am unsure.
I have updated the Apache Felix Jetty Based Http Service to enable HTTPS and messed around with the Sling Mapping but am getting nowhere. I have added error log information and some configuration information below when I attempt to hit the servlet from Postman.
Any help would be awesome.
Error Log Information
0 TIMER_START{Request Processing}
2 COMMENT timer_end format is {<elapsed microseconds>,<timer name>} <optional message>
12 LOG Method=POST, PathInfo=null
16 TIMER_START{handleSecurity}
2016 TIMER_END{1996,handleSecurity} authenticator org.apache.sling.auth.core.impl.SlingAuthenticator@576d3546 returns true
2298 TIMER_START{ResourceResolution}
6162 TIMER_END{3862,ResourceResolution} URI=/api/assets/v1/jobFolderInfo resolves to Resource=NonExistingResource, path=/api/assets/v1/jobFolderInfo
6175 LOG Resource Path Info: SlingRequestPathInfo: path='/api/assets/v1/jobFolderInfo', selectorString='null', extension='null', suffix='null'
6176 TIMER_START{ServletResolution}
6182 TIMER_START{resolveServlet(/api/assets/v1/jobFolderInfo)}
8231 LOG {0}: no servlet found
8245 TIMER_END{2061,resolveServlet(/api/assets/v1/jobFolderInfo)} Using servlet org.apache.sling.servlets.post.impl.SlingPostServlet
8251 TIMER_END{2074,ServletResolution} URI=/api/assets/v1/jobFolderInfo handled by Servlet=org.apache.sling.servlets.post.impl.SlingPostServlet
8259 LOG Applying Requestfilters
8265 LOG Calling filter: com.adobe.granite.resourceresolverhelper.impl.ResourceResolverHelperImpl
8274 LOG Calling filter: org.apache.sling.i18n.impl.I18NFilterSling Mapping
<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
jcr:primaryType="sling:Mapping"
sling:internalRedirect="/content/dam/site.$1.json"
sling:match="aem.site.com.4502/api/assets/v1/(.*)" />
Servlet Information
/**
* Servlet for creating folder using DAM assets APIs.
*/
@Component(service = Servlet.class,
property = {
Constants.SERVICE_DESCRIPTION + "=Get Job Folder Info API",
"sling.servlet.methods=" + HttpConstants.METHOD_POST,
"sling.servlet.resourceTypes=" + "sling/servlet/default",
"sling.servlet.selectors=" + "jobFolderInfo",
"sling.servlet.extensions=" + APIConstants.JSON_EXTENSION_TYPE
})
public class JobFolderInfoServlet extends SlingAllMethodsServlet {
Solved! Go to Solution.
Views
Replies
Total Likes
Hello,
I don't think you can make a sling:internalRedirect with servlets; as this property causes the current path to be modified internally to continue with resource resolution; not script resolution. Documentation: https://sling.apache.org/documentation/the-sling-engine/mappings-for-resource-resolution.html
Intern Solution:
Apache Redirects:
RewriteRule ^/api/assets/v1/(.*)$ /content/dam/site.$1.json [PT,L]
Documentation: https://sourcedcode.com/sugar-coating-servlet-scripts-and-paths
Hope this helps.
Just wanted to add more to this in terms of recent request log.
0 TIMER_START{Request Processing}
3 COMMENT timer_end format is {<elapsed microseconds>,<timer name>} <optional message>
15 LOG Method=POST, PathInfo=null
19 TIMER_START{handleSecurity}
2006 TIMER_END{1985,handleSecurity} authenticator org.apache.sling.auth.core.impl.SlingAuthenticator@66bb9cb returns true
2326 TIMER_START{ResourceResolution}
4772 TIMER_END{2444,ResourceResolution} URI=/api/assets/v1/jobFolderInfo resolves to Resource=NonExistingResource, path=/api/assets/v1/jobFolderInfo
4783 LOG Resource Path Info: SlingRequestPathInfo: path='/api/assets/v1/jobFolderInfo', selectorString='null', extension='null', suffix='null'
4784 TIMER_START{ServletResolution}
4789 TIMER_START{resolveServlet(/api/assets/v1/jobFolderInfo)}
5722 LOG {0}: no servlet found
5734 TIMER_END{943,resolveServlet(/api/assets/v1/jobFolderInfo)} Using servlet org.apache.sling.servlets.post.impl.SlingPostServlet
5740 TIMER_END{955,ServletResolution} URI=/api/assets/v1/jobFolderInfo handled by Servlet=org.apache.sling.servlets.post.impl.SlingPostServlet
5747 LOG Applying Requestfilters
5753 LOG Calling filter: com.adobe.granite.resourceresolverhelper.impl.ResourceResolverHelperImpl
5762 LOG Calling filter: org.apache.sling.i18n.impl.I18NFilter
5766 LOG Calling filter: com.adobe.granite.httpcache.impl.InnerCacheFilter
5775 LOG Calling filter: org.apache.sling.rewriter.impl.RewriterFilter
5780 LOG Calling filter: com.adobe.cq.mcm.campaign.servlets.CampaignCopyTracker
5784 LOG Calling filter: com.adobe.cq.history.impl.HistoryRequestFilter
5948 LOG Calling filter: com.day.cq.wcm.core.impl.WCMRequestFilter
5962 LOG Calling filter: com.adobe.cq.wcm.core.components.internal.servlets.CoreFormHandlingServlet
5968 LOG Calling filter: com.adobe.granite.optout.impl.OptOutFilter
5977 LOG Calling filter: com.day.cq.wcm.foundation.forms.impl.FormsHandlingServlet
5980 LOG Calling filter: com.adobe.cq.social.commons.cors.CORSAuthenticationFilter
5984 LOG Calling filter: org.apache.sling.engine.impl.debug.RequestProgressTrackerLogFilter
5986 LOG Calling filter: com.day.cq.wcm.mobile.core.impl.redirect.RedirectFilter
5990 LOG Calling filter: com.day.cq.wcm.core.impl.AuthoringUIModeServiceImpl
6295 LOG Calling filter: org.apache.sling.security.impl.ContentDispositionFilter
6300 LOG Calling filter: com.adobe.granite.csrf.impl.CSRFFilter
6310 LOG Calling filter: com.adobe.granite.rest.assets.impl.AssetContentDispositionFilter
6314 LOG Calling filter: com.adobe.granite.requests.logging.impl.RequestLoggerImpl
6320 LOG Calling filter: com.adobe.granite.rest.impl.servlet.ApiResourceFilter
6366 LOG Including resource ApiResourceWrapper, type=granite/rest/core/resource, path=/api/assets/v1/jobFolderInfo, resource=[NonExistingResource, path=/api/assets/v1/jobFolderInfo] (SlingRequestPathInfo: path='/api/assets/v1/jobFolderInfo', selectorString='null', extension='null', suffix='null')
6377 TIMER_START{resolveServlet(/api/assets/v1/jobFolderInfo)}
6398 TIMER_END{20,resolveServlet(/api/assets/v1/jobFolderInfo)} Using servlet com.adobe.granite.rest.impl.servlet.DefaultServlet
6405 LOG Applying Forwardfilters
6408 LOG Calling filter: com.day.cq.personalization.impl.TargetComponentFilter
6412 LOG Calling filter: org.apache.sling.i18n.impl.I18NFilter
6415 LOG Calling filter: com.day.cq.wcm.core.impl.WCMComponentFilter
6520 LOG Calling filter: com.day.cq.wcm.core.impl.WCMDebugFilter
6538 LOG Calling filter: com.adobe.granite.rest.assets.impl.AssetContentDispositionFilter
6549 TIMER_START{com.adobe.granite.rest.impl.servlet.DefaultServlet#0}
11773 TIMER_END{5222,com.adobe.granite.rest.impl.servlet.DefaultServlet#0}
11837 LOG Filter timing: filter=com.day.cq.dam.core.impl.servlet.DamContentDispositionFilter, inner=0, total=5, outer=5
11842 LOG Filter timing: filter=com.adobe.granite.rest.assets.impl.AssetContentDispositionFilter, inner=5, total=5, outer=0
11846 LOG Filter timing: filter=com.day.cq.wcm.core.impl.WCMDebugFilter, inner=5, total=5, outer=0
11849 LOG Filter timing: filter=com.day.cq.wcm.core.impl.WCMComponentFilter, inner=5, total=6, outer=1
11853 LOG Filter timing: filter=org.apache.sling.i18n.impl.I18NFilter, inner=6, total=6, outer=0
12003 TIMER_END{12002,Request Processing} Request Processing
12018 LOG Filter timing: filter=com.adobe.cq.dam.webdav.impl.io.DamWebdavRequestFilter, inner=0, total=0, outer=0
12021 LOG Filter timing: filter=com.day.cq.wcm.core.impl.warp.TimeWarpFilter, inner=0, total=0, outer=0
12025 LOG Filter timing: filter=com.adobe.cq.social.ugcbase.security.impl.SaferSlingPostServlet, inner=0, total=0, outer=0
12028 LOG Filter timing: filter=com.day.cq.dam.core.impl.assetlinkshare.AdhocAssetShareAuthHandler, inner=0, total=0, outer=0
12031 LOG Filter timing: filter=com.day.cq.dam.core.impl.servlet.ActivityRecordHandler, inner=0, total=0, outer=0
12034 LOG Filter timing: filter=com.day.cq.dam.core.impl.servlet.DamContentDispositionFilter, inner=0, total=0, outer=0
12037 LOG Filter timing: filter=com.adobe.granite.rest.impl.servlet.ApiResourceFilter, inner=0, total=6, outer=6
12040 LOG Filter timing: filter=com.adobe.granite.requests.logging.impl.RequestLoggerImpl, inner=6, total=6, outer=0
12042 LOG Filter timing: filter=com.adobe.granite.rest.assets.impl.AssetContentDispositionFilter, inner=6, total=6, outer=0
12045 LOG Filter timing: filter=com.adobe.granite.csrf.impl.CSRFFilter, inner=6, total=6, outer=0
12048 LOG Filter timing: filter=org.apache.sling.security.impl.ContentDispositionFilter, inner=6, total=6, outer=0
12051 LOG Filter timing: filter=com.day.cq.wcm.core.impl.AuthoringUIModeServiceImpl, inner=6, total=6, outer=0
12054 LOG Filter timing: filter=com.day.cq.wcm.mobile.core.impl.redirect.RedirectFilter, inner=6, total=6, outer=0
12057 LOG Filter timing: filter=org.apache.sling.engine.impl.debug.RequestProgressTrackerLogFilter, inner=6, total=6, outer=0
12059 LOG Filter timing: filter=com.adobe.cq.social.commons.cors.CORSAuthenticationFilter, inner=6, total=6, outer=0
12062 LOG Filter timing: filter=com.day.cq.wcm.foundation.forms.impl.FormsHandlingServlet, inner=6, total=6, outer=0
12065 LOG Filter timing: filter=com.adobe.granite.optout.impl.OptOutFilter, inner=6, total=6, outer=0
12069 LOG Filter timing: filter=com.adobe.cq.wcm.core.components.internal.servlets.CoreFormHandlingServlet, inner=6, total=6, outer=0
12072 LOG Filter timing: filter=com.day.cq.wcm.core.impl.WCMRequestFilter, inner=6, total=6, outer=0
12075 LOG Filter timing: filter=com.adobe.cq.history.impl.HistoryRequestFilter, inner=6, total=6, outer=0
12078 LOG Filter timing: filter=com.adobe.cq.mcm.campaign.servlets.CampaignCopyTracker, inner=6, total=6, outer=0
12081 LOG Filter timing: filter=org.apache.sling.rewriter.impl.RewriterFilter, inner=6, total=6, outer=0
12084 LOG Filter timing: filter=com.adobe.granite.httpcache.impl.InnerCacheFilter, inner=6, total=6, outer=0
12087 LOG Filter timing: filter=org.apache.sling.i18n.impl.I18NFilter, inner=6, total=6, outer=0
12091 LOG Filter timing: filter=org.apache.sling.distribution.servlet.DistributionAgentCreationFilter, inner=6, total=6, outer=0Looks as if maybe the servlet is found? I am not too sure.
Views
Replies
Total Likes
Hello,
I don't think you can make a sling:internalRedirect with servlets; as this property causes the current path to be modified internally to continue with resource resolution; not script resolution. Documentation: https://sling.apache.org/documentation/the-sling-engine/mappings-for-resource-resolution.html
Intern Solution:
Apache Redirects:
RewriteRule ^/api/assets/v1/(.*)$ /content/dam/site.$1.json [PT,L]
Documentation: https://sourcedcode.com/sugar-coating-servlet-scripts-and-paths
Hope this helps.
Views
Replies
Total Likes
Views
Likes
Replies