Twitter Youtube Github
Burak Kutbay'ın Kişisel Blog'u |

Type and hit Enter to search

  • Quarkus Dersleri
  • Spring Dersleri
    • Spring Cloud
    • Spring Boot
    • Spring Uygulama Örnekleri
    • Spring Core
    • Spring JDBC Template
    • Spring MVC
  • İleri Java Dersleri
    • Java Server Faces
    • Java Server Pages
    • PrimeFaces
    • Servlet
    • JDBC
    • JSTL
    • Java 8
  • Hibernate Dersleri
  • / Diğer
    • Ünlü Bilişimciler
    • C Sharp
    • Kütüphane
    • Makale
  • Hakkımda
Spring Security

Spring Security Dersleri Veritabanı Yetkilendirme User Detail Kullanımı 

Paylaş

Spring Security Dersleri’ne devam ediyoruz.

Bu yazıda Veritabanımızdaki kullanıcılar ve bu kullanıcıların yetkilerini Spring Security’e UserDetail ve UserDetailService kullanarak Spring Security’e devrederek nasıl kullanırız buna bakacağız.

User ve Role entitylerini oluştralım ve User ve Role arasında bir ilişki olmasını sağlayacağız. Bu ilişkiyi kullanarak Spring Security’nin UserDetail interface’sini doldurağız ve tüm yetkinin Spring Security’e vermiş olacağız.

@Data @Builder @NoArgsConstructor @AllArgsConstructor @Entity @Table(name="user_table") public class User { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "user_id") private long id; private String name; private String password; @ManyToMany(cascade = CascadeType.ALL,fetch = FetchType.EAGER) @JoinTable(name = "user_role", joinColumns = {@JoinColumn(name = "user_id",referencedColumnName = "user_id")}, inverseJoinColumns = {@JoinColumn(name = "role_id",referencedColumnName = "role_id")} ) private List<Role> roles; }
Code language: CSS (css)

User entitymizi oluşturduk ve Role entity’i ile bir ilişki kuruyoruz.

@Data @Builder @NoArgsConstructor @AllArgsConstructor @Entity @Table(name="role_table") public class Role { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name="role_id") private Long id; private String role_name; }
Code language: PHP (php)

Entitylerimizi oluşturduk. Şimdi ise Spring Security configimizi düzenleyeceğiz. Bu config ile birlikte Spring Security UserDetailService’ı kullanarak veritabanından kullanıcı ve rol bilgilerini çekmemiz gerektiğini söylüyoruz.

@Service public class CustomUserDetailsService implements UserDetailsService { @Autowired UserRepository userRepository; @Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { User user = userRepository.findByName(username); return new CustomUserDetail(user); } }
Code language: PHP (php)

Veritabanından kullanıcı bilgilerini aldıktan sonra Spring Security’e vermek için UserDetail interfacesini doldurmamız gerekmekte.

public class CustomUserDetail implements UserDetails { private String name; private String password; private List<GrantedAuthority> roles; public CustomUserDetail(User user){ this.name=user.getName(); this.password=user.getPassword(); this.roles=user.getRoles().stream().map((role -> new SimpleGrantedAuthority(role.getRole_name()))).collect(Collectors.toList()); } @Override public Collection<? extends GrantedAuthority> getAuthorities() { return roles; } @Override public String getPassword() { return password; } @Override public String getUsername() { return name; } @Override public boolean isAccountNonExpired() { return true; } @Override public boolean isAccountNonLocked() { return true; } @Override public boolean isCredentialsNonExpired() { return true; } @Override public boolean isEnabled() { return true; } }
Code language: PHP (php)

Spring Security’nin yaşam döngüsü boyunca uygulamamızı güvende tutmak için gereken bilgileri veritabanından alarak gerekli alanlara eşitleyerek vermiş oluyoruz.

Tags:

spring security derslerispring security örnek

Paylaş

Diğer Yazılar

blank
Previous

Java Record Nedir ve Kullanımı

Spring Cloud Stream Dersleri
Next

Spring Cloud Stream Nedir? Ders #1

Next
Spring Cloud Stream Dersleri
22 Mayıs 2022

Spring Cloud Stream Nedir? Ders #1

Previews
24 Nisan 2022

Java Record Nedir ve Kullanımı

blank

No Comment! Be the first one.

Bir cevap yazın Cevabı iptal et

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İlgini Çekebilir

Spring Security Dersleri

Spring Security In-Memory Authentication ve Authorization

Burak Kutbay'ın Kişisel Blog'u |

© 2008 - ∞, Her hakkı saklıdır.

Link

  • Hakkımda
  • İletişim
  • Arşiv

Kategori

Struts
Röportaj
Android
Vue.js
Node.js
Redis
Spring Cloud Stream
Spring Data
Debezium
Mikroservis Mimarisi
XCode
Spring Native
Video
PostgreSQL
Spring Security
JPA
iPhone Uygulama Geliştirme
Objective C
Design Patterns
DevOps
Git
Apache Kafka
Maven
Yaptığım Projeler
Servlet
Spring Cloud
Linux
Spring
PrimeFaces
Spring Jdbc Template
JDBC
RabbitMQ
Manset
Google
Spring MVC
OCA Java SE 8
Quarkus
Spring Core
Microsoft
Veritabanı
Tanıyalım
Java SE
Hibernate
Teknoloji
Okuduğum Kitaplar
Java Server Faces
Yazılım Mühendisliği
C Sharp
Spring Boot
Java
Günlüğüm
Java Server Page
Makale

Takip Et

Twitter Youtube Github