ฉันมีแอปพลิเคชัน Spring Boot ที่ทำงานภายใต้ Tomcat 8.5 ซึ่งรวม SSO ที่ใช้ shibboleth Shibboleth และ Tomcat เชื่อมต่อโดยใช้ apache2 mod_shib และ mod_jk โดยใช้แพ็คเกจ Debian 9 เริ่มต้น
ตอนนี้ฉันกำลังพยายามอัปเกรดสภาพแวดล้อมของแอปพลิเคชันเป็น Debian 10 (และ Tomcat 9) และส่วนใหญ่ทำงานกับการเปลี่ยนแปลงการกำหนดค่าเล็กน้อย ยกเว้นการตรวจสอบสิทธิ์ตาม Shibboleth
ถ้าโทรมา /เข้าสู่ระบบ/shibboleth
(ซึ่งกำหนดค่าใน apache ให้ตรวจสอบสิทธิ์โดยใช้ shibboleth จากนั้นเข้าสู่ระบบภายในแอปพลิเคชันโดยใช้ตัวแปรที่ใช้ร่วมกันของ shibboleth ที่ให้มา) โปรโตคอลการตรวจสอบสิทธิ์ SAML2 ของ shibboleth นั้นทำอย่างถูกต้อง (และสามารถสอบถามเซสชัน shibboleth ใน apache ได้ในภายหลัง) แต่วิธีการจัดการ สำหรับ /เข้าสู่ระบบ/shibboleth
ไม่ได้ถูกเรียก (ฉันตรวจสอบสิ่งนี้โดยใช้การดีบักระยะไกล) แต่ถูกปฏิเสธโดย Tomcat เอง:
สถานะ HTTP 403 â ถูกห้าม
พิมพ์รายงานสถานะ
คำอธิบาย เซิร์ฟเวอร์เข้าใจคำขอแต่ปฏิเสธที่จะอนุญาต
Apache Tomcat/9.0.31 (เดเบียน)
ฉันได้พยายามตรวจสอบปัญหานี้แล้ว และวิธีแก้ไขที่เป็นไปได้วิธีหนึ่งดูเหมือนจะใช้ความลับในตัวเชื่อมต่อ AJP การกำหนดหนึ่งรายการ (ใน server.xml ของ tomcat9) ดูเหมือนจะไม่เปลี่ยนพฤติกรรมใด ๆ (เช่น mod_jk ดูเหมือนจะไม่มีตัวเลือกที่เกี่ยวข้องดังนั้นฉันสงสัยว่า ใดๆ ฟังก์ชันทำงานเมื่อมีการกำหนดค่าความลับ)
ใครบ้างมีความคิดเกี่ยวกับ:
- สิ่งที่อาจทำให้เกิดปัญหานี้
- ทางออกที่เป็นไปได้คืออะไร