26 lines
1002 B
Kotlin
26 lines
1002 B
Kotlin
package com.kassaev.notes.service
|
|
|
|
import com.kassaev.notes.repository.UserRepository
|
|
import org.springframework.security.core.userdetails.User
|
|
import org.springframework.security.core.userdetails.UserDetails
|
|
import org.springframework.security.core.userdetails.UserDetailsService
|
|
import org.springframework.security.core.userdetails.UsernameNotFoundException
|
|
import org.springframework.stereotype.Service
|
|
|
|
typealias ApplicationUser = com.kassaev.notes.model.User
|
|
@Service
|
|
class CustomUserDetailsService(
|
|
private val userRepository: UserRepository
|
|
): UserDetailsService {
|
|
override fun loadUserByUsername(username: String): UserDetails =
|
|
userRepository.findByEmail(username)
|
|
?.mapToUserDetails()
|
|
?: throw UsernameNotFoundException("Not found!")
|
|
|
|
private fun ApplicationUser.mapToUserDetails(): UserDetails =
|
|
User.builder()
|
|
.username(this.email)
|
|
.password(this.password)
|
|
.roles(this.role.name)
|
|
.build()
|
|
} |