feat : PasswordEncoder Bean 및 로그인 로직 추가
This commit is contained in:
@@ -5,6 +5,7 @@ import com.banjjoknim.playground.jwt.config.filter.CustomFilter3
|
|||||||
import com.banjjoknim.playground.jwt.config.filter.JwtAuthenticationFilter
|
import com.banjjoknim.playground.jwt.config.filter.JwtAuthenticationFilter
|
||||||
import com.banjjoknim.playground.jwt.domain.user.JwtUser
|
import com.banjjoknim.playground.jwt.domain.user.JwtUser
|
||||||
import com.banjjoknim.playground.jwt.domain.user.JwtUserRepository
|
import com.banjjoknim.playground.jwt.domain.user.JwtUserRepository
|
||||||
|
import org.springframework.context.annotation.Bean
|
||||||
import org.springframework.security.config.annotation.web.builders.HttpSecurity
|
import org.springframework.security.config.annotation.web.builders.HttpSecurity
|
||||||
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity
|
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity
|
||||||
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter
|
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter
|
||||||
@@ -13,6 +14,8 @@ import org.springframework.security.core.GrantedAuthority
|
|||||||
import org.springframework.security.core.userdetails.UserDetails
|
import org.springframework.security.core.userdetails.UserDetails
|
||||||
import org.springframework.security.core.userdetails.UserDetailsService
|
import org.springframework.security.core.userdetails.UserDetailsService
|
||||||
import org.springframework.security.core.userdetails.UsernameNotFoundException
|
import org.springframework.security.core.userdetails.UsernameNotFoundException
|
||||||
|
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder
|
||||||
|
import org.springframework.security.crypto.password.PasswordEncoder
|
||||||
import org.springframework.security.web.context.SecurityContextPersistenceFilter
|
import org.springframework.security.web.context.SecurityContextPersistenceFilter
|
||||||
import org.springframework.stereotype.Service
|
import org.springframework.stereotype.Service
|
||||||
import org.springframework.web.filter.CorsFilter
|
import org.springframework.web.filter.CorsFilter
|
||||||
@@ -33,8 +36,13 @@ import org.springframework.web.filter.CorsFilter
|
|||||||
class JwtSecurityConfiguration(
|
class JwtSecurityConfiguration(
|
||||||
private val corsFilter: CorsFilter // CorsConfiguration 에서 Bean 으로 등록해준 CorsFilter 를 Spring 으로부터 DI 받는다.
|
private val corsFilter: CorsFilter // CorsConfiguration 에서 Bean 으로 등록해준 CorsFilter 를 Spring 으로부터 DI 받는다.
|
||||||
) : WebSecurityConfigurerAdapter() {
|
) : WebSecurityConfigurerAdapter() {
|
||||||
override fun configure(http: HttpSecurity) {
|
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
fun passwordEncoder(): PasswordEncoder {
|
||||||
|
return BCryptPasswordEncoder()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun configure(http: HttpSecurity) {
|
||||||
// Spring Filter Chain 에 존재하는 BasicAuthenticationFilter의 동작 이전에 MySecurityFilter1 을 추가한다. 하지만 반드시 SecurityFilter 에 Filter 를 추가할 필요는 없다.
|
// Spring Filter Chain 에 존재하는 BasicAuthenticationFilter의 동작 이전에 MySecurityFilter1 을 추가한다. 하지만 반드시 SecurityFilter 에 Filter 를 추가할 필요는 없다.
|
||||||
// http.addFilterBefore(MySecurityFilter1(), BasicAuthenticationFilter::class.java)
|
// http.addFilterBefore(MySecurityFilter1(), BasicAuthenticationFilter::class.java)
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,21 @@
|
|||||||
|
package com.banjjoknim.playground.jwt.domain.user
|
||||||
|
|
||||||
|
import org.springframework.security.crypto.password.PasswordEncoder
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody
|
||||||
|
import org.springframework.web.bind.annotation.RestController
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
class JwtUserController(
|
||||||
|
private val jwtUserRepository: JwtUserRepository,
|
||||||
|
private val passwordEncoder: PasswordEncoder
|
||||||
|
) {
|
||||||
|
|
||||||
|
@PostMapping("/join")
|
||||||
|
fun join(@RequestBody jwtUser: JwtUser): String {
|
||||||
|
jwtUser.password = passwordEncoder.encode(jwtUser.password)
|
||||||
|
jwtUser.roles = "ROLE_USER"
|
||||||
|
jwtUserRepository.save(jwtUser)
|
||||||
|
return "회원가입완료"
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user