LG CNS 부트캠프 학습일지 33일차
학습 내용
- Spring Boot Security
Spring Boot Security
스프링 웹 어플리케이션의 필터를 조금 더 사용하기 쉽게 만들어준 라이브러리이다. Spring Boot Security를 사용하지 않는다면 자바 서블릿(Servlet)의 필터를 개발자 스스로 추가해서 토큰의 유효성을 검사해야 한다. 솔직히 말해 Spring Boot Security를 처음 접하는 입장에서는 Spring Boot Security 자체도 충분히 어려워서 직접 자바 서블릿을 조작하는 것보다 어떤 점이 좋은지 체감하기는 어려웠다. 한 가지 좋은 점을 억지로(?) 찾아서 이야기하자면 CORS 설정값과 JWT 필터를 별도 클래스로 정의하지 않고 하나의 필터에 통합할 수 있다는 것이다.
1
2
3
4
5
6
7
8
9
10
11
12
public class JwtAuthenticationFilter extends OncePerRequestFilter {
@Override
protected void doFilterInternal(
HttpServletRequest request,
HttpServletResponse response,
FilterChain filterChain
) throws ServletException, IOException {
...
}
...
}
1
2
3
4
5
6
7
8
9
10
11
12
@Configuration
@RequiredArgsConstructor
public class SecurityConfig {
private final JwtAuthenticationFilter jwtAuthenticationFilter;
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
...
}
SecurityConfig 라는 클래스를 정의한다. PasswordEncoder 객체를 빈으로 관리하게 한다. Spring Boot Security를 사용할 때는 PasswordEncoder 객체를 사용해서 사용자의 암호를 암호화해서 서버에 저장할 수 있다. 엄밀히 말하면 해시(Hash)화인데 해시값 특성상 서버관리자조차 사용자의 비밀번호를 복호화할 수 없다.
결론
어렵다. 사실 프레임워크를 배우는 것이 별다른 것이 아니라 정해진 사용법을 숙달하는 것이다. 강사님이 작성하는 코드를 따라 써보기는 하지만 전체적인 흐름을 이해하기는 아직 많이 부족했다. 스스로 공부하는 시간이 필요해보인다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.
Comments powered by Disqus.