Keselamatan Spring dan Pengesahan JWT · Pelajaran

Kebenaran Berasaskan Peranan dengan Granted Authorities

Selepas mengesahkan pengguna daripada pangkalan data, pelajari cara memberikan kebenaran menggunakan peranan dan pihak berkuasa untuk melindungi titik akhir dan kaedah dalam Spring Security.

Pelajaran 4 daripada 413 langkah

Kebenaran Berasaskan Peranan dengan Granted Authorities ialah pelajaran Keselamatan Spring dan Pengesahan JWT percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Keselamatan Spring dan Pengesahan JWT, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Keselamatan Spring dan Pengesahan JWT merangkumi sejumlah 4 pelajaran.

Pengesahan berbanding Kebenaran

pengesahan (siapa anda). Soalan seterusnya ialah kebenaran (apa yang anda boleh lakukan), yang ditentukan oleh peranan dan pihak berkuasa.

Pihak Berkuasa dan Peranan

Spring mewakili keizinan sebagai objek GrantedAuthority. Peranan hanyalah pihak berkuasa dengan awalan ROLE_, contohnya ROLE_ADMIN.

Menetapkan Pihak Berkuasa kepada Pengguna

Apabila membina UserDetails anda, lampirkan pihak berkuasa yang dimiliki pengguna tersebut.

User.withUsername('alice')
    .password(encoded)
    .roles('ADMIN', 'USER')
    .build();

Melindungi URL mengikut Peranan

Dalam rantaian penapis, hadkan laluan dengan hasRole. Spring menambah awalan ROLE_ untuk anda di sini.

http.authorizeHttpRequests(a -> a
    .requestMatchers('/admin/**').hasRole('ADMIN')
    .anyRequest().authenticated());

Memerlukan Pihak Berkuasa Tertentu

Untuk kawalan yang lebih terperinci, gunakan hasAuthority, yang memadankan rentetan pihak berkuasa tepat tanpa menambah awalan.

http.authorizeHttpRequests(a -> a
    .requestMatchers('/reports/**').hasAuthority('REPORT_READ'));

Berbilang Peranan yang Dibenarkan

hasAnyRole membenarkan akses jika pengguna mempunyai sekurang-kurangnya satu daripada beberapa peranan.

http.authorizeHttpRequests(a -> a
    .requestMatchers('/staff/**').hasAnyRole('ADMIN', 'MANAGER'));

Keselamatan Peringkat Kaedah

Dayakan keselamatan berasaskan anotasi untuk melindungi kaedah perkhidmatan, bukan URL sahaja.

@EnableMethodSecurity
@Configuration
public class SecurityConfig { }

Menggunakan @PreAuthorize

@PreAuthorize menjalankan ungkapan SpEL sebelum kaedah dilaksanakan dan menyekat pemanggil yang tidak dibenarkan.

@PreAuthorize("hasRole('ADMIN')")
public void deleteUser(Long id) { }

Menyemak Pengguna Semasa

SpEL boleh merujuk prinsipal yang telah disahkan, contohnya untuk membenarkan pengguna mengedit data mereka sendiri sahaja.

@PreAuthorize("#username == authentication.name")
public void updateProfile(String username) { }

Memetakan Peranan DB kepada Pihak Berkuasa

Dalam UserDetailsService anda, tukarkan baris peranan daripada pangkalan data kepada objek SimpleGrantedAuthority supaya peraturan kebenaran terpakai.

var auths = roles.stream()
    .map(r -> new SimpleGrantedAuthority('ROLE_' + r))
    .toList();

Menggabungkan Semuanya

Gambaran penuh: sahkan daripada DB, petakan peranan kepada pihak berkuasa, lindungi URL dengan hasRole/hasAuthority dan lindungi kaedah dengan @PreAuthorize.

Semakan Pantas

Apakah perbezaan antara hasRole('ADMIN') dengan hasAuthority('ADMIN')?

Imbas Kembali

Kini anda boleh mengawal perkara yang boleh dilakukan oleh pengguna yang telah disahkan:

  • Peranan ialah pihak berkuasa dengan awalan ROLE_
  • hasRole/hasAnyRole berbanding hasAuthority yang tepat
  • @EnableMethodSecurity + @PreAuthorize untuk peraturan peringkat kaedah
  • Petakan peranan DB kepada SimpleGrantedAuthority dalam UserDetailsService anda
Percuma untuk bermula

Pelajari Java dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
12
Pelajaran
48

Soalan Lazim

Adakah pelajaran “Kebenaran Berasaskan Peranan dengan Granted Authorities” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Keselamatan Spring dan Pengesahan JWT, termasuk “Kebenaran Berasaskan Peranan dengan Granted Authorities”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Keselamatan Spring dan Pengesahan JWT merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Kebenaran Berasaskan Peranan dengan Granted Authorities”?

Selepas mengesahkan pengguna daripada pangkalan data, pelajari cara memberikan kebenaran menggunakan peranan dan pihak berkuasa untuk melindungi titik akhir dan kaedah dalam Spring Security. Anda berlatih Keselamatan Spring dan Pengesahan JWT menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Keselamatan Spring dan Pengesahan JWT?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Keselamatan Spring dan Pengesahan JWT di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.

Berapa lamakah pelajaran “Kebenaran Berasaskan Peranan dengan Granted Authorities” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Keselamatan Spring dan Pengesahan JWT ini?

Ya. Setiap pelajaran Keselamatan Spring dan Pengesahan JWT menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Pelaksanaan UserDetailsService Tersuai
  2. Memahami Pengekod Kata Laluan
  3. Integrasi Pengurusan Pengguna Pangkalan Data
  4. Kebenaran Berasaskan Peranan dengan Granted Authorities
← Kembali ke Keselamatan Spring dan Pengesahan JWT