스프링 시큐리티 권한 설정 API와 표현식

장서연·2022년 5월 29일
0

스프링 시큐리티

목록 보기
8/9

인가 API - 권한설정

선언적 방식

  • URL 방식 ✅ 먼저 이 방식을 사용해보자
    http.antMatchers("/users/**").hasRole("USER")
    @Override
    protected void configure(HttpSecurity http) throws Exception {
    	http.antMatcher("/shop/**") // "/shop/**" 로 먼저 한번 구분지어 주어야 한다. 그렇지 않으면 모든 경로에 대해 인가를 받아야 함.. 불편하겠지...
        .authorizeRequests()
        	.antMatchers("/shop/login", "/shop/users/**").permitAll()
            .antMathcers("/shop/mypage").hasRole("USER")
            .antMathcers("/shop/admin/pay").access("hasRole('ADMIN')");
           .anyRequest().authenticated()
    }```
    

표현식

메소드동작
authenticated()인증된 사용자의 접근을 허용
fulluAuthenticated()인증된 사용자의 접근을 허용. rememberMe 인증 제외. ID/PW 인증만 허용
permitAll()무조건 접근을 허용
denyAll()무조건 접근을 허용하지 않음
anonymous()익명 사용자의 접근을 허용
rememberMe()기억하기를 통해 인증된 사용자의 접근을 허용
access(String)주어진 SpEL 표현식의 평가 결과가 true 이면 접근을 허용
hasRole(String)사용자가 주어진 역할이 있다면 접근을 허용
hasAuthority(String)사용자가 주어진 권한이 있다면 접근을 허용
hasIpAddress주어진 IP 로부터 요청이 왔다면 접근을 허용
  • Method 방식
    @PreAuthorize("hasRole('USER')")
    public void user() {System.out.println("user");}

동적 방식 - DB 연동 프로그래밍

  • URL
  • Method

0개의 댓글