RolVoter관련하여 질문이 있습니다.
강사님 안녕하세요.
강의를 듣다가 17:40 즈음에 getAccessDecisionVoters를 Arrays.asList(new RoleVoter());로 하셨는데
RoleVoter는 WebExpressionVoter와 같이 AccessDecisionVoter의 구현제 종류 중 하나인가요?
만약 그렇다면 getAccessDecisionVoters에 RoleVoter가 아닌 WebExpressionVoter를 넣어도 되는건가요? WebExpressionVoter가 아닌 RoleVoter를 사용하신 이유가 따로 있나요?
RoleVoter만 return으로 하신 이유는 뒤에 나오는 Hierarchy나 IpAddress와 같은 추가적인 Voter를 아직 추가하지 않았기 때문인가요? 실제 프로젝트에서도 추가적인 Voter를 사용하지 않는다면 저런식으로만 구현해도 괜찮을까요?
항상 친절한 답변 감사합니다 !
답변 1
0
네
Voter 클래스의 구현체 중 WebExpressionVoter 는 표현식으로 된 문장을 파싱해서 인가처리를 하는 Voter 클래스입니다.
흔히 설정 클래스에서 antMatcher("/member").hasRole("ADMIN") 이라고 했다면 /member 자원에 접근하는 사용자의 권한이 ADMIN 인지 아닌지 판별하기 위해 hasRole("ADMIN") 과 같은 표현식의 값을 파싱하는 용도로 사용합니다.
그런데 RoleVoter 는 표현식이 아닌 SecurityConfig("ROLE_ADMIN") 와 같은 값을 가지고 인가처리를 하는 클래스입니다.
강의 예제에서는 DB로부터 권한 데이터를 가지고 와서 매핑한 다음 사용을 하고 있습니다.
Voter 마다 인가처리를 하는 방식이 다르기 때문에 정책에 따라서 직접 구현하거나 기본적으로 제공되는 Voter 클래스들을 활용하시면 됩니다.
말씀하신대로 Hierarchy나 IpAddress 같은 인가 처리를 별도로 하기 위해서는 리스트에 추가적으로 담아서 리턴하게 되면 스프링 시큐리티가 순서대로 인가처리를 하게 됩니다.
시큐리티 공부 버전 질문
0
188
1
[해결 방법] MethodSecurityConfig.customMethodSecurityMetadataSource() 호출하지 않는 이슈
0
196
1
AbstractSecurityInterceptor.class.beforeInvocation()를 2번 실행하는 경우
0
185
1
강의 코드가 왜이렇게 뒤죽박죽인가요...
0
270
1
메인 페이지로 접속해도 login url로 리다이렉트가 되지 않습니다..
0
247
1
파라미터값이 넘어가지 않습니다 ....
0
381
1
security filterChain 설정 질문이 있습니다.
0
336
1
소스 부분 질문 드립니다.
0
211
2
섹션4 7번 강의 문제가 있는거 같네요.
0
351
2
파일이 수시로 이름이 바껴있네요 ㄷㄷ
0
308
1
HttpSessionSecurityContextRepository를 사용안하는 문제
0
563
2
error , exception 이 잘 안됩니다.
0
288
2
thymeleaf tag 질문합니다.
0
200
2
버전업하면서 deprecated된 것들이 너무많아요
0
482
1
spring security 패치 관련
0
442
1
모바일을 사용할때 토큰말고 세션
0
863
2
DB 연동한 인가 부분에 대한 질문입니다!
0
267
1
Ajax방식도 똑같이 Session방식을 사용하는건가요?
0
311
1
Config 파일 생성 시 질문이 있습니다.
0
233
1
강사님 몇일동안 구글 검색만 100개 했는데도 이유를 모르겠습니다..
1
440
2
403 에러 뜹니다.
0
816
2
login_proc의 존재에 대한 간략한 설명입니다
0
279
1
top.html에 로그인 링크를 만들어서 로그인을 해봤습니다
0
289
2
안녕하세요. DB에 저장될 때 이해 안 가는 값이 있어서 질문드립니다!
0
193
1





