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

Type and hit Enter to search

  • Etkinliklerim
  • Quarkus
  • Spring Cloud
  • Spring Boot
  • Spring JDBC Template
  • Spring MVC
  • RabbitMQ
  • Hibernate
  • JSP
  • Java 21
  • Java 8
  • Java Server Faces
  • PrimeFaces
  • Servlet
  • JDBC
  • JSTL
  • / Diğer
    • Ünlü Bilişimciler
    • C Sharp
    • Kütüphane
    • Makale
Spring Boot

Spring Boot Dersleri – LDAP Yetkilendirmesi Kullanmak

Paylaş

Spring Boot Dersleri‘ne devam ediyoruz.

Merkezi yetkilendirme işlemlerinde kullanılan LDAP Yetkilendirmesini Spring Boot projemize ekleme işlemlerinin nasıl olduğuna bakacağız.

Ldap yetkilendirmesinin nasıl yapıldığı ile alakalı bir uygulama yapacağız.

<dependency>
   <groupId>org.springframework.ldap</groupId>
   <artifactId>spring-ldap-core</artifactId>
</dependency>
<dependency>
   <groupId>org.springframework.security</groupId>
   <artifactId>spring-security-ldap</artifactId>
</dependency>
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>Code language: HTML, XML (xml)

Yukarıdaki bağımlılıklarda Ldap konfigürasyonu için spring-ldap-core bağımlılığı yeterli olacaktır.

Ldap konfigürasyonumuz için application.properties dosyamıza gerekli olan Ldap bilgilerimizi girelim.

ldap.enabled = true
ldap.urls= ldap_url
ldap.base.dn= dc=example,dc=com
ldap.username= ldap_kullanıcı cn=tip_bilgisi ,dc= ,dc= 
ldap.password= ldap_sifre
ldap.user.dn.pattern = uid={0}Code language: JavaScript (javascript)

Önceki yazılarımızda Spring Security ile yetkilendirme işlemlerini kullanarak ldap bağlantısını kullanarak giriş ve rol yetkisini verelim.

@Configuration
public class SecurityConfig  extends WebSecurityConfigurerAdapter   {
 
 @Value("${ldap.urls}")
 private String ldapUrl;
 
 @Value("${ldap.base.dn}")
 private String ldapBaseDn;
 
 @Value("${ldap.username}")
 private String ldapUsername;
 
 @Value("${ldap.password}")
 private String ldapPassword;
 
 @Value("${ldap.user.dn.pattern}")
 private String ldapPattern;
 
 @Value("${ldap.enabled}")
 private String ldapEnabled;
 
 @Override
 protected void configure(HttpSecurity http) throws Exception {
        http
        	.authorizeRequests()
        	.antMatchers("/login**").permitAll()
        	.antMatchers("/profile/**").fullyAuthenticated()
            	.antMatchers("/").permitAll()
            	.and()
            .formLogin()
            	.loginPage("/login")
            	.failureUrl("/login?error")
            	.permitAll()
            	.and()
            .logout()
            	.invalidateHttpSession(true)
            	.deleteCookies("JSESSIONID")
            	.permitAll();
 }
 
 
 @Override
 protected void configure(AuthenticationManagerBuilder auth) throws Exception {
 
 if(Boolean.parseBoolean(ldapEnabled)) {
 auth
 .ldapAuthentication()
 .contextSource()
 .url(ldapUrl + ldapBaseDn)
 .managerDn(ldapUsername)
 .managerPassword(ldapPassword)
 .and()
 .userDnPatterns(ldapPattern);
 } else {
         auth
         .inMemoryAuthentication()
             .withUser("user").password("password").roles("USER");
 }
 }
 
}Code language: PHP (php)

Ldap bilgileri ile yetkilendirme işlemlerini yaptık şimdi ise Controller’imizi ve ardından kullanıcı giriş sayfasını yapalım.

@Controller
@RequestMapping("/")
public class HomeController {
	
	@RequestMapping(method = RequestMethod.GET)
	public ModelAndView home() {
		return new ModelAndView("index");
	}
	
