강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

창신동 장첸님의 프로필 이미지
창신동 장첸

작성한 질문수

스프링 시큐리티

11) 권한설정과 표현식

antMatchers 의 access 메소드의 표현식

작성

·

1.6K

0

anyMatchers("/admin/**").access("표현식")

을 작성할 때 표현식에

"hasRole('ADMIN') or hasRole('SYS')" 을 작성하면 문법에러가 나옵니다. 최신버전의 시큐리티에서는 위와 같은 방법을 써야하나요?

현재 스프링부트의 버전은 2.7.4 입니다.

답변 2

0

정수원님의 프로필 이미지
정수원
지식공유자

위의 구문중에서

.authorizeHttpRequests()

가 있는데

.authorizeRequests()

 

로 변경해 주시면 됩니다.

둘의 API 가 약간 차이가 나는데 첫번째 API는 저도 거의 사용해 보지는 않았습니다.

저의 강의 이후에 새롭게 추가된 API 인 것 같습니다.

0

정수원님의 프로필 이미지
정수원
지식공유자

.antMatchers("/admin/**").access("hasRole('ADMIN') or hasRole('SYS')")

와 같이 작성해도 됩니다.

혹 소스를 공유해 주시면 확인해 보도록 하겠습니다.

소스코드는 아래와 같고 사진도 함께 첨부드립니다.

http
                .authorizeHttpRequests()
//                .antMatchers("/login").permitAll()
                .antMatchers("/user").hasRole("USER")
                .antMatchers("/admin/pay").hasRole("ADMIN")
                .antMatchers("/admin/**").access("hasRole('ADMIN') or hasRole('SYS')")
                .anyRequest().authenticated()

image

컴파일에러가 나오는 위 access메소드에 들어갈 파라미터부분에 manager라는 힌트가 적혀있어서

access메소드가 정의된 부분으로 이동해봤습니다.(아래 그림과 같습니다.)

 

image

창신동 장첸님의 프로필 이미지
창신동 장첸

작성한 질문수

질문하기