작성한 질문수
스프링 시큐리티
11) 권한설정과 표현식
작성
·
1.6K
0
anyMatchers("/admin/**").access("표현식")
을 작성할 때 표현식에
"hasRole('ADMIN') or hasRole('SYS')" 을 작성하면 문법에러가 나옵니다. 최신버전의 시큐리티에서는 위와 같은 방법을 써야하나요?
"hasRole('ADMIN') or hasRole('SYS')"
현재 스프링부트의 버전은 2.7.4 입니다.
답변 2
위의 구문중에서
.authorizeHttpRequests()
가 있는데
.authorizeRequests()
로 변경해 주시면 됩니다.
둘의 API 가 약간 차이가 나는데 첫번째 API는 저도 거의 사용해 보지는 않았습니다.
저의 강의 이후에 새롭게 추가된 API 인 것 같습니다.
네
.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()
컴파일에러가 나오는 위 access메소드에 들어갈 파라미터부분에 manager라는 힌트가 적혀있어서
access메소드가 정의된 부분으로 이동해봤습니다.(아래 그림과 같습니다.)
소스코드는 아래와 같고 사진도 함께 첨부드립니다.
컴파일에러가 나오는 위 access메소드에 들어갈 파라미터부분에 manager라는 힌트가 적혀있어서
access메소드가 정의된 부분으로 이동해봤습니다.(아래 그림과 같습니다.)