Felsökning 403 Otillåtna fel vid inskickning av Edge Delivery Services-formulär troubleshooting-403-forbidden-edge-delivery
När du skickar formulär från Edge Delivery Services till AEM Publish kan du råka ut för ett 403-fel som inte tillåts. Detta fel indikerar att servern vägrar att behandla begäran, vanligtvis på grund av säkerhetskonfigurationer. Den här artikeln hjälper dig att identifiera och lösa de vanligaste orsakerna till problemet.
Problembeskrivning
Användarna får ett 403-fel när de skickar formulär från Edge Delivery Services till AEM Publish. Felet visas som:
- HTTP-statuskod: 403
- Felmeddelande: "Åtkomst nekad" eller "Åtkomst nekad"
- Formuläröverföringen misslyckas utan att AEM inskickningsserver nås
Det här problemet uppstår ofta i Edge Delivery Services-integreringar där formulär som lagras på Edge-domäner (.aem.live, .aem.page, .hlx.page, .hlx.live) försöker skicka data till AEM Publish-instanser.
- Databas:
https://github.com/adobe/abc - Plats 1:
main--abc--adobe.aem.live - Plats 2:
main--abc1--adobe.aem.live
Vanliga orsaker och lösningar
Ett 403-fel som inte får användas när formulär skickas från Edge Delivery Services kan ha flera orsaker. Följ de här felsökningsstegen för att:
1. CORS (Cross-Origin Resource Sharing) Issues
Symtomen:
- Webbläsarkonsolen visar CORS-relaterade felmeddelanden
- På fliken Nätverk visas den begäran som blockeras innan servern nås
- Felmeddelanden med texten"Cross Origin Request Blocked"
Diagnos:
- Open browser Developer Tools (F12)
- Kontrollera fliken Konsol för CORS-felmeddelanden
- Sök efter meddelanden som:
Access to fetch at 'https://publish-xxx.adobeaemcloud.com' from origin 'https://main--repo--owner.aem.live' has been blocked by CORS policy
Lösning:
Konfigurera CORS-inställningar i AEM för att tillåta begäranden från dina specifika Edge Delivery-webbplatsdomäner:
# Developer Localhost
SetEnvIfExpr "env('CORSProcessing') == 'true' && req_novary('Origin') =~ m#(http://localhost(:\d+)?$)#" CORSTrusted=true
# Edge Delivery Sites - Add each site domain individually
SetEnvIfExpr "env('CORSProcessing') == 'true' && req_novary('Origin') =~ m#(https://main--abc--adobe\.aem\.live$)#" CORSTrusted=true
SetEnvIfExpr "env('CORSProcessing') == 'true' && req_novary('Origin') =~ m#(https://main--abc1--adobe\.aem\.live$)#" CORSTrusted=true
# Legacy Franklin domains (if still in use)
SetEnvIfExpr "env('CORSProcessing') == 'true' && req_novary('Origin') =~ m#(https://.*\.hlx\.page$)#" CORSTrusted=true
SetEnvIfExpr "env('CORSProcessing') == 'true' && req_novary('Origin') =~ m#(https://.*\.hlx\.live$)#" CORSTrusted=true
main--abc--adobe.aem.live och main--abc1--adobe.aem.live med de faktiska webbplatsdomänerna. Varje plats som lagras från samma databas kräver en separat CORS-konfigurationspost.Detaljerad CORS-konfiguration finns i CORS-konfigurationsguiden.
2. Dispatcher regler
Symtomen:
- 403-fel inträffar utan CORS-meddelanden i webbläsarkonsolen
- Begäran når servern men blockeras av Dispatcher
- Ett fel inträffar innan AEM programlager nås
Diagnos:
- Kontrollera om URL:en för begäran matchar eventuella Dispatcher-filterregler
- Granska Dispatcher-konfigurationen för
/filterregler som kan blockera POST-begäranden - Verifiera att slutpunkten för formuläröverföring tillåts i Dispatcher-konfigurationen
Lösning:
Uppdatera Dispatcher-konfigurationen för att tillåta formuläröverföringsbegäranden:
- Kontrollera att slutpunkter för POST-begäranden till formulärinskickning tillåts
- Lägg till lämpliga filterregler för Edge Delivery-domäner
- Kontrollera att sökvägen till överföringsservern inte är blockerad
Exempel på Dispatcher filterkonfiguration:
/filter {
# Allow POST requests to form submission servlet
/0100 { /type "allow" /method "POST" /url "/content/forms/af/*" }
/0101 { /type "allow" /method "POST" /url "/adobe/forms/af/submit/*" }
/0102 { /type "allow" /method "POST" /url "/content/forms/portal/submit/adaptiveform" }
}
3. Problem med referensfilter
Symtomen:
- 403-fel utan CORS-problem i webbläsarkonsolen
- Begäran når AEM men avvisas av Sling Referer-filter
- Ett fel inträffar i AEM programlager
Diagnos:
Kontrollera AEM felloggar för refuseringsmeddelanden för referensfilter:
-
Sök efter poster i
aemerror.logsom innehåller:- "Refererarfiltret avvisades"
- "org.apache.sling.security.impl.ReferrerFilter"
- Meddelanden som indikerar fel vid referensvalidering
Exempel på loggpost:
[ERROR] org.apache.sling.security.impl.ReferrerFilter Referrer filter rejected request with referrer 'https://main--abc--adobe.aem.live' for POST /content/forms/af/submit
Lösning:
Konfigurera referensfiltret så att dina specifika Edge Delivery-webbplatsdomäner tillåts:
-
Skapa eller uppdatera OSGi-konfigurationsfilen:
org.apache.sling.security.impl.ReferrerFilter.cfg.json -
Lägg till följande konfiguration med dina specifika webbplatsdomäner:
code language-json { "allow.empty": false, "allow.hosts": [ "main--abc--adobe.aem.live", "main--abc1--adobe.aem.live" ], "allow.hosts.regexp": [ "https://.*\\.aem\\.live:443", "https://.*\\.aem\\.page:443", "https://.*\\.hlx\\.page:443", "https://.*\\.hlx\\.live:443" ], "filter.methods": [ "POST", "PUT", "DELETE", "COPY", "MOVE" ], "exclude.agents.regexp": [ "" ] } -
Distribuera konfigurationen via Cloud Manager
allow.hosts. Det kanske inte räcker att bara använda regex-mönster för alla scenarier. Inkludera både specifika domäner och regex-mönster för omfattande täckning.Diagnostiksteg
Följ de här stegen för att identifiera orsaken till ditt 403-fel:
Steg 1: Kontrollera webbläsarkonsolen
- Open browser Developer Tools (F12)
- Navigera till fliken Konsol
- Försök att skicka formulär
- Leta efter CORS-relaterade felmeddelanden
Om det finns CORS-fel: Följ CORS-lösningen ovan.
Om det inte finns några CORS-fel: Fortsätt till steg 2.
Steg 2: Kontrollera fliken Nätverk
- Open browser Developer Tools (F12)
- Navigera till fliken Nätverk
- Försök att skicka formulär
- Kontrollera information om misslyckade begäranden
- Titta på svarsrubriker och status
Om begäran inte når servern: Sannolikt ett Dispatcher-problem.
Om begäran når servern men misslyckas: Troligen ett problem med referensfilter.
Steg 3: Kontrollera AEM-loggar
- Använd Cloud Manager
- Navigera till miljöer → Din miljö → Loggar
- Hämta eller visa
aemerror.log - Söka efter poster runt tiden för formulärinlämning
- Leta efter referensfilter eller säkerhetsrelaterade meddelanden
Förebyggande och bästa metoder
1. Korrekt konfiguration under installationen
- Konfigurera inställningar för CORS, Dispatcher och Referrer-filter under den första Edge Delivery Services-installationen
- För varje ny plats: Lägg till den specifika domänen i alla tillåtelselista (CORS, referensfilter)
- Testa formulärskickning i utvecklingsmiljö innan du publicerar
2. Miljöspecifika konfigurationer
- Använd olika konfigurationer för utvecklings-, staging- och produktionsmiljöer
- Inkludera localhost-domäner för lokal utvecklingstestning
- Dokumentera alla webbplatsdomäner som behöver åtkomst till tillåtelselista för din databas
3. Övervakning och loggning
- Ställ in loggövervakning för avvisningar av referensfilter
- Implementera korrekt felhantering i koden för att skicka formulär
- Använd webbläsarutvecklarverktygen under testningen
4. Dokumentation och teamkunskap
- Underhåll ett register för alla webbplatsdomäner med samma databas
- Utvecklingsteamet för utbildning i felsökningssteg
- Underhåll en checklista för Edge Delivery Services formulärinställningar
- Uppdatera tillåtelselista när nya webbplatser skapas från befintliga databaser
Platsdomänhantering för automatiska inställningar
Med Helix-5 och kraftlösa arkitekturer följer du dessa riktlinjer:
När nya platser skapas
- Identifiera webbplatsdomänen (t.ex.
main--newsite--adobe.aem.live) - Uppdatera CORS-konfigurationen så att den nya domänen inkluderas
- Uppdatera referensfilter så att den nya domänen inkluderas i
allow.hosts - Testa formulärskickning från den nya webbplatsen
- Dokumentera den nya domänen i platsregistret
Namngivningsmönster för domäner
- Standardmönster:
{branch}--{site}--{owner}.aem.live - Varje webbplats får en unik domän även när samma databas delas
- Både
.aem.liveoch.aem.pagedomäner kan användas
Konfigurationshantering
- Använd specifika domänposter i
allow.hostsför bättre säkerhet - Tillägg med regex-mönster för bredare täckning
- Granska och uppdatera tillåtelselista regelbundet när webbplatser läggs till eller tas bort
Ytterligare resurser
Relaterade ämnen
Behöver du mer hjälp? Om du fortfarande får problem efter att du har följt dessa felsökningssteg kontaktar du Adobe kundsupport med:
- Dina specifika felmeddelanden
- Information om AEM Cloud-tjänstmiljö
- Alla Edge Delivery Services-webbplatsdomäner som behöver åtkomst för att skicka formulär
- Relevanta loggposter från tidpunkten för felet
Behöver du mer hjälp? Om du fortfarande får problem efter att du har följt dessa felsökningssteg kontaktar du Adobe kundsupport med:
- Dina specifika felmeddelanden
- Information om AEM Cloud-tjänstmiljö
- Edge Delivery Services domäninformation
- Relevanta loggposter från tidpunkten för felet