Artikel ini memperkenalkan metode keamanan musim semi untuk mengontrol otorisasi dan membagikannya kepada Anda, sebagai berikut:
Gunakan metode otorisasi untuk mengonfigurasi otorisasi
Setiap ekspresi otorisasi kontrol keamanan musim semi (selanjutnya disebut sebagai ekspresi) sebenarnya sesuai dengan metode otorisasi dalam API, yang merupakan metode pemrosesan ketika izin URL yang diminta dikonfigurasi. Misalnya:
@Overrideprotected void configure (httpsecurity http) melempar Exception {http.authorizeRequests () .Antmatchers (httpmethod.delete, "/user/*").hasrole("Admin"). Antani ("/indeks"). .AntMatchers ("/pay"). HASANYROLE ("WE_CHAT_PAY", "Ali_Pay") .Antmatchers ("/Debug"). Hasipaddress ("192.168.1.0/24");}Gunakan ekspresi otorisasi untuk mengesahkan permintaan untuk beberapa izin
Jadi, kapan Anda perlu menggunakan ekspresi untuk pemrosesan otorisasi? Persyaratan izin dari aplikasi keamanan seringkali kompleks dan beragam. Misalnya, permintaan debugging suatu proyek mengharapkan pengunjung memiliki hak administrator dan harus mengaksesnya melalui LAN internal perusahaan. Di bawah persyaratan tersebut, metode yang diberikan oleh API keamanan tidak dapat dipenuhi hanya karena metode otorisasi ini tidak dapat dipanggil terus menerus.
Anda dapat menggunakan ekspresi otorisasi untuk menyelesaikan masalah ini:
@Overrideprotected void configure (httpsecurity http) melempar Exception {http.authorizeRequests () .Antmatchers ("/debug") .Access ("HasRole ('Admin') dan HasIpaddress (192.168.1.0/24 ')");Contoh ekspresi otorisasi
| ekspresi | menjelaskan |
|---|---|
| izin | Kembali Benar selamanya |
| Denyall | Kembalikan False Forever |
| Anonyous | Jika pengguna saat ini adalah pengguna anonim, kembalikan true |
| Ingatme | Jika pengguna saat ini diingat, kembalikan true |
| diautentikasi | Jika pengguna saat ini bukan pengguna anonim (diautentikasi), kembalikan true |
| fullauthenticated | Kembalikan true jika pengguna saat ini tidak anonim atau ingat pengguna |
| hasrole (peran) | Jika Anda memiliki izin peran yang ditentukan dalam koleksi izin pengguna saat ini (saat mencocokkan, 'Role_' akan ditambahkan sebelum izin yang Anda tentukan, yaitu, jika Anda menentukan apakah ada izin "Role_Role"), kembalikan true. |
| Hasanyrole (Role1, Role2, ...) | Kembalikan true jika Anda memiliki izin peran dalam koleksi izin pengguna saat ini |
| hamboritas (otoritas) | Kembalikan true jika izin pengguna saat ini memiliki otoritas (cocokkan apakah ada izin "otoritas") dalam koleksi izin pengguna saat ini. |
| Hasanyauthority (otoritas) | Kembalikan true jika Anda memiliki izin dalam koleksi izin pengguna saat ini |
| Hasipaddress ("192.168.1.0/24") | Fanhui benar saat mengirim pertandingan IP yang diminta |
Kontrol Akses Berbasis Peran RBAC (Kontrol Akses Berbasis Peran)
Mungkin Anda akan berpikir bahwa metode di atas dapat memenuhi manajemen otorisasi keamanan sebagian besar aplikasi. Namun, pada kenyataannya, otorisasi aplikasi tingkat perusahaan sering didasarkan pada perubahan dinamis dalam data database. Jika splicing string digunakan di atas, itu tidak hanya akan sangat tidak ramah bagi pengembang (setiap perubahan dalam personel berarti bahwa kode perlu diubah, yang jelas tidak masuk akal), tetapi kinerja aplikasi juga akan dikurangi. Jadi, bagaimana cara menyelesaikannya?
Model Data
Model data RBAC umum umumnya membutuhkan lima tabel (tiga tabel entitas dan dua tabel hubungan). Tiga tabel entitas termasuk tabel pengguna, tabel peran, dan tabel sumber daya. Dua tabel hubungan termasuk. Hubungan di antara mereka adalah sebagai berikut:
Model Data RBAC
Tabel pengguna
Setiap pengguna harus memiliki tabel pengguna. Ketika perusahaan mengubah personel, personel bisnis (seperti sumber daya manusia) akan menambah dan menghapus tabel data.
Daftar Peran
Identitas apa yang dimiliki perusahaan, seperti presiden, wakil presiden, manajer departemen, dll., Dan ada personel bisnis yang mengoperasikan data di atas meja berdasarkan situasi spesifik perusahaan.
Daftar Sumber Daya
Simpan sumber daya yang memerlukan kontrol izin. Karena kami benar -benar menggunakan URL ketika kami menggunakan otorisasi kontrol, personel bisnis tidak mengatur entri data sesuai dengan URL, tetapi beroperasi dalam bentuk antarmuka tampilan. Jadi dalam tabel ini, menu dan tombol yang disajikan kepada personel bisnis dan URL yang dikendalikan oleh izin.
Tabel hubungan peran pengguna
Ada banyak hubungan antara tabel pengguna dan tabel peran (ID pengguna dan ID peran). Pengguna dapat berupa banyak peran (pengguna dapat menjadi manajer departemen dan administrator), sementara peran sering sesuai dengan banyak pengguna.
Tabel Hubungan Sumber Daya Peran
Tabel peran dan tabel sumber daya () juga merupakan hubungan banyak-ke-banyak. Peran dapat mengakses banyak sumber daya (tombol atau menu, dll.), Dan sumber daya juga dapat diakses oleh berbagai peran.
Keamanan Musim Semi juga mendukung ekspresi khusus untuk melakukan pekerjaan itu, seperti ini
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.