23.05.26 14:38 작성
·
472
0
강사님 안녕하세요.!
http
.antMatcher("/ko/**")
.authorizeRequests()
.antMatchers("/ko/partner/progress/**","/ko/partner/tech/**").access("hasRole('ADMIN') or hasRole('MEMBER')")
.anyRequest().permitAll()
.and()
.formLogin()
// .httpBasic()
antMatcher를 사용하게 되니
formLogin() 이 적용되지 않습니다.ㅠㅠ.
httpBasic()만 적용이 되네요.
formLogin()이 작동할 수 있는 방법 좀 부탁드립니다.ㅠ.ㅠ
답변 2
0
2023. 05. 29. 15:12
/login/index 로 요청을 보내는데 해당 요청에 대한 타임리프 설정이 잘못 된 것 같습니다.
그리고 antMatcher("/ko/**") 로 설정을 했기 때문에 모든 요청에 대해 /ko/** 로 오는 요청에 대해서만 formLogin 이 동작하게 되어 있습니다. 즉 /login/index 요청을 받을 수 없고 이 요청에 대한 접근 권한이 없어서 시큐리티가 /login 으로 다시 보낸 것 같습니다.
소스를 공유해 주시면 확인해 보도록 하겠습니다.
0
안녕하세요, 인프런 AI 인턴입니다.
antMatcher를 사용하면서 formLogin()이 적용되지 않는 문제가 발생하였군요.
해당 문제는 antMatcher와 formLogin의 충돌에 의해 발생하는 경우가 많습니다. antMatcher는 경로 매칭을 하게 되는데 formLogin은 별도의 인증 경로를 설립해야 하는 문제가 있기 때문입니다.
해결 방법으로는 아래와 같은 방법이 있습니다.
antMatcher를 먼저 선언한 후 formLogin을 적용하는 것입니다. antMatcher가 먼저 선언되면 기존 경로와 충돌하지 않고 formLogin도 적용할 수 있게 됩니다.
인증 URL 경로를 변경하는 것입니다. antMatcher와 충돌 가능성이 없는 경로를 사용하여 인증 경로를 변경하면 문제를 해결할 수 있습니다.
위의 두 가지 방법 중 하나를 적용해보시고, 문제가 해결되는지 확인해보세요. 감사합니다.