0. 이 포스트는 이전 Fooball club예제를 REST로 다시 작성하는 시리즈의 일부이다. 1. 적용된 테크닉 1-1 전역에러 처리 클래스 설정 @ControllerAdvice 1-2 Rest Controller @Validated, @Valid 처리 1-3 Optional 처리하기 map - orElseThrow/orElseGet 처리 2. 이 포스트에서 작성할 내용 2-1 인증관련 연결 2-2 전역 예외처리 클래스 정의 2-3 Skill CRUD 구현하기 3. 인증 관련 연결하기 3-1 SecurityConfig 3-1-1 기본적인 인증을 UserDetailsService를 바로 이용하는 방식으로 정의 3-1-2 PasswordEncoder를 BCrypt방식으로 적용 3-1-3 csrf disa..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/WeD7v/btqFoBNGkBT/K2zYeHrHSsYeJTkpew6SF0/img.png)
0. 이 포스트는 이전 Fooball club예제를 REST로 다시 작성하는 시리즈의 일부이다. 1. 적용된 테크닉 1-1 Data JPA Entity 작성하기 one to many, many to many 1-2 @MappedSuperclass, @Embedable, @Embedded, @Enumerated 1-3 외부 데이터베이스에서 초기 데이터 로딩 설정 2. 이 포스트에서 작성할 것 2-1 프로젝트 생성 및 jaxb와 jjwt 추가 2-2 폴더 작성 및 Entity 작성 2-3 데이터 베이스 확인 3. 프로젝트 생성 3-1 결국은 REST API를 작성하는 것이 목표이다. 3-2 데이터베이스는 MySql을 사용한다. 3-3 스프링보안을 적용하고 JWT를 사용한 인증을 사용한다. 3-4 Data J..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/b7v5pO/btqFfZoR1EG/X6P9Tdhl6Hk20I5ae4nkwk/img.png)
0. 지난 포스트는 이 포스트의 후속인데 순서가 뒤바뀌어 있다. 0-1 전체 소스도 아래부분을 포함하여 사용자와 팀과 매핑한 부분도 포함되어 있다. 0-2 아래 포스트를 보면 이전 포스트의 TeamController의 processTeamSetup 코드와 약간 다른데 0-2-1 더블클릭 방지를 위한 부분이 들어 있다. 0-2-2 첫 클릭시에 이미 SessionStatus가 complete되어 버리는데 0-2-3 더블 클릭시에는 세션 데이터가 없기 때문에 team 속성을 가지고 올 때 에러가 난다. 그 부분을 수정했다. Spring Security : Authentication 사용하기 1. Authentication은 인증 토큰이라고 할 수 있다. 1-1 인증토큰이라면 인증을 위한 정보를 가진 하나의 단..
1. Authentication은 인증 토큰이라고 할 수 있다. 1-1 인증토큰이라면 인증을 위한 정보를 가진 하나의 단위라고 생각하면 된다. 1-2 이 토큰은 정보를 담은 객체일 뿐 인증이 된 것일 수도 아닐 수도 있다. 2. Controller에서 entity를 저장할 때 유저정보와 연동이 필요한 경우 유용하게 사용할 수 있다. 3. 3가지 방식이 있는데 3-1 Authentication을 주입받아서 사용하기 3-2 Principal을 주입받아서 사용하기 3-3 @AuthenticationPrincipal을 사용하기 3-4 SecurityContext를 SecurityContextHolder에서 받아와서 사용하기 3-5 아래 소스로 설명한다. // Team Entity // 예제를 위해 User 속성..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/XZJQ8/btqFftpNAcI/PaUoR5jZ1jnawMU5MK022k/img.png)
0. 이미지는 인터넷 검색에서 가져온 내용이다. 개인의 정리 차원에서 작성한 내용이라 신경쓰지 않는다. 1. 스프링 보안 2가지로 큰 문제로 나눌 수 있다. 1-1 인증 1-2 권한(접근제어) 2. 인증 - 스프링은 권한에서 인증을 따로 떼낸 구조이다. 2-0 인증에 관해 인터넷에 수많은 포스트들이 있는데 아래 링크에서 아래 사진을 가져왔다. 2-0-1 찾아본 도식 중에서는 제일 좋은 것 같고 이 구조만 알아도 반은 먹고 들어간다. Spring Security : Authentication Architecture Here is the diagram for demonstrating list of classes and filters involved in spring security authentication..
0. Lombok은 이제 없으면 안될 정도로 중요한 라이브러리가 되었다. 한번씩 혼동될 때까 있어 정리한다. 1. Lombok 소스코드 Generator로 컴파일하기 전에 lombok 모듈을 거쳐 소스코드 생성되고 생성된 코드를 컴파일하게 된다. 2. 기능 2-1 val, var 2-2 @NonNull - 속성이나 생성자에 지정되어 Null 체크를 하여 Null이면 NullPointException을 발생시킨다. 2-3 @Cleanup - finally block의 close를 자동 호출해 준다. 2-4 @Setter, @Getter 2-5 @ToString 2-6 @EqualsAndHashCode - equals, hashCode 메소드를 생성해 준다. 특정한 속성을 제외할 수도 있다. 2-7 @NoA..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/uL5Dz/btqFdsKyEMX/Rl7te8pkg6BKpALNOChad0/img.png)
1. 이 포스트는 지난 시리즈에 이어서 같은 프로그램을 JPA로 구현하는 것을 보여준다. 1-1 화면과 데이터베이스 조회 결과는 이전 포스트를 참고한다. Spring Basic : JDBC를 이용한 FootBall Club example 1. 환경설정 0 javax.validation가 2.3.1에서 빠져 먹지를 않는다. 2.2.7 버전은 동작하니 예전버전을 사용을 권장한다. 0-1 아니면 그냥 maven에서 javax.validation를 찾아서 라이브러리를 추가하면 된다. 1. 이 포스트는.. kogle.tistory.com 2. 지난 JdbcTemplate을 이용한 프로젝트에 Data-JPA starter를 추가한다. 3. JPA를 사용하기 때문에 Entity가 가장 중요하다. 3-1 Skill E..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cp4paP/btqFe33QP7Y/Nhu60yGEBhf1aQ1AupGdKK/img.png)
1. 이 포스트는 축구 클럽 관리를 위한 테스트 프로젝트로 다양한 스프링 기능을 데모하기 위해 만들었다. 1-1 세션 범위의 공유객체 사용방법과 완료처리 방법 1-2 세션 객체가 존재하지 않거나 만료한 경우 처리방법(https://kogle.tistory.com/202) 1-3 SimpleJdbcInserter를 사용하는 방법 1-4 JdbcTemplate을 이용한 마지막 포스트이니 위에 프로젝트를 첨부하였다. 2. 팀작성 페이지는 input 밖에 없어 검증 작성하기가 수월하다. 아래는 검증과 저장을 수행하는 메소드를 추가하였다. 2-1 사용자가 입력한 데이터는 @modelAttribute로 받는데 @Valid를 설정하여 검증을 수행한다. 2-2 검증의 결과는 BindingResult로 받아 에러가 있는..
- Total
- Today
- Yesterday
- 도커 개발환경 참고
- AWS ARN 구조
- Immuability에 관한 설명
- 자바스크립트 멀티 비동기 함수 호출 참고
- WSDL 참고
- SOAP 컨슈머 참고
- MySql dump 사용법
- AWS Lambda with Addon
- NFC 드라이버 linux 설치
- electron IPC
- mifare classic 강의
- go module 관련 상세한 정보
- C 메모리 찍어보기
- C++ Addon 마이그레이션
- JAX WS Header 관련 stackoverflow
- SOAP Custom Header 설정 참고
- SOAP Custom Header
- SOAP BindingProvider
- dispatcher 사용하여 설정
- vagrant kvm으로 사용하기
- git fork, pull request to the …
- vagrant libvirt bridge network
- python, js의 async, await의 차이
- go JSON struct 생성
- Netflix Kinesis 활용 분석
- docker credential problem
- private subnet에서 outbound IP 확…
- 안드로이드 coroutine
- kotlin with, apply, also 등
- 안드로이드 초기로딩이 안되는 경우
- navigation 데이터 보내기
- 레이스 컨디션 navController
- raylib
- 설정
- 하이버네이트
- Spring
- jsp
- XML
- 외부파일
- Validation
- one-to-one
- Security
- 매핑
- Rest
- MYSQL
- form
- 로그인
- 설정하기
- RestTemplate
- 상속
- Many-To-Many
- 스프링부트
- crud
- hibernate
- WebMvc
- 스프링
- Spring Security
- Angular
- spring boot
- 자바
- one-to-many
- login
- mapping