Tangani Otentikasi dan Otorisasi di layanan web jax-rs dengan cxf

Saya memiliki aplikasi web yang memiliki jsps. Saya tidak menggunakan struts atau kerangka mvc apa pun. Kami memiliki layanan JAX-RS yang dibangun menggunakan Apache CXF.

Sekarang saya ingin melakukan hal berikut

  1. Izinkan pengguna untuk masuk dengan nama pengguna dan kata sandi.
  2. Untuk semua panggilan berikutnya ke layanan web, informasi otentikasi yang sama harus digunakan.
  3. Pengguna yang masuk memiliki beberapa detail (foto profil, nama lengkap), yang saya ingin tetap konstan sepanjang sesi.
  4. Perannya juga telah ditentukan. Berdasarkan peran, hanya panggilan jax-rs tertentu yang diperbolehkan.
  5. Peran juga digunakan di JSP untuk membatasi akses ke fungsionalitas.
  6. Layanan web dapat diakses di luar sehingga informasi otentikasi dan otorisasi harus digunakan.

Sejauh yang saya mengerti, Kita tidak boleh menggunakan sesi di layanan jax-rs. Apa cara terbaik untuk menangani situasi di atas?


person Jigar Shah    schedule 05.07.2012    source sumber


Jawaban (2)


Cara terbaik bergantung pada bagaimana Anda memperkirakannya. Cara saya melakukan ini adalah dengan

  1. Jalankan layanan Istirahat dan JSP pada contoh yang sama
  2. Gunakan web.xml dan CXF untuk menyiapkan kebijakan keamanan, yang memungkinkan otentikasi dan otorisasi pengguna/pw, PERAN diikat ke url jax-rs dan url JSP.
  3. Berdasarkan 2, layanan jax-rs dapat dipanggil langsung ke luar, tetapi pengguna/pw diperlukan seperti yang Anda tentukan.

Semoga ini bisa sedikit membantu Anda.

person Xiangyu    schedule 26.10.2012
comment
Masalahnya adalah bagaimana mendapatkan konteks keamanan di dalam operasi individual tanpa mengacaukan kode. Saat ini cara yang saya lakukan adalah mendapatkan servletContext dan mendapatkan sesi dari yang sama dll. Itu kotor. POJO sederhana saya penuh dengan kode kontrol akses yang dibaca dari sesi dll. - person Jigar Shah; 19.02.2013

Pikirkan validasi keamanan cxf seperti validasi http atau https lainnya. Anda harus mencegat permintaan tersebut dan meneruskannya ke layanan lainnya. Anda dapat menggunakan alat apa pun seperti siteminder, jika tidak, Anda dapat menulis pencegat CXF untuk melakukan validasi keamanan Anda sendiri. Di interseptor Anda dapat memanggil server pembuat token jenis SSO jika Anda memiliki infrastruktur atau menghubungi DB jika arsitektur Anda dibangun seperti itu. Anda dapat menggunakan caching untuk mengurangi jumlah sumber daya dan dapat melihat cache khusus atau hibernasi. mengaktifkan Https harus dilakukan dalam konfigurasi server. Jika Anda memiliki sertifikat, Anda dapat menggunakan sertifikat yang sama, jika tidak, Anda dapat membuatnya sendiri menggunakan openssl.

person R-JANA    schedule 14.02.2013