JAVA

Spring Security + H2 데이터 베이스 접속 / MAVEN

Strickland 2024. 5. 9. 10:57

다음의 의존성 추가

<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();
}

간단하게 설명하자면 다음과 같다.

  1. authorizeHttpRequests() 메서드는 모든 HTTP 요청에 대한 권한 부여를 설정한다. 여기서는 모든 요청에 대해 인증이 필요하도록 설정되어 있다.
  2. formLogin() 메서드는 폼 기반 로그인을 설정한다. 여기서는 defaultSuccessUrl("/", true)를 사용하여 로그인 성공 후에 기본적으로 홈 페이지로 리다이렉트되도록 설정되어 있다. 두 번째 매개변수인 true는 항상 리다이렉트를 수행할지 여부를 나타냅니다.
  3. csrf() 메서드는 CSRF(Cross-Site Request Forgery) 보호를 설정한다. csrfConfig.disable()를 호출하여 CSRF 보호를 비활성화 한다.
  4. 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