Java Spring Security, YAML'daki tanımlı kullanıcıyı kabul etmiyor

706111

Hectopat
Katılım
28 Ağustos 2023
Mesajlar
6.020
Makaleler
1
Çözümler
29
Arkadaşlar merhaba.

Spring Security için gerekli bağımlımlıkları yükledim.
XML:
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency

Application YAML dosyamı da hazırladım;
YAML:
spring:
  security:
   user:
    name: nedim
    password: 1234
  logging:
   level:
    org.springframework.security: DEBUG
  datasource:
    platform: postgresql
    url: jdbc:postgresql://localhost:5432/test
    username: postgres
    password: 1234
    driverClassName: org.postgresql.Driver

  jpa:
    database: POSTGRESQL
    hibernate:
      ddl-auto: update
    generate-ddl: true
    show-sql: true

  http:
    encoding:
      force: true
      charset: UTF-8
      enabled: true

Şimdi mesela bir API'ye (localhost:8080/index) istek atıyoruz tarayıcı üzerinden ve bir giriş ekranı geliyor. YAML'da belirlediğim kullanıcı bilgilerini giriyorum ama kabul etmiyor ve bu hatayı veriyor;

Bash:
org.springframework.security.authentication.InternalAuthenticationServiceException: null
    at org.springframework.security.authentication.dao.DaoAuthenticationProvider.retrieveUser(DaoAuthenticationProvider.java:122) ~[spring-security-core-6.4.1.jar:6.4.1]
    at org.springframework.security.authentication.dao.AbstractUserDetailsAuthenticationProvider.authenticate(AbstractUserDetailsAuthenticationProvider.java:133) ~[spring-security-core-6.4.1.jar:6.4.1]
    at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:182) ~[spring-security-core-6.4.1.jar:6.4.1]
    at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:201) ~[spring-security-core-6.4.1.jar:6.4.1]
    at org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter.attemptAuthentication(UsernamePasswordAuthenticationFilter.java:85) ~[spring-security-web-6.4.1.jar:6.4.1]
    at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:231) ~[spring-security-web-6.4.1.jar:6.4.1]
    at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:221) ~[spring-security-web-6.4.1.jar:6.4.1]
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.4.1.jar:6.4.1]
    at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107) ~[spring-security-web-6.4.1.jar:6.4.1]
    at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93) ~[spring-security-web-6.4.1.jar:6.4.1]
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.4.1.jar:6.4.1]
    at org.springframework.security.web.csrf.CsrfFilter.doFilterInternal(CsrfFilter.java:131) ~[spring-security-web-6.4.1.jar:6.4.1]
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.2.0.jar:6.2.0]
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.4.1.jar:6.4.1]
    at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-6.4.1.jar:6.4.1]
    at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-6.4.1.jar:6.4.1]
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.2.0.jar:6.2.0]
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.4.1.jar:6.4.1]

SecuirtyFilterChain adında bir @Bean oluşturup, orada gelen isteklerin konfigürasyonu yapılması gerekiyor ama normalde de varsayılan olarak çalışması lazım değil mi?

Not: UserDetailsService devreye girdiği için veri tabanından eşleştirme yapıyor, ondan çalışmadığını düşünüyorum.
 
Son düzenleyen: Moderatör:

Technopat Haberler

Geri
Yukarı