ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • spring security - ip based url pattern access
    Tech/SpringBoot 2018. 7. 18. 21:18
    반응형

    /**
    * 특정 url 에 대해 허용된 아이피만 접근 하도록 설정 하도록 한다.
    * 물론 hasRole 기반으로 해도 되겠지만, 아이피 기반으로 url 접근을 거부 하도록 한다.
    * 허용되지 않은 아이피로 url 에 접근시 다시 인증 받도록 한다.
    * 스프링에서 제공하는 SpEL 형식으로 추가하도록 한다.
    *
    * 해당 설정 후 로컬에서 테스트를 진행 하려고 하였으나, 실패 하였다.
    * 실패의 원인은 로컬에서 WAS 를 실행시 기본적으로 아이피가 0:0:0:0:0:0:0:1 와 같은 ipv6 이 주소를 가져오도록 하였기 때문이다.
    * VM 옵션 혹은 WAS Arguments 값을 수정 해주도록 한다.
    * intelliJ: -Djava.net.preferIPv4Stack=true
    * 톰캣 WAS : catalina 파일에 JAVA_OPTS 설정 추가.
    *
    */
    public class SecurityConfig extends WebSecurityConfigurerAdapter {

        @Override
        protected void configure(HttpSecurity http) throws Exception {
            
    http.authorizeRequests()
    .antMatchers("admin/**").access("hasIpAddress('10.0.0.1') or hasIpAddress('10.0.0.1')")
                .antMatchers("user/**").access("hasRole('ROLE_USER') or hasRole('ROLE_ADMIN') or hasRole('ROLE_MANAGER')");
            http.csrf().disable();
    http.cors();
    .
    .
    .
        }
        
        @Override
        public void configure(WebSecurity web) throws Exception {
            web.ignoring()
                .antMatchers(HttpMethod.OPTIONS, "/**");
    }
    }


    반응형
Designed by Tistory.