300x250
반응형

전체 글 197

[Spring Boot] 로그인 및 사용자 인증 정보 참조

현재 인증된 사용자 정보 참조 스프링 시큐리티의 스프링 웹 MVC 지원 @AuthenticationPrincipal : 핸들러 매개변수로 현재 인증된 Principal 을 참조할 수 있다. Principal 은 인증 시 authentication에 들어있는 첫 번째 파라미터이다. 아래의 account.getNickname()에 해당. AccountService.java public void login(Account account) { UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken( // 토큰 생성 account.getNickname(), account.getPassword(), List.of(new S..

Back-End/Spring 2023.02.10

[Spring] JAVA SPRING관련 용어정리

영속성 Persistance 애플리케이션의 생명주기를 연장시켜주는 데이터 속성 객체지향언어에서의 영속성은 실행되었던 애플리케이션이 실행을 멈춘 후에도 객체에 접근 가능하게 해준다. JDBC Java DataBase Connectivity. JDBC API는 CRUD(Create, Read, Update, Delete)를 수행하는데 SQL을 사용한다. JDBC코드는 자바 클래스에 포함되며, 이는 비즈니스 로직과 강하게 연결되있다는 것을 뜻한다. 이 코드는 데이터베이스들 간에 표준화 되어 있지 않은 SQL에 기반한다. 다른 데이터베이스로의 이전하는 것을 어렵게 한다. ORM Object Relational Mapping. 관계형 데이터베이스의 테이블에 애플리케이션 객체를 투명하게 저장할 수 있는 기술 ORM..

Back-End/그 외 2023.02.10

[Spring Boot] Spring boot + hibernate로 프로젝트 생성하기

프로젝트 생성하기 File-New-Spring Starter Project Type은 Maven으로 Packaging은 War로 선택한다. Dependencies는 보통 저 3개를 선택한다고 하는데 일단은 선택하지 않고 코드에 직접 추가하기로 했다. 프로젝트 셋업하기 src/main/resources에 application.properties 파일에 아래 코드를 추가한다. ctrl + shift + R로 쉽게 파일을 찾을 수 있다. 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 # =====..

Back-End/Spring 2023.02.10

[JPA] CRUD Repositories Query Method

Method Name으로 데이터베이스 쿼리 만들기 QuerySampleDescription findById List findById(ID id) id에 해당하는 user를 가져옴 findFirstBy User findFirstByOrderByLastnameAsc() Lastname column을 오름차순으로 정렬한 목록 중 첫번째 값을 찾음 findTop3By List findTop3ByLastname(String lastname, Sort sort) Lastname순으로 정렬한 목록의 top 3 값을 찾음 findAll List findAll() List findAllByOrderByLastname() 모든데이터를 가져옴 모든 데이터를 가져와서 Lastname순으로 정렬함 (OrderBy를 사용하려면 ..

Back-End/Spring 2023.02.10

[Spring Security] Invalid CSRF token found for http://...

회원가입을 진행하던 중 HTTP 403 에러가 발생하였다. Spring Security 3.2 이후 버전에서는 적절한 CSRF 토큰을 포함시켜주지 않으면 에러를 발생하게끔 되어있다. > CSRF ? https://namu.wiki/w/CSRF 관련 로그 2018-10-14 18:10 [DEBUG] /user/register.do at position 1 of 14 in additional filter chain; firing Filter: 'SecurityContextPersistenceFilter' 2018-10-14 18:10 [DEBUG] HttpSession returned null object for SPRING_SECURITY_CONTEXT 2018-10-14 18:10 [DEBUG] No S..

Back-End/Spring 2023.02.10

[Spring Boot] spring boot 1.X 와 2.X 차이점

spring boot 2 와 이전 버전의 차이점 1. Java 8 이 최소 버전이다. java9 를 지원하는 최초의 버전이다. 2. tomcat 8,5 가 최소버전이다. 3. Hibernate 5.2 가 최소 버전이다. 4. Gradle 3.4 가 최소 버전이다. 5. Spring Security 구성이 더 쉬워지고 Spring Security Oauth2가 Spring Security에 합쳐졌다. 보안 자동 구성은 더 이상 옵션을 노출하지 않고 가능한 한 Spring Security 기본값을 사용한다. -Spring Security5 사용자가 한 곳에서 명시적으로 환경설정을 할 수 있다. 이런 게 WebSecurityConfigurerAdapter 의 순서 문제를 막을 수 있다. 예를 들어 Actuat..

Back-End/Spring 2023.02.10

[Spring] 몽고 DB @Field 없을때 오류 org.springframework.data.mapping.PropertyReferenceException: No property log found for type

스프링부트 2.3.3 을 쓰게되면서 부터 라이브러리 사용법들이 조금 많이 달라졌다. 예를 들어 몽고db 가 있다. spring-data-mongodb:3.0.0 이후의 버젼이다. 몽고 db 쿼리 사용 예시이다. Date dateLogStartDate = new Date(); // date 조건검색 시작 Date dateLogEndDate = new Date(); // date 조건검색 종료 Query query = new Query(); query.with(Sort.by(Sort.Direction.DESC, "log_date")); // date 내림차순 Criteria criteria = Criteria .where("log_date").gte(dateLogStartDate).lte(dateLogEnd..

Back-End/Spring 2023.02.10

[Lombok] Lombok @Getter,@Setter Annotation 인식 안됨 [해결]

Lombok이라는 라이브러리는 클래스 상단에 어노테이션을 입력해 기본적으로 생성되야 하는 메서드들을 생성해주는 것을 배워서 사용해 보려는데 jar파일도 다운 받아서 라이브러리에 넣어주고 @Getter, @Setter 정의를 해줬는데도 인식이 안되는 문제가 생겼다! 원래는 이렇게 @Getter, @Setter 를 클래스 상단에 작성을 하면 옆에 Project Explore에서 MessageVo 하단에 getter/setter 메서드들이 좌르르 생긴다. 근데 내 VO하단에는 안 생겼다 딱히 에러는 안 뜨는데 그냥 인식만 안되서 뭐가 문제인지 답답했다. 역시 구글링이 답이다 그래서 해결 방법은 간단하게 설치만 해주면 되는 것! 롬복 홈페이지에 가서 롬복.jar 파일을 다운 받았다는 가정하에 해결방법을 적어본다..

Back-End/그 외 2023.02.10

[Spring Security] Spring Boot로 만드는 Spring Security 로그인 구현 - JWT(2)

코드는 Github을 통해 확인할 수 있습니다. JWT 로그인 방식은 CSRF와 REST API에 대한 지식이 요구 됩니다. 목차 화면 구성 JWT(JSON Web Token) 소개 JWT 한계 코드 분석 - REST API 구현과 JWT 구현을 분리해서 설명합니다. 화면 구성 메인 페이지 로그인 페이지 프로필 페이지(토큰의 만료를 확인하기 위해 10초로 설정했다.) JWT(JSON Web Token) 소개 세션, 쿠키의 로그인 방식과 JWT의 가장 큰 차이점은 서버는 클라이언트의 상태를 완전히 저장하지 않는 무상태성(Stateless)을 유지할 수 있다는 점입니다. 세션을 사용하는 로그인 방식은 서버 메모리에 사용자 세션 값을 들고있으므로(서버가 아니라 DB에 넣더라도) 무상태성이라고 볼 수 없습니다...

Back-End/Spring 2023.02.10
300x250
반응형