Team5-be01-Final-Project / .github

https://github.com/beyond-sw-camp/beyond-sw-camp-be01_last-dance
3 stars 0 forks source link

[ 정보 ] Spring Security 관련 REF #40

Open dhkdtld37 opened 4 months ago

dhkdtld37 commented 4 months ago

Spring Security의 원리

Spring Security 설정

  1. pom.xml에 의존성 추가
<dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework.security</groupId>
      <artifactId>spring-security-test</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>
  1. security 파일 생성
코드 예시
@Configuration
@EnableWebSecurity
@EnableMethodSecurity
public class SpringSecurityConfig {

    @Bean
    public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
        http.csrf().disable().cors().disable()
                .authorizeHttpRequests(request -> request
                        .dispatcherTypeMatchers(DispatcherType.FORWARD).permitAll()
                        .anyRequest().authenticated()
                )
                .formLogin(login -> login
                        .loginPage("/view/login")   // [A] 커스텀 로그인 페이지 지정
                        .loginProcessingUrl("/login-process")   // [B] submit 받을 url
                        .usernameParameter("userid")    // [C] submit할 아이디
                        .passwordParameter("pw")    // [D] submit할 비밀번호
                        .defaultSuccessUrl("/view/dashboard", true)
                        .permitAll()
                )
                .logout(withDefaults());

        return http.build();
    }
}

회원가입이 없으니 .formLogin 부분에서 로그인 컨트롤러 중 페이지 지정 .loginPage로 로그인이 성공했을 때 form으로 직접 매핑이 아닌 .loginProcessingUrl("/login-process") 코드로 분리 후 매핑

DB에서 로그인 정보 불러오기, 로그인 이후 모든 메뉴에서 보안성 테스트 미진행으로 테스트 및 확인 필요 현재 적용 예시 URL에서 적용 실험 중

REF

jsmin6330 commented 4 months ago
INAUGURATE-Ryong commented 3 months ago