LDAP으로 스프링 시큐리티 인증하기

https://spring.io/guides/gs/authenticating-ldap/ 시작하기전에 우리는 이걸 할꺼에요. Spring Security의 임베디드 자바기반의 LDAP 서버에 의해 보안되는 간단한 웹 어플리케이션 몇몇 유저 셋을 포함한 데이터 파일과 LDAP 서버 로드 무엇이 필요해요? 15분의 시간 좋아하는 IDE 메모장도 상관 없어요! 하지만 STS나 IntelliJ IDEA가 있으면 더 쉽게 할 수 있어요. JDK 1.8 이상 Gradle 4 이상 혹은 Maven 3.2 이상 어떻게 따라해요? 대부분의 다른 Spring 가이드 문서들 처럼 완전 기초부터 하나씩 기본적인 단계를 따라하며 할거에요. 대부분 이미 익숙한 개념들이니 걱정 할 필요 없어요. 크게 두가지 방법이 있는데요. 어느 ..

Programming/JPA ⁄ Spring 2021.12.21
H2 데이터베이스를 이용해 JPA 실습해보기

인프런에서 우아한 형제들 김영한님의 JPA 강의를 학습하며 내용을 정리 해 보았습니다. 해당 강의를 들어보시길 추천합니다. https://www.inflearn.com/course/ORM-JPA-Basic/dashboard ​ H2 데이터베이스는 자바기반의 오픈소스 RDBMS(관계형 데이터베이스 시스템)입니다. 인메모리 DB 기능을 지원하며 굉장히 용량도 작고 가볍게 동작하기 때문에 번거롭게 데이터베이스를 구축 할 필요 없이 손쉽게 실습을 할 수 있어 편리합니다. ​ H2 DATABASE 설치 아래의 공식 사이트에서 다운 받습니다. 저는 MacOS 를 사용중이기 때문에 All platforms 를 클릭 해 다운 받았습니다. https://h2database.com ​ 이후 적당한 폴더에 위치 시킵니다. ..

Programming/JPA ⁄ Spring 2021.09.21
MAXIMUM SESSIONS OF 1 FOR THIS PRINCIPAL EXCEEDED 해결하기

MAXIMUM SESSIONS OF 1 FOR THIS PRINCIPAL EXCEEDED 해결하기 Spring Security를 사용해 로그인 인증 처리를 하고 있습니다. 정상적으로 로그인, 로그아웃이 이루어지고 있는데 특정 시점마다 자꾸 로그인이 제대로 되지 않는 문제가 있었습니다. Session의 에러 메시지를 확인 하니 MAXIMUM SESSIONS OF 1 FOR THIS PRINCIPAL EXCEEDED 문제 였고, 해결을 위해 선생님을 찾아 갔습니다. spring security 를 관리하는 xml 파일입니다. 아래의 max-sessions = 1 부분에서 최대 세션을 1개로 제한하고 있는데, 세션을 추가로 생성하려고 했기 때문에 생겼던 문제 입니다. 서버에서는 해당 회원은 이미 로그인이 되어..

Programming/JPA ⁄ Spring 2021.06.10
GAIA 알람 시스템을 만들기 위해 구축한 여러가지 모듈 소개와 과정

드디어 알람 시스템을 어느 정도 완성 했습니다. 사실 처음에는 Elastic search로 알람 기능을 구현 하려고 했지만, 이제 시간이 얼마 남지 않은 상태에서 팀 내 많은 이슈가 발생해서 쿼리부분에서 어느정도 막힌다 싶을때 급하게 Oracle 로 일단 턴 했습니다. Elastic Search를 사용하려고 elasticUtil 모듈을 만들어 Bean에 등록 했고, 그 유틸을 사용할 수 있는 나름의 Dao와 Service를 만들어서 했는데, 알람이 확인이 되면 모두 확인되었다는 update를 쳐야 하는데, '조회' 와 '등록' 단 두가지로 Elastic Search 활용을 준비하던 터라 거기에서 막혔습니다. 간단한 log 쌓기나 메시지 관련 기능이라도 Elastic Searc..

Development/Projects-DDIT 2021.06.09
Java 에서 Elastic Search 사용하기3. - 간단 검색하기

https://www.elastic.co/guide/en/elasticsearch/client/java-rest/master/_search_apis.html Search APIs | Java REST Client [master] | Elastic www.elastic.co 이번에는 엘라스틱 서치를 사용하는 이유인 검색을 해 보도록 하겠습니다. 일단 작성한 코드 먼저 보여드리겠습니다. client로 search 명령을 주면 , response를 return 합니다. 해당 response는 SearchHits 라는 Iterable 구현체를 가지고 있습니다. 지네릭 타입은 SearchHit 입니다. 해당 SerarchHit에서 각각 source를 getSourceAsMap() 메서드를 통해 받고, 모두 lis..

Data/Search Engine 2021.06.08