전체 글 291

25. [springboot] Thymeleaf select option에 관하여

1. 서론 - 타임리프를 활용하여 앱을 작성하다가 select option에 대해 한번 정리할 필요성을 느꼈습니다. - 이 글을 읽는다면 controller에서 html로 정보가 이동하는 방법, html에서 select 한 정보가 controller 로 이동되는 방법을 알 수 있게 됩니다. - 이 글을 읽고 저처럼 더이상 삽질하지 않기를 바라는 마음에서 작성합니다. 2. 본론 저는 평소 entity를 dto로 변환해서 html에 뿌리는 방식을 사용합니다. 2.1 controller 에서 web으로 내려주기 dto @Getter @Setter @Builder @NoArgsConstructor @AllArgsConstructor public class FirstPageDto { private String p..

Dev/SpringBoot 2020.11.02

9. [SSO] Keycloak User Storage SPI 번역해보기 - 2

1. 서론 어제에 이어 계속해서 번역작업을 진행해보도록 하겠습니다. 어제 내용을 잠깐 복습해보면, SPI라는 것을 이용하면, Keycloak과 기존 사용자 DB를 연동하여 이용할 수 있다고 하였습니다. UserStorageProvider를 구현하고, UserStorageProviderFactory 를 구현해주어야 한다고 했습니다. 저번시간에는 UserStorageProvider에 대해 집중 탐구해보았으니, 오늘은 Factory에 대해 탐구해보겠습니다. 2. 본론 2.5.2. Provider Factory Implementation public class DemoUserStorageProviderFactory implements UserStorageProviderFactory { public static ..

Dev 2020.10.13

8. [SSO] Keycloak User Storage SPI 번역해보기

1. 서론 keycloak 기본 예제는 어느정도 할 수 있게 되었습니다. 하지만 실제 디비에 적용시키기엔 무리가 있다는 것을 알게 되었습니다. 키클락에서 제공하는 칼럼 정보와 현재 회사에서 사용하고 있는 디비 칼럼구조와 다르기 때문에 이걸 어떻게 적용해야할지에 대한 고민을 많이 하게 되었고, 그러던 도중 User Storage SPI 라는 글이 있기에 번역해보면서 공부해보려 합니다. 해당 원문 링크는 여기에 있습니다. 2. 본론 사용자 스토리지 SPI를 사용하여 Red Hat Single Sign-On에 확장하여 외부 사용자 데이터베이스 및 인증 정보 저장소에 연결할 수 있습니다. 기본 제공 LDAP 및 ActiveDirectory 지원은 이 SPI를 실제 구현한 것입니다. Red Hat Single S..

Dev 2020.10.12

7. [SSO] Keycloak Default DB 변경해보기

1. 서론 keycloak은 현재 H2 Database로 관리되고있습니다. 이를 오라클로 변경해보는 작업을 진행하였는데, 찾아봐도 번역본이 없기에 내가 직접 해본 후기를 올리려고 합니다. 참고 자료 Configuring Keycloak to use Oracle Database 2. 본론 1. ojdbc download 우선 오라클을 이용하기 위해 ojdbc가 있어야 합니다. 저는 ojdbc6을 사용하였습니다. 다운로드는 여기에서 진행하시면 됩니다. 2. make directory 다음과 같은 디렉토리 구성이 필요합니다. \\modules\\system\\layers\\keycloak\\com\\oracle\\main 다음과 같이 경로를 구성하셨다면, 두 개의 파일을 아래의 사진과 같이 이동시켜줍니다. 3..

Dev 2020.10.08

24. [SpringBoot] RESTFul한 로그인 구현 예제 - 2

1. 서론 지난 포스팅에서는 하드코딩된 하나의 유저로 로그인 하는 과정을 학습해보았습니다. 이 방법은 실무에 적합하지 않습니다. 이번 포스팅에서는 여러 유저의 정보를 통해 회원가입을 하고, 회원 가입된 유저를 로그인하는 방법에 대해 학습하겠습니다. 2. 본론 1. User - 우리는 유저 정보를 저장하기 위해 JPA를 이용할 것입니다. 그러기 위해서 가장 먼저 필요한 것이 도메인 설정입니다. - 유저에는 UserDetails를 implement 해줍니다. 관련 설정들을 모두 오버라이딩 해줍니다. import lombok.*; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.a..

Dev/SpringBoot 2020.10.06

23. [SpringBoot] RESTFul한 로그인 구현 예제

1. 서론 백엔드로서의 Spring boot를 구현하는 것을 공부하고 있습니다. 웹으로 띄우는 것이 목적이 아닌, 서버 자체로서의 Spring boot. 가장 핵심이라고 할 수 있는 회원가입과 로그인 기능을 제공하는 백엔드 서버를 만들어보고자 하는데요~ 22. [SpringBoot] 스프링부트 spring security 완전 기초 예제 1. 서론 RESTFul API를 이용해서 토큰을 발급받아 접근허용하는 예제를 만들어보았습니다. 이 예제를 학습하면 다음을 이해하는 것이 됩니다. - 간단 회원가입시, DB에 정보가 저장됩니다. - 로그인�� dkyou.tistory.com 이전 포스팅에서 프로젝트 init을 진행하고 왔다면, 이번엔 DB설정 없이 JWT 로그인 기능을 구현해보고자 합니다. 2. 본론 -..

Dev/SpringBoot 2020.10.05

22. [SpringBoot] 스프링부트 spring security 완전 기초 예제

1. 서론 RESTFul API를 이용해서 토큰을 발급받아 접근허용하는 예제를 만들어보았습니다. 이 예제를 학습하면 다음을 이해하는 것이 됩니다. - 간단 회원가입시, DB에 정보가 저장됩니다. - 로그인을 하면, 토큰이 발급됩니다. - 특정 url에 접근 시, 토큰을 헤더에 담지 않으면 접근이 되지 않습니다. - 잘못된 정보로 토큰 접근 시, 접근이 제한됩니다. - API 테스트의 기초를 이해할 수 있습니다. 2. 본론 1. 먼저, 프로젝트 생성 후 hello world를 찍어볼 것입니다. 프로젝트 생성은 여기에서 진행합니다. 저는 이와같은 설정으로 프로젝트를 만들었습니다. 하단의 Generate를 클릭하여 프로젝트를 적당한 위치에 다운로드 받아줍니다. 15버전이 10월 기준 최신 버전이더라구요! 저는..

Dev/SpringBoot 2020.10.04

21. [SpringBoot] 간단하게 비밀번호 암호화해보기

1. 서론 - 회원가입 로직을 구현하던 중 평문 비밀번호를 그대로 저장하는 것을 알게 되었고, Spring security 를 이용하여 암호화하는 방법을 학습해야겠다고 생각했다. 2. 본론 의외로 간단하다. spring-security 의존성이 필요하다. org.springframework.boot spring-boot-starter-security 그리고 springsecurity 환경설정을 진행해준다. import org.springframework.context.annotation.Bean; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security...

Dev/SpringBoot 2020.10.01

6. [SSO] Keycloak & Springboot 적용기 - 3

1. 서론 키클락이랑 스프링부트랑 연결하는 부분을 마무리하였습니다. 이제 전체 키클락 인증서버가 스프링부트에의해 연결되어있음을 볼 수 있습니다. 우리는 키클락이 다 해주기 때문에 access_token을 발급받을 필요가 없고, 인증 헤더에 명시적으로 무언가를 표시할 필요도 없습니다. 이제는 보안설정에 대해 알아보겠습니다. 2. 본론 일단 메이븐에 다음과 같은 설정을 추가해줍니다. org.springframework.boot spring-boot-starter-security 2.2.6.RELEASE 키클락은 KeycloakWebSecurityConfigurerAdapter을 Springboot의 WebSecurityConfigurerAdapter처럼 제공해줍니다. 참 좋군요 @Configuration @..

Dev 2020.09.28