← All Articles

2021.03.22 (월)

Posted on

Spring Security

초보자가 이해하는 Spring Security Mambo
그래들(Gradle)은 무엇인가?

확장된 형태에서의 .antMatchers().hasRole() 또는 .antMatchers().access() 는 해당 경로에 대해서 어떠한 권한을 가져야만 접근할 수 있는가를 표현하는 것

antMatchers() 다음으로 지정할 수 있는 항목들

  • anonymous() 인증되지 않은 사용자가 접근할 수 있습니다.
  • authenticated() 인증된 사용자만 접근할 수 있습니다.
  • fullyAuthenticated() 완전히 인증된 사용자만 접근할 수 있습니다(?)
  • hasRole() or hasAnyRole() 특정 권한을 가지는 사용자만 접근할 수 있습니다.
  • hasAuthority() or hasAnyAuthority() 특정 권한을 가지는 사용자만 접근할 수 있습니다.
  • hasIpAddress() 특정 아이피 주소를 가지는 사용자만 접근할 수 있습니다.
  • access() SpEL 표현식에 의한 결과에 따라 접근할 수 있습니다.
  • not() 접근 제한 기능을 해제합니다.
  • permitAll() or denyAll() 접근을 전부 허용하거나 제한합니다.
  • rememberMe() 리멤버 기능을 통해 로그인한 사용자만 접근할 수 있습니다.

Role은 역할이고 Authority는 권한이지만 사실은 표현의 차이입니다. Role은 “ADMIN”으로 표현하고 Authority는 “ROLEADMIN”으로 표기하는 것 뿐입니다. 실제로 hasRole()에 ROLEADMIN으로 표기하면 ROLE을 지우라는 에러를 볼수 있게 됩니다.