0Pricing
Spring Security 6 & JWT Authentication · Pelajaran

Otorisasi Berbasis Peran dengan Granted Authorities

Setelah mengautentikasi pengguna dari basis data, pelajari cara memberikan otorisasi menggunakan peran dan wewenang untuk mengamankan titik akhir dan metode di Spring Security.

Otorisasi Berbasis Peran dengan Granted Authorities adalah pelajaran Spring Security 6 & JWT Authentication gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Spring Security 6 & JWT Authentication, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Spring Security 6 & JWT Authentication mencakup 4 pelajaran total.

Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.

Authentication vs Authorization

You can now load users from a database and verify passwords. That is authentication (who you are). The next question is authorization (what you may do), driven by roles and authorities.

Authorities and Roles

Spring represents permissions as GrantedAuthority objects. A role is just an authority with a ROLE_ prefix, e.g. ROLE_ADMIN.

Assigning Authorities to a User

When building your UserDetails, attach the authorities the user holds.

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

Securing URLs by Role

In the filter chain, restrict paths with hasRole. Spring adds the ROLE_ prefix for you here.

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

Requiring Specific Authorities

For finer control use hasAuthority, which matches the authority string exactly with no prefix added.

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

Multiple Allowed Roles

hasAnyRole permits access if the user has at least one of several roles.

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

Method-Level Security

Enable annotation-based security to protect service methods, not just URLs.

@EnableMethodSecurity
@Configuration
public class SecurityConfig { }

Using @PreAuthorize

@PreAuthorize runs a SpEL expression before the method executes, blocking unauthorized callers.

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

Checking the Current User

SpEL can reference the authenticated principal, e.g. to allow users to edit only their own data.

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

Mapping DB Roles to Authorities

In your UserDetailsService, convert role rows from the database into SimpleGrantedAuthority objects so authorization rules apply.

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

Putting It Together

The full picture: authenticate from the DB, map roles to authorities, secure URLs with hasRole/hasAuthority, and protect methods with @PreAuthorize.

Quick Check

What is the difference between hasRole('ADMIN') and hasAuthority('ADMIN')?

Recap

You can now control what authenticated users may do:

  • Roles are authorities with a ROLE_ prefix
  • hasRole/hasAnyRole vs exact hasAuthority
  • @EnableMethodSecurity + @PreAuthorize for method-level rules
  • Map DB roles to SimpleGrantedAuthority in your UserDetailsService

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Otorisasi Berbasis Peran dengan Granted Authorities” gratis?

Ya — teks lengkap “Otorisasi Berbasis Peran dengan Granted Authorities” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Spring Security 6 & JWT Authentication, upgrade ke CoddyKit PRO. Kursus Spring Security 6 & JWT Authentication mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Otorisasi Berbasis Peran dengan Granted Authorities”?

Setelah mengautentikasi pengguna dari basis data, pelajari cara memberikan otorisasi menggunakan peran dan wewenang untuk mengamankan titik akhir dan metode di Spring Security. Kamu berlatih Spring Security 6 & JWT Authentication dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Spring Security 6 & JWT Authentication?

Tidak diperlukan pengalaman sebelumnya. Spring Security 6 & JWT Authentication di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Otorisasi Berbasis Peran dengan Granted Authorities” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Spring Security 6 & JWT Authentication ini?

Ya. Setiap pelajaran Spring Security 6 & JWT Authentication menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Implementasi UserDetailsService Kustom
  2. Memahami Pengode Kata Sandi
  3. Integrasi Pengelolaan Pengguna Basis Data
  4. Otorisasi Berbasis Peran dengan Granted Authorities
← Kembali ke Spring Security 6 & JWT Authentication