일단 해보고, 아니면 뭐

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

무한한 개발세계 여행기

Spring Security 3

Spring Security Role 도입. Autority 써보기

요즘에 회사생활도 일상생활도 바빠져서 포스팅을 오랫동안 하지 못했는데, 나태해진 나를 반성하고 반성하며 오랜만에 포스팅을 하려고 한다. 포스팅 주제를 생각하다가 과거에 API 접근관련하여 Spring Security의 Autority를 사용한 적이 있는데, 최근 회사에서 새로운 서비스를 개발할 때 사용할 수 있을 것 같아서기억을 되새김질할 겸 정리를 해보려고 한다. API 접근 권한은 왜 부여하는 걸까? 'API 보안이 중요하다'라는 말은 많이 들어봤을 것이다. API에 접근 권한을 부여하는 것은 이 보안의 모범사례 중 하나일 뿐이다. 그렇다면 API 보안은 왜 중요할까? 기업은 API를 이용해서 서비스를 연결하고 데이터를 전송하는데 이런 API가 손상, 노출 또는 해킹이 되면 주요한 데이터의 보안 유출..

Programing/Spring 2022.06.20

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