일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 예제
- login
- Zeppelin
- SpringBoot
- 클러스터
- 자동
- Jenkins
- config
- 간단
- Cluster
- Mac
- EMR
- 젠킨스
- spring
- Redis
- Kafka
- 자바
- ec2
- Docker
- gradle
- aws
- hive
- java
- fastcampus
- 로그인
- 머신러닝
- 레디스
- vue
- redash
- 설정
- Today
- Total
목록JAVA (34)
코알못
구글과 같이 로그인한 이력이 있다면 다른 아이디로 간편하게 로그인 가능 해당 코드는 개선 예정으로 참고용으로 보시면 됩니다. - gradle : gradle-3.5.1 - java : 1.8 - spring boot : 1.5.4.RELEASE - spring session : 1.3.1.RELEASE :: https://github.com/works-code/multi-browser-session GitHub - works-code/multi-browser-session: 구글과 같이 하나의 브라우저에서 멀티 세션 관리 기초 코드 구글과 같이 하나의 브라우저에서 멀티 세션 관리 기초 코드. Contribute to works-code/multi-browser-session development by c..
이번 시간에는 세션을 redis로 변경하여 하여 로그인 관리를 해본다 ! 보통 상용 환경에서는 서버 한대로는 부족하기에 여러대로 운영하기에 기본 로컬 메모리를 사용하게 되면 로그인을 진행한 서버가 아닌 다른 서버로 요청이 갈시 로그인 정보가 없기에 다시 로그인을 해야하는 상황이 발생한다 이를 방지하기 위해 redis 를 사용하여 사용자 세션 정보를 한곳에서 관리 한다! 우선 redis로 전환하기 전 로컬 메모리에 저장되는 세션 만료 시간은 아래와 같이 설정 가능하다. server: servlet: session: timeout: 60s # 기본 30분이며 60s 미만 설정시 60초로 된다. 로그인시 60초 뒤에 다시 로그인 페이지 호출시 로그인이 풀린다. (만료전 호출시 로그인을 따로 안해도 토큰 발행이..
로그인 실패, 성공 커스텀 구현 토큰 발행 커스텀 구현 토큰(jwt)에 사용자 정보 추가 로그인 실패/성공시 구현해야하는 비즈니스 코드는 회사 마다 각각 다르고 커스텀 하게 코드를 작성해야 하며, 지금부터 설정해본다! 일단 기존에 구현한 코드에서는 아래와 같이 로그인 화면이 나오고 로그인 실패시 아무 문구가 나오지 않는다. 실패 성공 커스텀 페이지는 기존 spring security 클래스를 상속하여 구현한다. // 실패 커스텀 페이지 @Slf4j public class CustomFailHandler extends SimpleUrlAuthenticationFailureHandler { @Override public void onAuthenticationFailure(HttpServletRequest r..
client 설정 메모리 > DB로 관리 custom 로그인, 권한 동의 페이지 jwt(json web token) 토큰 방식 실제 서비스에서 사용하는 구조로 세가지 사항부터 우선적으로 개선하려고 한다. 1번의 경우에는, 클라이언트 설정을 코드로 관리하기는 어렵고 수정 사항 발생시 코드를 수정하여 배포해야 하기때문에 DB로 관리하여 수정 사항을 배포 없이 바로 반영하며 가독성도 좋다. 2번의 경우에는, 로그인, 권한 동의 페이지를 예제처럼 구현하는 경우는 없을것으로 보여 내가 원하는 디자인으로 바꾸는 작업을 진행 한다. 3번의 경우에는, '3) 유효한 토큰인지 검사' 시 호출 시점 마다 인증서버와 통신하여 정상 토큰 여부를 검증하는데 jwt를 사용하면 리소스 서버 기동시 한번만 인증서버와 통신하면 그 이..
1) TCP Backlog 경고 WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128. - 원인 : tcp backlog 셋팅이 128로 되어 있어 511로 셋팅한 부분이 적용되지 않는다는 이슈 - 해결 방안 : tcp backlog 셋팅을 올려준다. (저자는 1024로 셋팅하였으나 값은 511 이상으로만 하면 된다.) $ sysctl -w net.core.somaxconn=1024 // sysctl.conf 에도 해당 설정을 넣어 서버 재기동시에도 적용 되도록 함 $ echo "net.core.somaxconn=1024" >> ..
OAuth 서버는 인증서버로 인증된 클라이언트만 접근 하도록 할 수 있으며, 클라이언트 별로 권한도 부여 하여 권한 별로 처리 할 수 있도록 할 수 있다. 예를 들어 페이스북, 카카오톡 개발자 센터에 가보면 로그인 기능의 경우 OAuth 2.0 형태로 되어있으며, 내 앱에 페이스북, 카카오톡 로그인을 붙여 사용자 정보를 가져와서 SNS 로그인 기능을 구현할 수 있으며, 로그인 한 사용자의 페이스북, 카카오톡을 컨트롤 할 수 있다. 페이스북, 카카오톡 처럼 우리도 인증 서버를 구현하여 API 를 권한이 있는 클라이언트에게만 제공 할 예정이다. 일단 OAuth 2.0 플로우는 아래와 같다. 토큰 발급 방식(grant_type)은 총 4가지 존재하며, 기본적으로 헤더에 authorization 값(client..
로그인 서비스는 2가지 방식으로 구현이 가능하다 1. 쿠키&세션 2. JWT 해당 글에서는 1번 쿠키&세션을 이용한 방법으로 구성해본다! 위 두가지 방법에 대한 플로우는 아래 게시글에서 확인 가능하다 - 쿠키&세션 관련 플로우 [로그인] 로그인 유지는 어떻게 처리 하는 걸까? 인증 정보를 주고 받는 방식은 두가지 방법이 있다. 쿠키 & 세션 JWT 하나씩 알아보자! # 쿠키 & 세션 1. 로그인 2. 사용자 정보 요청 따라서 쿠키의 만료시간에 따라 로그인 유지가 된다. 쿠키의 만 co-de.tistory.com 일단 컨트롤러를 보자 /*** * 로그인 페이지 * @param request * @param model * @return */ @RequestMapping(value = "/", method =..
Predixy 란? - 프록시 중 하나 - redis cluster에서 key 가 분산돼서 저장될 때, 클라이언트가 키가 어디 있는지 찾을 필요 없이 Predixy 가 전부 해줌. - master, slave 읽기 처리 비율 조정 가능 저자가 redis cluster 를 위한 기능이 탑재되어 있는 프록시를 찾아봤을 때(2021.06.01 기준) predixy 뿐이었으므로 해당 프록시와 연동해본다! 아래와 같은 구조가 베스트 이지만.. 테스트를 위한 구성으로 아래와 같이 하나의 서버에서 포트별로 다르게 프로세스를 띄워 구성한다. 1. 설치 $ git clone https://github.com/joyieldInc/predixy.git $ cd predixy $ make $ cp src/predixy /us..