Spring7 [TIL] 231124 Spring Security 로그인 Spring Security 로그인 Spring Security 내부의 AuthenticationManager과 UserDetailsService를 통해 DB와 소통 User name을 UserDetailsService로 전달 -> DB에서 usernmae으로 회원정보 조회 -> 성공시 UserDetails(회원상세정보) 생성 Username, password일치 시 로그인 성공 -> 세션 생성 UserDetailsServiceImpl @Service public class UserDetailsServiceImpl implements UserDetailsService { Private final UserRepository userRepository . . . } @Service 어노테이션 implemen.. 2023. 11. 24. [TIL] 231123 Spring Filter, Spring Security 프레임워크 Filter Client로부터 오는 요청과 응답에 대해 최초/최종 단계에 위치 요청과 응답시 정보를 변경하거나 부가적인 기능 가능 주로 보안처리나 로깅 등에 사용 인증, 인가와 관련된 로직 처리 (비즈니스 로직과 분리하여 관리 가능) Filter 사용법 @Order(1) : 필터 순서 지정 Implements Filter 로 필터라고 선언 public class Logging Filter implements Filter{ } implements Filter @Override public void doFilter(~~)~~ AuthFilter : 인증 인가 필터 만들기 Repository와 JwtUtil 가져오기 if (StringUtils.hasText(url) && (url.startsWith("/ap.. 2023. 11. 23. [TIL] 231114 Spring | ORM, JPA, Hibernate, Entity, 영속성 컨텍스트 ORM: Object-Relational Mapping 객체와 DB의 관계를 매핑해주는 도구 JPA: Java Persistence API 자바 ORM 기술에 대한 표준 명세 애플리케이션과 JDBC사이에서 동착 하이버네이트 Hibernate JPA의 표준 프레임워크 Entity JPA에서 관리되는 클래스, 즉 객체 Entity클래스 만들기 @Entity : 디폴트는 클래스 명 @Table: 매핑할 테이블 지정 @Id : PK지정 @Column : 매핑할 컬럼 지정 @GeneratedValue(strategy = GenerationType.IDENTITY) : 자동으로 순서에 맞게 기본 키가 추가됨 영속성 컨텍스트 Entity는 Entity Manager에 의해 관리된다 2023. 11. 14. [TIL] 231113 Spring | 3Layer Architecture, IoC와 DI, Bean 3 Layer Architecture - 길고 복잡한 코드를 유지 보수 등의 이유로 깔끔하게 관리하기 위해 Controlller, Servce , Repository로 나눔. 1. Controlller - 클라이언트의 요청을 받고 서비스에게 로직 처리를 전달함 - 서비스에서 처리 완료된 결과를 클라이언트에게 전달 2. Service - 사용자의 요구사항을 처리 - DB저장 및 조회가 필요할 경우 Repository에게 요청 3. Repository - DB 관리 - DB CRUD작업 처리 IoC와 DI - IoC (제어의 역전) - DI (의존성 주입) Bean - 스프링이 관리하는 객체 Spring IoC container - Bean을 모아둔 컨테이너 Bean 등록 방법 - @Component를 등록.. 2023. 11. 14. [TIL] 231109 Spring 숙련주차 Entity 연관 관계 1:1 1:N N:1 관계 1:1 관계 - 단방향 @OneToOne 외래키의 주인을 직접 설정 음식과 고객이 1:1의 경우 주인은 @JoinColumn 사용 음식 (외래키의 주인) @Entity @Table(name = "food") public class Food { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private double price; @OneToOne @JoinColumn(name = "user_id") private User user; } 고객 @Entity @Table(name = "users") public class User { @Id @GeneratedValue(strategy = .. 2023. 11. 9. [TIL] 231106 Spring 과제 Delete 하는 법 // PathVariable (Postman) @DeleteMapping("/board/{id}") public Long deleteBoard(@PathVariable Long id) { //해당 메모가 DB에 존재하는지 확인 if (boardList.containsKey(id)) { Board board = boardList.get(id); boardList.remove(id); return id; } else { throw new IllegalArgumentException("선택한 메모는 존재하지 않습니다."); } } http://localhost: 8080/api/board/4 4가 삭제할 데이터의 id ⬆️ 2023. 11. 6. 이전 1 2 다음