-
Notifications
You must be signed in to change notification settings - Fork 12
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
12 changed files
with
96 additions
and
56 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,43 +1,14 @@ | ||
package com.example.account | ||
|
||
import org.springframework.data.annotation.Id | ||
import org.springframework.security.core.authority.SimpleGrantedAuthority | ||
import org.springframework.security.core.userdetails.UserDetails | ||
import java.io.Serializable | ||
|
||
data class Account( | ||
|
||
val name: String, | ||
val username: String, | ||
|
||
val passwd: String, | ||
val password: String, | ||
|
||
@Id | ||
val id: Long? = null | ||
|
||
) : Serializable, UserDetails { | ||
|
||
override fun getUsername() = name | ||
|
||
override fun isCredentialsNonExpired() = true | ||
|
||
override fun isAccountNonExpired() = true | ||
|
||
override fun isAccountNonLocked() = true | ||
|
||
private fun authorities(account: Account) = | ||
|
||
mutableListOf(SimpleGrantedAuthority("ROLE_USER")).apply { | ||
|
||
if (account.name == "wonwoo") { | ||
|
||
this.add(SimpleGrantedAuthority("ROLE_ADMIN")) | ||
|
||
} | ||
} | ||
|
||
override fun getAuthorities() = authorities(this) | ||
|
||
override fun isEnabled(): Boolean = true | ||
|
||
override fun getPassword(): String = passwd | ||
} | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
36 changes: 35 additions & 1 deletion
36
web/src/main/kotlin/com/example/config/service/UserDetailsServiceImpl.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,13 +1,47 @@ | ||
package com.example.config.service | ||
|
||
import com.example.account.Account | ||
import com.example.account.AccountRepository | ||
import com.example.account.UserNotFoundException | ||
import org.springframework.security.core.authority.SimpleGrantedAuthority | ||
import org.springframework.security.core.userdetails.UserDetails | ||
import org.springframework.security.core.userdetails.UserDetailsService | ||
import org.springframework.stereotype.Service | ||
|
||
@Service | ||
class UserDetailsServiceImpl(private val accountRepository: AccountRepository) : UserDetailsService { | ||
|
||
override fun loadUserByUsername(username: String) = accountRepository.findByname(username) | ||
?: throw UserNotFoundException("not found user name : $username") | ||
?.let { | ||
CustomUserDetails(it) | ||
} ?: throw UserNotFoundException("not found user name : $username") | ||
|
||
|
||
class CustomUserDetails(val account: Account) : UserDetails { | ||
|
||
override fun getPassword(): String = account.password | ||
|
||
private fun authorities() = | ||
|
||
mutableListOf(SimpleGrantedAuthority("ROLE_USER")).apply { | ||
|
||
if (account.username == "wonwoo") { | ||
|
||
this.add(SimpleGrantedAuthority("ROLE_ADMIN")) | ||
|
||
} | ||
} | ||
|
||
override fun getAuthorities() = authorities() | ||
|
||
override fun getUsername(): String = account.username | ||
|
||
override fun isAccountNonExpired(): Boolean = true | ||
|
||
override fun isAccountNonLocked(): Boolean = true | ||
|
||
override fun isCredentialsNonExpired(): Boolean = true | ||
|
||
override fun isEnabled(): Boolean = true | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters