antMacher url 관련해서 질문드립니다.
240
작성한 질문수 1
안녕하세요. 유익한 강의 항상 감사드립니다. 그런데 실습과정을 진행하던 중 문제가 생겨 질문드립니다ㅠㅠ
http://localhost/postList라는 게시판에 ADMIN Role을 가진 사용자만 접근하게 하고 싶은데 일반 user로 로그인해도 게시판 페이지에 원활하게 진입이 됩니다ㅠㅠ
기존 Vue+Spring으로 진행하던 프로젝트에 Security를 적용해 게시판 접근 권한을 주기 위해 다음과 같이 코드를 작성하였습니다. Vue 프로젝트는 스프링 프로젝트 안에 빌드해서 넣어놓은 상태이며 기존의 회원관리 기능은 없습니다. csrf는 게시판 CRUD 허용을 위해 적어놓았습니다...
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
String password = passwordEncoder().encode("1111");
auth.inMemoryAuthentication().withUser("user").password(password).roles("USER");
auth.inMemoryAuthentication().withUser("manager").password(password).roles("MANAGER");
auth.inMemoryAuthentication().withUser("admin").password(password).roles("ADMIN");
}
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
@Override
protected void configure(HttpSecurity http) throws Exception{
http
.csrf().disable().cors().disable()
.authorizeRequests()
.antMatchers("/").permitAll() //얘에다가 admin 걸면 user로 로그인해도 접근 못함 제대로 돌아감
.antMatchers("/postList/**").hasRole("ADMIN")
.anyRequest().authenticated()
.and()
.formLogin();
}
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers("/css/**")
.antMatchers("/js/**")
.antMatchers("/img/**");
}
}
http://localhost/postList라는 게시판에 ADMIN Role을 가진 사용자만 접근하게 하고 싶은데 일반 user로 로그인해도 게시판 페이지에 원활하게 진입이 됩니다ㅠㅠ
주소는 /postList가 확실하며 콘솔에 아무런 에러 메세지도 나타나지 않고 정상 접근이 되는 상황입니다.
혹시 antMatcher 자체가 먹지 않나 해서 .antMatchers("/").hasRole("USER"); 로 코드를 변경해서 테스트 해 보니 이건 또 "/"로 접근하려는 admin에게 제대로 forbidden을 띄워줍니다... 기본 "/" 주소만 antMatcher로 권한 변경이 되고 하위 주소는 권한 변경을 못 하고 있는 것 같은데 혹시 제가 postList의 ant Pattern을 잘못 기입했거나 따로 주어야 할 설정이 있을까요?
하루종일 구글링하면서 오만 설정을 다 넣어봤는데 로그인한 사용자가 무슨 Role이나 Authority를 가지고 있든 postList 문을 그냥 활짝 열어버리길래 질문 드립니다ㅠㅠㅠㅠ 읽어주셔서 감사합니다.
답변 1
0
Github 소스 공유 가능할까요?
0
https://github.com/gojung/gojung-web
페이지 url은 front/src/router/index.js에서 잡아주고 있으며 페이지 이동과 주소값은 제대로 되는 것을 확인했습니다. securityConfig는 root/src 안의 config/security 안에 작성했습니다.
루트 페이지에 hasRole()을 걸면 해당 Role을 가지지 않은 유저에 대한 권한을 제대로 막는데 다른 페이지는 하나도 제한이 안 걸리네요... 이런 경우는 어떻게 처리해야 할지 아직 해결하지 못했습니다ㅠㅠ
0
webignore에서 static resource들을 모두 허용해 놓은 때문에 충돌이 일어나 막히지 않는 것 같습니다. front단에서 navigation guard를 이용해 허용되지 않은 토큰을 설정하는 방식으로 해결했습니다. 감사합니다:)
시큐리티 공부 버전 질문
0
188
1
[해결 방법] MethodSecurityConfig.customMethodSecurityMetadataSource() 호출하지 않는 이슈
0
196
1
AbstractSecurityInterceptor.class.beforeInvocation()를 2번 실행하는 경우
0
186
1
강의 코드가 왜이렇게 뒤죽박죽인가요...
0
270
1
메인 페이지로 접속해도 login url로 리다이렉트가 되지 않습니다..
0
247
1
파라미터값이 넘어가지 않습니다 ....
0
381
1
security filterChain 설정 질문이 있습니다.
0
336
1
소스 부분 질문 드립니다.
0
213
2
섹션4 7번 강의 문제가 있는거 같네요.
0
352
2
파일이 수시로 이름이 바껴있네요 ㄷㄷ
0
309
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
268
1
Ajax방식도 똑같이 Session방식을 사용하는건가요?
0
312
1
Config 파일 생성 시 질문이 있습니다.
0
236
1
강사님 몇일동안 구글 검색만 100개 했는데도 이유를 모르겠습니다..
1
441
2
403 에러 뜹니다.
0
821
2
login_proc의 존재에 대한 간략한 설명입니다
0
280
1
top.html에 로그인 링크를 만들어서 로그인을 해봤습니다
0
292
2
안녕하세요. DB에 저장될 때 이해 안 가는 값이 있어서 질문드립니다!
0
194
1





