


Bagaimana untuk menangani kawalan kebenaran dalam pembangunan fungsi back-end Java?
Bagaimana untuk menangani kawalan kebenaran dalam pembangunan fungsi backend Java?
Dalam pembangunan fungsi back-end Java, kawalan kebenaran merupakan isu penting. Kawalan kebenaran yang betul boleh melindungi keselamatan sistem dan menghalang pengguna yang tidak dibenarkan daripada mengakses data atau fungsi sensitif. Artikel ini akan memperkenalkan beberapa kaedah kawalan kebenaran biasa dan memberikan contoh kod.
1. Kawalan kebenaran berasaskan peranan (RBAC)
Kawalan kebenaran berasaskan peranan ialah kaedah kawalan kebenaran yang biasa dan praktikal. Ia mengaitkan pengguna dengan peranan, dan peranan dikaitkan dengan kebenaran, dan mengawal kebenaran pengguna dengan memberikan peranan yang berbeza kepada pengguna.
Pertama, kita perlu membuat kelas entiti untuk pengguna, peranan dan kebenaran. Contoh kod adalah seperti berikut:
// 用户实体类 public class User { private String id; private String username; // 省略其他字段和方法 } // 角色实体类 public class Role { private String id; private String name; // 省略其他字段和方法 } // 权限实体类 public class Permission { private String id; private String name; private String url; // 省略其他字段和方法 }
Kemudian, kita perlu mencipta jadual pengguna, peranan dan kebenaran dalam pangkalan data, dan mewujudkan hubungan yang sepadan.
Seterusnya, kita perlu menulis kelas perkhidmatan yang sepadan untuk mengendalikan logik kawalan kebenaran. Contoh kod adalah seperti berikut:
public class UserService { public boolean hasPermission(User user, String url) { // 根据用户获取角色列表 List<Role> roles = user.getRoles(); // 遍历角色列表,检查是否拥有访问url的权限 for (Role role : roles) { List<Permission> permissions = role.getPermissions(); for (Permission permission : permissions) { if (url.equals(permission.getUrl())) { return true; } } } return false; } }
Dalam pembangunan fungsi tertentu, kami boleh memanggil kaedah hasPermission UserService untuk menyemak kebenaran di mana pengesahan kebenaran diperlukan. Contohnya:
public class UserController { private UserService userService; public void getUser(String userId) { // 获取当前用户 User user = getCurrentUser(); // 检查用户是否拥有访问用户信息的权限 boolean hasPermission = userService.hasPermission(user, "/user/" + userId); if (hasPermission) { // 查询用户信息 User targetUser = userService.getUser(userId); // 返回结果 } else { // 返回无权限的错误提示 } } }
Kaedah kawalan kebenaran berasaskan peranan adalah mudah dan praktikal, serta sesuai untuk sistem dengan kebenaran yang agak mudah dan tetap.
2. Kawalan kebenaran berasaskan sumber (ABAC)
Kawalan kebenaran berasaskan sumber ialah kaedah kawalan kebenaran yang lebih fleksibel. Ia memanjangkan butiran kawalan kebenaran ke peringkat sumber dan menentukan sama ada pengguna mempunyai kebenaran untuk mengakses sumber tertentu dengan mentakrifkan satu siri peraturan akses.
Berbanding dengan RBAC, ABAC mempunyai kelebihan dalam fleksibiliti kawalan kebenaran. Kami boleh mengawal kebenaran dengan menentukan pelbagai syarat dan peraturan, seperti masa, lokasi, peranan dan faktor lain. Sebagai contoh, kita boleh menentukan peraturan: hanya pentadbir semasa waktu bekerja boleh mengakses antara muka API maklumat pekerja.
public class UserController { public void getEmployeeInfo(String empId) { // 获取当前用户 User user = getCurrentUser(); // 判断是否在工作时间内 boolean isWorkingTime = isWorkingTime(); // 判断用户是否为管理员 boolean isAdmin = isAdmin(user); // 根据条件判断是否有权限访问员工信息 if (isWorkingTime && isAdmin) { // 查询员工信息 EmployeeInfo employeeInfo = employeeService.getEmployeeInfo(empId); // 返回结果 } else { // 返回无权限的错误提示 } } }
Kawalan kebenaran berasaskan sumber memerlukan penentuan dan pengurusan sejumlah besar peraturan dan syarat, dan sesuai untuk sistem dengan kebenaran yang lebih kompleks dan fleksibel.
Ringkasan:
Dalam pembangunan fungsi back-end Java, kawalan kebenaran adalah bahagian yang sangat diperlukan. Kawalan kebenaran berasaskan peranan dan kawalan kebenaran berasaskan sumber ialah dua kaedah kawalan kebenaran biasa. Memilih kaedah kawalan kebenaran yang sesuai perlu ditentukan berdasarkan keperluan khusus dan kerumitan sistem. Tidak kira kaedah yang anda pilih, kawalan kebenaran yang baik boleh melindungi keselamatan sistem dengan berkesan dan menghalang capaian yang tidak dibenarkan. Saya harap artikel ini telah memberi anda sedikit bantuan dalam kawalan kebenaran backend Java.
Atas ialah kandungan terperinci Bagaimana untuk menangani kawalan kebenaran dalam pembangunan fungsi back-end Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

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

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

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

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)

Topik panas



Panduan untuk Square Root di Java. Di sini kita membincangkan cara Square Root berfungsi di Java dengan contoh dan pelaksanaan kodnya masing-masing.

Panduan Nombor Sempurna di Jawa. Di sini kita membincangkan Definisi, Bagaimana untuk menyemak nombor Perfect dalam Java?, contoh dengan pelaksanaan kod.

Panduan untuk Nombor Armstrong di Jawa. Di sini kita membincangkan pengenalan kepada nombor Armstrong di java bersama-sama dengan beberapa kod.

Panduan untuk Penjana Nombor Rawak di Jawa. Di sini kita membincangkan Fungsi dalam Java dengan contoh dan dua Penjana berbeza dengan contoh lain.

Panduan untuk Weka di Jawa. Di sini kita membincangkan Pengenalan, cara menggunakan weka java, jenis platform, dan kelebihan dengan contoh.

Panduan untuk Nombor Smith di Jawa. Di sini kita membincangkan Definisi, Bagaimana untuk menyemak nombor smith di Jawa? contoh dengan pelaksanaan kod.

Dalam artikel ini, kami telah menyimpan Soalan Temuduga Spring Java yang paling banyak ditanya dengan jawapan terperinci mereka. Supaya anda boleh memecahkan temuduga.

Java 8 memperkenalkan API Stream, menyediakan cara yang kuat dan ekspresif untuk memproses koleksi data. Walau bagaimanapun, soalan biasa apabila menggunakan aliran adalah: bagaimana untuk memecahkan atau kembali dari operasi foreach? Gelung tradisional membolehkan gangguan awal atau pulangan, tetapi kaedah Foreach Stream tidak menyokong secara langsung kaedah ini. Artikel ini akan menerangkan sebab -sebab dan meneroka kaedah alternatif untuk melaksanakan penamatan pramatang dalam sistem pemprosesan aliran. Bacaan Lanjut: Penambahbaikan API Java Stream Memahami aliran aliran Kaedah Foreach adalah operasi terminal yang melakukan satu operasi pada setiap elemen dalam aliran. Niat reka bentuknya adalah
