일단 해보고, 아니면 뭐

실패했어도 배웠으면 실패가 아냐.

무한한 개발세계 여행기

Programing 21

File rename() vs copy() & remove() 구조는 어떻게 다를까?

쓸데없이 웅장한 이미지로 시작하는 포스팅 Go언어로 개발되는 Agent에 기능 개발을 하게 되는 업무를 하게 되었다. (Java도 잘 모르는데 Go언어라니...) Kubernetes 환경에 배포되는 Pod들의 Log File들을 관리하는 기능인데, 간략히 설명해보자면 Kubernetes에서는 'kubectl get log'라는 명령어를 통해서 로그를 확인할 수 있는데, 이 명령어는 Container Runtime (나는 Docker) 의 로그가 쌓이는 경로의 Directory들과 Symbolic Link로 연결되어 있는 Kubernetes 전용 경로를 바탕으로 로그를 표출해준다. 즉, 'kubectl get log' 명령어는 Container Runtime이 관리하는 Log File을 대신(?) 보여주는..

Programing/Go 2022.04.02

Spring Security Provider Customizing 하기 (2)

이전 포스팅에 이어서 실제로 내가 어떻게 개발에 적용했는지 정리를 해보자. (이래야 나중에 비슷한 거 개발할 때 복붙하지 ^^) 과연 어떻게 Customizing 했을까? 결론부터 이야기하면 재정의된 부분은 총 네부분 이다. 1. AuthenticationManager 2. AuthenticationProvider 3. UserDetailsServie 4. UserDetails LDAP, AD, Keycloak에 대한 AuthenticationProvider은 라이브러리들은 모두 제공이 되었고 이를 사용하기 위해 라이브러리를 Dependency 했다. org.springframework.ldap spring-ldap-core com.unboundid unboundid-ldapsdk org.springfr..

Programing/Spring 2022.04.01

Spring Security Provider Customizing 하기 (1)

회사에서 새로운 업무를 받았다. 기존에 Spring Security를 사용하여 사용자 인증 (로그인) 처리가 구현되어 있는 서비스를 고도화하는 것이었다. 현재는 사내에서 사용중인 RDBMS 사용자 테이블에 있는 암호화된 비밀번호를 이용하여 DaoAuthenticationProvider를 구성하여 사용 중 구조였고, 나는 이를 단일 Provider가 아닌 사용자가 설정한 인증 방식에 따라서 다이내믹하게 Provider를 적용할 수 있게 하는 것이었다. 기본적으로 Spring Security는 하나의 Provider를 설정해 인증처리를 하는방식이기 때문에 Spring Security의 인증 흐름중 Provider를 적용하는 부분을 적당히 재정의 하는 것이 필요해 보였다. 즉, 어떻게 변경되어야 했냐면 [ 현..

Programing/Spring 2022.04.01