주뇽's 저장소
[Spring Framework] 로그인과 로그아웃과 같은 인증을 쉽게 구현하게 도와주는 Spring Security 본문
웹개발/SpringBoot
[Spring Framework] 로그인과 로그아웃과 같은 인증을 쉽게 구현하게 도와주는 Spring Security
뎁쭌 2023. 12. 5. 17:49728x90
반응형
Spring Security
로그인과 로그아웃에 관련된 기능을 쉽게 구현할 수 있음
로그인 구현
Spring Security 의존성 추가
implementation 'org.springframework.boot:spring-boot-starter-security'
의존성을 추가하는것만으로 따로 로그인 페이지나 기능을 구현하지 않아도 자동으로 로그인 페이지로 넘어가진다.
개발자 전용
id : user
pw : 디버깅 창에서 나오는 패스워드
디버깅 창에서 나오는 패스워드는 항상 바뀌기 때문에 이를 고정된 값으로 매핑해줄 수 있다.
## 추가 application.properties에서 간단하게 아디이와 패스워드 설정하는 법(간단함)
spring.security.user.name = username
spring.security.user.password = password
인증과 관련된 설정들을 저장할 클래스를 만들고 자신이 원하는 고정된 값을 넣어주자.
package com.spring_jyp_todo.springbootTodoProject.security;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.provisioning.InMemoryUserDetailsManager;
import java.util.function.Function;
@Configuration
public class SpringSecurityConfiguration {
@Bean
public InMemoryUserDetailsManager createUserdetailManage(){
// 람다 함수를 이용하여 input을 이용하여 비밀번호 인코딩
Function<String, String> passwordEncoder
= input -> passwordEncoder().encode(input);
// 고정된 값 생성
UserDetails userDetails = User.builder()
.passwordEncoder(passwordEncoder)
.username("park")
.password("dummy")
.roles("USER", "ADMIN")
.build();
return new InMemoryUserDetailsManager(userDetails);
}
@Bean
public PasswordEncoder passwordEncoder(){
return new BCryptPasswordEncoder();
}
}
'웹개발 > SpringBoot' 카테고리의 다른 글
[Spring JPA] Docker를 이용하여 MySQL 데이터베이스 연결하기 (2) | 2023.12.07 |
---|---|
[Trouble] JAVA Spring jsonPath 함수 사용 시 에러 (4) | 2023.11.25 |
[Java Spring] JDBC, Spring JDBC, JPA, Spring JPA (2) | 2023.11.24 |