


Pembangunan bahagian belakang Java: Pengesahan dan kebenaran API menggunakan Pengesahan dan Perkhidmatan Kebenaran Java
Pembangunan back-end Java sentiasa menjadi arus perdana pembangunan aplikasi perusahaan Dalam pembangunan sebenar, kami selalunya perlu mengesahkan dan membenarkan API untuk memastikan keselamatan data dan pengguna. Java Authentication and Authorization Service (JAAS) ialah satu cara untuk melaksanakan pengesahan identiti dan kebenaran yang disediakan oleh Java.
Apa itu JAAS
JAAS ialah rangka kerja keselamatan yang disediakan oleh teknologi Java Ia menyediakan API dan SPI biasa untuk melaksanakan pengesahan dan kebenaran. Kedua-dua aplikasi Java dan aplikasi web boleh menggunakan JAAS untuk melaksanakan pengesahan dan kebenaran yang selamat.
JAAS mengandungi tiga konsep teras: Subjek, Pengesahan dan Kebenaran.
Subjek merujuk kepada pengguna atau perkhidmatan dan mempunyai satu atau lebih identiti (pengetua) dan berbilang kebenaran yang sesuai (kebenaran). Subjek ialah kelas teras JAAS dan mewakili mana-mana entiti dalam aplikasi.
Pengesahan bermaksud mengesahkan identiti Subjek. Ia terdiri daripada satu set Kredensial seperti Nama Pengguna dan Kata Laluan Kredensial. Bukti kelayakan boleh berupa apa sahaja: kata laluan, sijil digital, cap jari, dsb.
Kebenaran mewakili proses membenarkan Subjek untuk mengakses sumber atau melaksanakan operasi. Kebenaran merujuk kepada satu operasi yang ditangkap dalam mesin maya Java, seperti membaca fail atau menerima sambungan soket.
Cara menggunakan JAAS untuk pengesahan dan kebenaran API
Pertama, kita perlu mengkonfigurasi modul pelaksanaan JAAS. JAAS menyokong berbilang modul pelaksanaan, yang paling biasa digunakan ialah modul pelaksanaan berasaskan fail. Berikut ialah contoh konfigurasi JAAS berasaskan fail:
Sample { com.mycompany.security.SampleLoginModule required; };
di mana Sample ialah nama modul pelaksanaan, com.mycompany.security.SampleLoginModule ialah nama kelas Java yang melaksanakan antara muka LoginModule, dan diperlukan menunjukkan bahawa modul mesti digunakan semasa proses pengesahan dilaksanakan.
Seterusnya, dalam Java, kita perlu menggunakan kelas LoginContext untuk melaksanakan pengesahan dan kebenaran. Contoh kod adalah seperti berikut:
LoginContext lc = new LoginContext("Sample", new CallbackHandler() { public void handle(Callback[] callbacks) { // ... // 这里实现回调处理逻辑 // ... } }); try { lc.login(); Subject subject = lc.getSubject(); // 身份验证成功,subject中包含了身份和权限 } catch (LoginException le) { // 身份验证失败 }
Seperti yang ditunjukkan dalam kod di atas, mula-mula kita mencipta objek LoginContext dan lulus modul pelaksanaan dan pengendali panggil balik kepadanya. Dalam pengendali panggilan balik, kami boleh mengendalikan panggilan balik yang diperlukan untuk pengesahan.
Kami kemudiannya memanggil kaedah log masuk LoginContext untuk melaksanakan pengesahan dan kebenaran. Jika pengesahan berjaya, kita boleh mendapatkan objek Subjek daripada LoginContext dan menggunakannya dalam permintaan seterusnya untuk mengesahkan kebenaran API.
Akhir sekali, kami perlu menggunakan objek Subjek dalam API untuk mengesahkan kebenaran pengguna, contohnya:
Subject subject = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); if (subject.isPermitted("read_data")) { // 允许访问数据 } else { // 拒绝访问数据 }
Dalam kod di atas, kami menggunakan SecurityContextHolder dalam rangka kerja Spring Security untuk mendapatkan objek Subjek dan gunakan kaedah isPermitted untuk mengesahkan sama ada kebenaran diberikan.
Kesimpulan
Menggunakan JAAS untuk pengesahan dan kebenaran ialah pendekatan standard dalam pembangunan backend Java. Ia menyediakan API dan SPI biasa, membolehkan pembangun melaksanakan keselamatan API dengan mudah. Saya harap artikel ini dapat membantu anda memahami cara menggunakan JAAS untuk pengesahan dan kebenaran API.
Atas ialah kandungan terperinci Pembangunan bahagian belakang Java: Pengesahan dan kebenaran API menggunakan Pengesahan dan Perkhidmatan Kebenaran Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Stock Market GPT
Penyelidikan pelaburan dikuasakan AI untuk keputusan yang lebih bijak

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Pertama, aktifkan fungsi skala terbina dalam penyemak imbas UC, pergi ke Tetapan → Layari Tetapan → Font dan Typesetting atau Page Scaling, dan pilih nisbah pratetap atau peratusan tersuai; Kedua, anda boleh memaksa saiz paparan halaman dengan membuka atau mencubit gerak isyarat dengan dua jari; Untuk laman web yang menyekat skala, anda boleh meminta versi desktop laman web untuk membuka kunci sekatan; Pengguna lanjutan juga boleh mengubah suai atribut Viewport dengan melaksanakan kod JavaScript di bar alamat untuk mencapai kesan skala paksa yang lebih fleksibel.

Sistem masa nyata memerlukan tindak balas deterministik, kerana ketepatan bergantung pada masa penghantaran hasil; Sistem masa nyata yang sukar memerlukan tarikh akhir yang ketat, terlepas akan membawa kepada bencana, sementara masa nyata yang lembut membolehkan kelewatan sekali-sekala; Faktor-faktor yang tidak ditentukan seperti penjadualan, gangguan, cache, pengurusan memori, dan lain-lain mempengaruhi masa; Pelan pembinaan termasuk pemilihan RTO, analisis WCET, pengurusan sumber, pengoptimuman perkakasan dan ujian yang ketat.

Jawapannya ialah menggunakan thread.currentThread ().

Pengendalian pengecualian Java menangkap pengecualian melalui blok cuba, akhirnya blok memastikan pembersihan sumber, cuba-dengan-sumber secara automatik menguruskan sumber, melemparkan pengecualian, pengecualian adat untuk menangani kesilapan tertentu, dan mengikuti amalan terbaik seperti menangkap pengecualian tertentu, tidak mengabaikan pengecualian, dan mengelakkan blok tangkapan kosong, dengan itu mencapai kod yang rapi dan mengekalkan.

Edge menduduki CPU yang tinggi kerana penggunaan sumber yang tinggi berdasarkan kernel kromium, ditambah dengan faktor-faktor seperti halaman multi-tab, plug-in berjalan, skrip laman web dan mekanisme rendering; Penyelesaian termasuk: 1. Tutup sambungan yang tidak perlu untuk mengurangkan beban latar belakang; 2. Dayakan fungsi "Tag Tidur" untuk mengurangkan penggunaan sumber tag terbiar; 3. Bersihkan proses latar belakang dan tutup tetapan yang berkaitan dengan GPU; 4. Kemas kini penyemak imbas dan sistem untuk memastikan keserasian dan pengoptimuman prestasi.

Kelas pilihan digunakan untuk mengendalikan nilai -nilai yang selamat yang mungkin menjadi batal, mengelakkan pengecualian penunjuk null. 1. Buat contoh menggunakan pilihan. Nullable untuk mengendalikan nilai null. 2. Semak dan nilai akses melalui ISPRESENT atau Keselamatan IFPRESENT untuk mengelakkan panggilan langsung untuk menyebabkan pengecualian. 3. Gunakan Orelse dan Orelseget untuk memberikan nilai lalai, atau gunakan Orelsethrow untuk membuang pengecualian tersuai. 4. Menukar atau menapis nilai melalui operasi peta dan penapis rantaian untuk meningkatkan kebolehbacaan kod dan ketahanan.
![Operasi ini telah dibatalkan kerana sekatan yang berkuatkuasa pada komputer ini [tetap]](https://img.php.cn/upload/article/001/431/639/175848366191209.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
Ifyousee "ini operasiHasbeencancelledduetorestrictions," trythesesteps: 1.checkregistrysettingsunderpolicies \ explorer.2.reviewgrouppolicyforblockedprograms.3.RunteAppasadministrator.ScanFreAn.CreBreAshileSan.4.ScanFreAn.CreBreAshiloSan.4.ScanFreAn.CreBeroShoSan.4.ScanFreAn.5.CreBeroShareShare.4.ScanFoRoSharWare.5.ScreSharoShare.5.ScanFreAn.5.CreBreAsher.5.SCANFORTORWARE.5.CreBreAsher.5.SCANFORMALWARE.5.SCREARASA

Gunakan kaedah getClass () untuk mendapatkan kelas runtime objek, seperti str.getClass () untuk mengembalikan objek kelas; Untuk jenis, anda boleh menggunakan sintaks string.class secara langsung. Kelas kelas menyediakan kaedah seperti getName (), getImpleName () untuk mendapatkan maklumat kelas, seperti num.getClass (). GetImpleName () untuk output integer.