	@RequestMapping(value = "dashboard", method = RequestMethod.GET)
	public ModelAndView Interfaces() {
		return new ModelAndView("dashboard");
	}
}Code language: PHP (php)

Login controllerimizi oluşturalım.

@Controller
@RequestMapping("/")
public class LoginController {

	@RequestMapping(value = "login", method = RequestMethod.GET)
	public ModelAndView Login() {
		return new ModelAndView("login");
	}
}Code language: PHP (php)

Ve son olarak login ve dashborad sayfalarımızı yapalım.

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>

    <title>LDAP Demo</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    
	
</head>
<body>
	
    <div class="container">
	  
	 <form name="loginForm" th:action="@{/login}" action="/login" method="POST">	
        <label for="username">Email</label>
        <input type="text" name="username" id="username" />
        <label for="password">Password</label>
        <input type="password" name="password" id="password" placeholder="Password"/>
        
        <button type="submit">Giriş yap</button>
      </form>
    </div>       
</body>
</html>Code language: HTML, XML (xml)

Ve kullanıcı giriş yaptığıda başarılı olduğuna dair bir mesaj gelecek. Ldap ile doğrulama

Önceki Ders: Security Basic Authentication Kullanım Örneği
Spring Boot Dersleri
Sonraki Ders: Hazelcast Kullanımı Uygulama Örneği 

Tags:

spring boot applicationspring boot derslerispring boot uygulamaspring derslerispring uygulama örneği

Paylaş

Diğer Yazılar

Spring Dersleri
Previous

Spring Boot Uygulamalarında Security Basic Authentication Kullanım Örneği

231ruqd3
Next

NPM Install Error: Unexpected end of JSON input while parsing near Hatası Çözümü

Next
231ruqd3
31 Aralık 2019

NPM Install Error: Unexpected end of JSON input while parsing near Hatası Çözümü

Previews
06 Kasım 2019

Spring Boot Uygulamalarında Security Basic Authentication Kullanım Örneği

Spring Dersleri

No Comment! Be the first one.

Bir yanıt yazın Cevabı iptal et

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

İlgini Çekebilir

Spring Boot Dersleri @ConditionalOnExpression Uygulama Ornegi

Spring Boot @ConditionalOnExpression Nedir? Uygulama Örneği

Spring Boot Dersleri Content Negotiation Uygulama Örneği

Spring Boot Content Negotiation XML – JSON Uygulama Örneği

Spring Boot Interceptor Nedir Kullanım Uygulama Örneği

Spring Boot Interceptor Nedir? Uygulama Örneği

Spring Data Redis Cache Kullanım Örneği

Spring Boot Data Redis Nedir? Distributed Cache Kullanımı

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

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

Link

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

Kategori

Cloud
Amazon Web Services
Vue.js
Gradle
Node.js
Struts
Spring Boot 3.0
Röportaj
Android
Spring Cloud Stream
Java 21
Redis
Debezium
XCode
Mikroservis Mimarisi
Spring Native
Video
Etkinlikler
PostgreSQL
JPA
iPhone Uygulama Geliştirme
Objective C
Spring Security
MongoDB
Spring Data
Apache Kafka
Git
Servlet
Yaptığım Projeler
Maven
Design Patterns
DevOps
Linux
Spring Jdbc Template
RabbitMQ
PrimeFaces
JDBC
Manset
Google
Spring
Spring MVC
Spring Cloud
OCA Java SE 8
Spring Core
Quarkus
Microsoft
Veritabanı
Java SE
Tanıyalım
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
  • Etkinliklerim
  • Quarkus
  • Spring Cloud
  • Spring Boot
  • Spring JDBC Template
  • Spring MVC
  • RabbitMQ
  • Hibernate
  • JSP
  • Java 21
  • Java 8
  • Java Server Faces
  • PrimeFaces
  • Servlet
  • JDBC
  • JSTL
  • / Diğer
    • Ünlü Bilişimciler
    • C Sharp
    • Kütüphane
    • Makale