다음의 의존성 추가
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
h2database 의존성은 jar 파일 압축에 포함되면 안됨. scope 를 runtime 으로 설정.
application.properties 다음 추가
spring.datasource.url=jdbc:h2:mem:testdb
In memory db 를 사용하고, 접속 url 을 fix 하겠다.
하지만 이것만으론 h2-console 에 접속할 수 없다.
filterChain 메서드를 SpringSecurityConfiguration 에 추가해주자
@Bean
public SecurityFilterChain filterChain(HttpSecurity http)throws Exception {
http
.authorizeHttpRequests((authorizeRequests) ->
authorizeRequests
.anyRequest().authenticated()
)
.formLogin((formLogin) ->
formLogin
.defaultSuccessUrl("/", true)
)
.csrf((csrfConfig) ->
csrfConfig.disable()
)
.headers((headerConfig) ->
headerConfig.frameOptions(frameOptionsConfig ->
frameOptionsConfig.disable()
)
);
return http.build();
}
간단하게 설명하자면 다음과 같다.
- authorizeHttpRequests() 메서드는 모든 HTTP 요청에 대한 권한 부여를 설정한다. 여기서는 모든 요청에 대해 인증이 필요하도록 설정되어 있다.
- formLogin() 메서드는 폼 기반 로그인을 설정한다. 여기서는 defaultSuccessUrl("/", true)를 사용하여 로그인 성공 후에 기본적으로 홈 페이지로 리다이렉트되도록 설정되어 있다. 두 번째 매개변수인 true는 항상 리다이렉트를 수행할지 여부를 나타냅니다.
- csrf() 메서드는 CSRF(Cross-Site Request Forgery) 보호를 설정한다. csrfConfig.disable()를 호출하여 CSRF 보호를 비활성화 한다.
- headers() 메서드는 응답 헤더를 설정한다. 여기서는 frameOptions() 메서드를 사용하여 응답 헤더에 대한 프레임 옵션을 설정하고 있다. frameOptionsConfig.disable()를 호출하여 프레임 옵션을 비활성화 한다.
'JAVA' 카테고리의 다른 글
MySQL 과 연동/ MAVEN (0) | 2024.05.10 |
---|---|
data.sql 파일로 데이터 초기화 하기/ MAVEN (0) | 2024.05.10 |
Spring Security 시작하기 / MAVEN (0) | 2024.05.09 |
JSP Fragment 사용 (0) | 2024.05.08 |
Predicate (0) | 2024.05.08 |