Kawalan kebenaran berasaskan peranan bukanlah idea yang baik untuk mendapatkan butiran, anda boleh membaca artikel ini: https://stormpath.com/blog/ne...
Projek saya juga menggunakan shiro, yang bukan berdasarkan peranan, tetapi berdasarkan kebenaran. Ringkasnya ia adalah seperti ini:
Setiap URL, menu dan butang ialah sumber dan sumber ini mempunyai kebenaran yang sepadan
Watak itu mempunyai kebenaran (beberapa)
Cara untuk menilai sama ada watak ini boleh mendapatkan sumber adalah sangat mudah. Cuma semak sama ada watak ini mempunyai kebenaran sumber yang sepadan
Setiap permintaan bahagian belakang perlu disahkan Contohnya, permintaan ajax untuk mendapatkan senarai maklumat pengguna akan mengesahkan sama ada permintaan semasa mempunyai kebenaran untuk mendapatkannya, mendapatkan kuki yang diminta dan membuat sambungan dengan sesi pada. Penghakiman, jika anda mempunyai kebenaran, berikan dia data, jika tidak, kembalikan 403 atau sebagainya.
secara amnya akan mengurus 资源URL secara bersatu, memberikan kebenaran penyelenggaraan platform pengurusan dan menggunakan interceptor/filter untuk mengesahkan sama ada pengguna mempunyai kebenaran yang sepadan.
Mengapa anda ingin mendapatkan peranan daripada pangkalan data? Kerana kebenaran akan berubah? Dalam kes ini, anda mesti mengekalkan sumber, atau mustahil untuk melaksanakan kebenaran dinamik.
Keizinan
agak mudah, sama seperti peranan dalam Tomcat Manager, jadi tiada masalah untuk menggunakan pengekodan keras secara langsung.
Perkara yang paling penting ialah bagaimana rupa keperluannya.
Pertama, halang antara muka daripada dipanggil oleh orang lain Ini boleh dihadkan menggunakan mekanisme token Jika tiada token atau token tidak betul, 403 akan dikembalikan.
Selebihnya ialah isu kebenaran Anda boleh menggunakan shiro, keselamatan musim bunga, dll. Anda boleh menggunakan sesi untuk membezakan pengguna dengan kebenaran yang berbeza.
Pelayan menjana token dan mengembalikannya kepada klien. Pelanggan membawa token ini dengan setiap permintaan, dan bahagian belakang menggunakan penapis untuk memprosesnya secara seragam
Sekiranya masalah 3 dapat diselesaikan, maka masalah 2 tidak bermakna
Saya ingat shiro boleh mengawal kebenaran pada tahap kod.
Kebenaran mempunyai berbilang butiran, seperti kebenaran tindakan, kebenaran data dan kebenaran dalam keadaan status yang berbeza Ia tidak boleh dikawal hanya pada tahap tertentu dan ACL hanya boleh mencapai kawalan separa, dan ia masih perlu digabungkan dengan keadaan mereka sendiri, aplikasi yang fleksibel, tidak ada peluru ajaib yang boleh menyembuhkan semua penyakit.
Anda boleh mempertimbangkan untuk menggunakan Spring Security atau Shiro untuk pengurusan kebenaran Untuk operasi tertentu, anda boleh menyemak maklumat dalam talian
Kawalan kebenaran berasaskan peranan bukanlah idea yang baik untuk mendapatkan butiran, anda boleh membaca artikel ini: https://stormpath.com/blog/ne...
Projek saya juga menggunakan shiro, yang bukan berdasarkan peranan, tetapi berdasarkan kebenaran. Ringkasnya ia adalah seperti ini:
Setiap URL, menu dan butang ialah sumber dan sumber ini mempunyai kebenaran yang sepadan
Watak itu mempunyai kebenaran (beberapa)
Cara untuk menilai sama ada watak ini boleh mendapatkan sumber adalah sangat mudah. Cuma semak sama ada watak ini mempunyai kebenaran sumber yang sepadan
Hanya kebenaran dikod keras di sini
Setiap permintaan bahagian belakang perlu disahkan Contohnya, permintaan ajax untuk mendapatkan senarai maklumat pengguna akan mengesahkan sama ada permintaan semasa mempunyai kebenaran untuk mendapatkannya, mendapatkan kuki yang diminta dan membuat sambungan dengan sesi pada. Penghakiman, jika anda mempunyai kebenaran, berikan dia data, jika tidak, kembalikan 403 atau sebagainya.
secara amnya akan mengurus
资源URL
secara bersatu, memberikan kebenaran penyelenggaraan platform pengurusan dan menggunakaninterceptor/filter
untuk mengesahkan sama ada pengguna mempunyai kebenaran yang sepadan.Mengapa anda ingin mendapatkan peranan daripada pangkalan data? Kerana kebenaran akan berubah? Dalam kes ini, anda mesti mengekalkan sumber, atau mustahil untuk melaksanakan kebenaran dinamik.
agak mudah, sama seperti peranan dalam
Tomcat Manager
, jadi tiada masalah untuk menggunakan pengekodan keras secara langsung.Perkara yang paling penting ialah bagaimana rupa keperluannya.
Saya rasa anda ada dua soalan.
Pertama, halang antara muka daripada dipanggil oleh orang lain Ini boleh dihadkan menggunakan mekanisme
token
Jika tiada token atau token tidak betul, 403 akan dikembalikan.Selebihnya ialah isu kebenaran Anda boleh menggunakan shiro, keselamatan musim bunga, dll. Anda boleh menggunakan sesi untuk membezakan pengguna dengan kebenaran yang berbeza.
Pelayan menjana token dan mengembalikannya kepada klien. Pelanggan membawa token ini dengan setiap permintaan, dan bahagian belakang menggunakan penapis untuk memprosesnya secara seragam
Kebenaran mempunyai berbilang butiran, seperti kebenaran tindakan, kebenaran data dan kebenaran dalam keadaan status yang berbeza Ia tidak boleh dikawal hanya pada tahap tertentu dan ACL hanya boleh mencapai kawalan separa, dan ia masih perlu digabungkan dengan keadaan mereka sendiri, aplikasi yang fleksibel, tidak ada peluru ajaib yang boleh menyembuhkan semua penyakit.
Anda boleh mempertimbangkan untuk menggunakan Spring Security atau Shiro untuk pengurusan kebenaran Untuk operasi tertentu, anda boleh menyemak maklumat dalam talian