티스토리 뷰

카테고리 없음

@EnableWebSecurity

eyoadgkn 2024. 5. 11. 17:27
@EnableWebSecurity
@EnableWebSecurity 어노테이션은 Spring Security 프레임워크에서 제공하는 어노테이션으로, 웹 보안 기능을 활성화하는 데 사용됩니다.


WebSecurityConfigurerAdapter 구현 활성화

@EnableWebSecurity 어노테이션을 사용하면 WebSecurityConfigurerAdapter 인터페이스를 구현한 클래스가 자동으로 감지됩니다. WebSecurityConfigurerAdapter는 웹 보안 구성을 정의하는 데 사용되는 추상 클래스입니다.


스프링 시큐리티 필터 체인 활성화

@EnableWebSecurity 어노테이션을 사용하면 스프링 시큐리티 필터 체인이 자동으로 활성화됩니다.이 필터 체인은 웹 요청에 대한 보안 처리를 수행합니다.

스프링 시큐리티 설정 커스터마이징

@EnableWebSecurity 어노테이션을 사용하면 WebSecurityConfigurerAdapter를 통해 웹 보안 설정을 커스터마이징할 수 있습니다.ex)인증 방식, 권한 설정, CSRF 보호 등을 설정할 수 있습니다.

@EnableWebSecurity 어노테이션 사용 예시 코드

@Configuration // 이 클래스가 Spring의 Configuration 클래스임을 나타냅니다.
@EnableWebSecurity // 웹 보안 기능을 활성화합니다.
public class SecurityConfig extends WebSecurityConfigurerAdapter { // WebSecurityConfigurerAdapter를 상속받아 웹 보안 설정을 커스터마이징합니다.

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        // HTTP 보안 설정을 구성합니다.
        http
            .authorizeRequests() // 요청에 대한 권한 설정을 시작합니다.
                .antMatchers("/", "/home").permitAll() // "/" 및 "/home" 경로에 대해 모든 사용자 접근을 허용합니다.
                .antMatchers("/admin/**").hasRole("ADMIN") // "/admin/**" 경로에 대해 "ADMIN" 권한이 필요합니다.
                .anyRequest().authenticated() // 그 외 모든 요청에 대해 인증된 사용자만 접근할 수 있습니다.
            .and()
            .formLogin() // 폼 기반 로그인을 설정합니다.
                .loginPage("/login") // 로그인 페이지를 "/login"으로 설정합니다.
                .permitAll() // 로그인 페이지에 대해 모든 사용자 접근을 허용합니다.
            .and()
            .logout() // 로그아웃 설정을 합니다.
                .permitAll(); // 로그아웃 기능에 대해 모든 사용자 접근을 허용합니다.
    }

    @Autowired
    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
        // 인메모리 사용자 인증 설정을 합니다.
        auth
            .inMemoryAuthentication()
                .withUser("user").password("{noop}password").roles("USER") // "user" 사용자 추가
                .and()
                .withUser("admin").password("{noop}password").roles("ADMIN"); // "admin" 사용자 추가
    }
}

 


@EnableWebSecurity 어노테이션을 사용하여 웹 보안 기능을 활성화합니다.
WebSecurityConfigurerAdapter를 상속받아 SecurityConfig 클래스를 정의하고, HTTP 보안 설정을 구성합니다.
/ 및 /home 경로에 대해 모든 사용자 접근을 허용하고, /admin/** 경로에 대해 "ADMIN" 권한이 필요하도록 설정합니다.
그 외 모든 요청에 대해 인증된 사용자만 접근할 수 있도록 설정합니다.
폼 기반 로그인 페이지를 "/login"으로 설정하고, 모든 사용자가 접근할 수 있도록 허용합니다.
로그아웃 기능에 대해 모든 사용자 접근을 허용합니다.
인메모리 사용자 인증 설정을 통해 "user" 및 "admin" 사용자를 추가합니다.
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함