팀원으로부터 회원가입/로그인 기능을 전달받아 게시판 기능과 연결하기 위해 확인하던 중, 로그인 기능이 실행되지 않는 것을 확인했다.
정확히는 UserDetailsService의 loadUserByUsername 서비스를 구현하는데 아이디값이 계속 null로 넘어오는 문제였다.
해당 문제를 해결하기 위해 열심히 구글링했으나 결국 하루가 지나도록 문제를 발견하지 못했고 포기하고 싶던 중 한 블로그를 발견했다!
https://dublin-java.tistory.com/31
해당 서비스를 사용할 때는 username을 기본 값으로 넘겨받기 때문에 우리 프로젝트에서 사용하는 id값을 username으로 사용하기 위해선 별도의 설정이 필요한 것이었다.
@EnableWebSecurity
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable();
http.authorizeRequests()
.antMatchers("/").authenticated()
.anyRequest().permitAll()
.and()
.formLogin()
.loginPage("/auth/signin")
.loginProcessingUrl("/auth/signin")
.usernameParameter("id")
.defaultSuccessUrl("/");
}
}
.usernameParameter 의 값을 설정해주고 나니 id 값으로 로그인을 시도해도 가능해졌다!
쉬운 문제였는데 문제를 잘못된 방향에서 생각했더니 오래 헤매서 기능을 구현할 시간이 또 다시 줄었다..ㅎ...
그래도 문제 해결을 하고 나면 항상 뿌듯하고 개발 의욕이 올라서 오히려 좋다!
'Logs > Groupin 프로젝트 진행 일지' 카테고리의 다른 글
[Spring/Backend] 프로젝트 개발 5주차. 배포 지옥과 프로젝트 마무리 (0) | 2022.08.15 |
---|---|
[Spring/Backend] 프로젝트 개발 4주차. Group DB 재설계 + 구현하기, @RequestBody 사용하기 (0) | 2022.08.14 |
[Spring/Backend] 프로젝트 개발 3주차. Query String vs 주소 매핑 (0) | 2022.08.07 |
[Spring/Backend] 프로젝트 개발 1주차. API 문서 작성하기 (0) | 2022.07.27 |