จัดการการรับรองความถูกต้องและการอนุญาตในเว็บเซอร์ jax-rs ด้วย cxf

ฉันมี webapp ที่มี jsps ฉันไม่ได้ใช้ struts หรือ mvc framework ใด ๆ เรามีบริการ JAX-RS โดยใช้ Apache CXF

ตอนนี้อยากทำตาม.

  1. อนุญาตให้ผู้ใช้เข้าสู่ระบบด้วยชื่อผู้ใช้และรหัสผ่าน
  2. สำหรับการเรียกใช้บริการเว็บครั้งต่อๆ ไป ควรใช้ข้อมูลการตรวจสอบสิทธิ์เดียวกัน
  3. ผู้ใช้ที่เข้าสู่ระบบมีรายละเอียดบางอย่าง (รูปโปรไฟล์ ชื่อเต็ม) ซึ่งฉันต้องการเก็บไว้ให้คงที่ตลอดเซสชัน
  4. นอกจากนี้ยังมีการกำหนดบทบาทของมันด้วย ขึ้นอยู่กับบทบาท เฉพาะการโทร jax-rs บางรายการเท่านั้นที่จะได้รับอนุญาต
  5. บทบาทยังใช้ใน JSP เพื่อจำกัดการเข้าถึงฟังก์ชันการทำงาน
  6. คุณสามารถเข้าถึงบริการเว็บได้จากภายนอก ดังนั้นควรใช้ข้อมูลการตรวจสอบสิทธิ์และการอนุญาต

เท่าที่ฉันเข้าใจ เราไม่ควรใช้เซสชันในบริการ jax-rs วิธีที่ดีที่สุดในการจัดการกับสถานการณ์ข้างต้นคืออะไร?


person Jigar Shah    schedule 05.07.2012    source แหล่งที่มา


คำตอบ (2)


วิธีที่ดีที่สุดขึ้นอยู่กับว่าคุณประมาณค่าไว้อย่างไร วิธีการทำของผมก็คือ

  1. เรียกใช้บริการ Rest และ JSP บนอินสแตนซ์เดียวกัน
  2. ใช้ web.xml และ CXF เพื่อตั้งค่านโยบายความปลอดภัย ซึ่งอนุญาตให้มีการตรวจสอบสิทธิ์และการอนุญาตผู้ใช้/pw ROLES เชื่อมโยงกับทั้ง jax-rs url และ JSP url
  3. ตาม 2 สามารถเรียกใช้บริการ jax-rs ภายนอกได้โดยตรง แต่จำเป็นต้องมี user/pw ตามที่คุณระบุ

หวังว่านี่จะช่วยคุณได้สักหน่อย

person Xiangyu    schedule 26.10.2012
comment
ปัญหาคือวิธีรับบริบทด้านความปลอดภัยภายในการดำเนินการแต่ละรายการโดยไม่ทำให้โค้ดเสียหาย วิธีที่ฉันกำลังทำอยู่ในปัจจุบันคือรับ servletContext และรับเซสชันจากที่เดียวกัน ฯลฯ มันสกปรก POJO แบบธรรมดาของฉันเต็มไปด้วยรหัสควบคุมการเข้าถึงซึ่งอ่านจากเซสชัน ฯลฯ - person Jigar Shah; 19.02.2013

คิดว่าการตรวจสอบความปลอดภัย cxf เหมือนกับการตรวจสอบ http หรือ https อื่นๆ คุณต้องสกัดกั้นคำขอและส่งต่อไปยังบริการที่เหลือ คุณสามารถใช้เครื่องมือใดก็ได้ เช่น siteminder หรือเขียน CXF Interceptor เพื่อทำการตรวจสอบความปลอดภัยของคุณเองได้ ใน Interceptor คุณสามารถเรียกเซิร์ฟเวอร์ตัวสร้างโทเค็นประเภท SSO ในกรณีที่คุณมีโครงสร้างพื้นฐานหรือเรียก DB หากสถาปัตยกรรมของคุณถูกสร้างขึ้นในลักษณะนั้น คุณสามารถใช้แคชเพื่อลดการเข้าถึงทรัพยากรและสามารถดูแคชแบบกำหนดเองหรือไฮเบอร์เนตได้ ต้องเปิดใช้งาน Https ในการกำหนดค่าเซิร์ฟเวอร์ หากคุณมีใบรับรอง คุณสามารถใช้แบบเดียวกันที่คุณสามารถสร้างเองได้โดยใช้ openssl

person R-JANA    schedule 14.02.2013