Rumah >Java >javaTutorial >Mengapakah Keizinan Berasaskan Peranan Keselamatan Musim Bunga Saya Gagal?

Mengapakah Keizinan Berasaskan Peranan Keselamatan Musim Bunga Saya Gagal?

Barbara Streisand
Barbara Streisandasal
2024-12-09 02:28:09954semak imbas

Why Are My Spring Security Role-Based Authorizations Failing?

Membetulkan Keizinan Peranan dalam Keselamatan Musim Bunga

Keselamatan Musim Bunga menawarkan mekanisme kebenaran yang mantap, tetapi konfigurasi yang salah boleh membawa kepada kerentanan keselamatan. Artikel ini menangani isu biasa di mana pengguna yang mempunyai peranan terhad boleh mengakses sumber yang dikhaskan untuk pentadbir.

Coretan kod yang disediakan mengkonfigurasi Spring Security menggunakan kedua-dua pengesahan dalam memori dan pengesahan JDBC. Walaupun isu itu dikaitkan dengan nama pengguna pilih, kata laluan, 1 daripada pengguna where username=? pertanyaan, punca sebenar terletak di tempat lain.

Masalahnya berpunca daripada susunan pemadan dalam kaedah authorizeRequests(). Spring Security menilai pemadan mengikut urutan, dan padanan pertama menentukan keputusan kebenaran. Dalam kes ini, pemadanan berikut:

.anyRequest().authenticated()

diletakkan sebelum pemadanan berasaskan peranan:

.antMatchers("/users/all").hasRole("admin")

Akibatnya, semua permintaan dibenarkan selagi pengguna disahkan , tanpa mengira peranan mereka. Untuk menyelesaikan masalah ini, susun semula pemadan supaya pemadan berasaskan peranan diutamakan:

protected void configure(HttpSecurity http) throws Exception {
    http
        .csrf().disable()
        .httpBasic()
        .and()
        .authorizeRequests()
            .antMatchers("/users/all").hasRole("admin")
            .anyRequest().authenticated()
            .and()
        .formLogin()
        .and()
        .exceptionHandling().accessDeniedPage("/403");
}

Dengan konfigurasi yang disemak ini, pengguna yang hanya mempunyai peranan "pengguna" akan dinafikan akses kepada "/users/all" manakala pengguna dengan peranan "pentadbir" akan mempunyai akses.

Adalah penting untuk mengingati susunan pemadan apabila mengkonfigurasi kebenaran Spring Security untuk memastikan bahawa yang dimaksudkan dasar keselamatan dikuatkuasakan.

Atas ialah kandungan terperinci Mengapakah Keizinan Berasaskan Peranan Keselamatan Musim Bunga Saya Gagal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn