본문 바로가기

분류 전체보기177

[청하] 7. 게시글 등록 기능 - 인가 권한 설정 현재 사용자의 역할은 USER, ADMIN, GUEST로 구분된다. 게시글 관련 기획에서 “게시글 리스트 조회”는 모든 역할이 접근 가능하고, “게시글 등록”은 USER와 ADMIN 역할만 수행할 수 있도록 결정되었다. Sprnig Security 설정을 수정하여 인가 권한을 설정했다. 1. Security 설정 파일 수정@Configuration@EnableWebSecurity@RequiredArgsConstructorpublic class SecurityConfig { // ... (다른 필드 및 의존성 주입 생략) @Bean protected SecurityFilterChain securityFilterChain(final HttpSecurity httpSecurity) th.. 2024. 10. 7.
[청하] 6. 게시글 등록 기능 - @ModelAttribute를 이용한 form-data 처리 개선 지난번에는 @RequestPart 를 사용하여 JSON 데이터와 파일 데이터를 분리하여 처리하도록 변경했었다. 이번에는 텍스트 데이터와 파일 데이터를 모두 multipart/form-data로 요청하는 것이 더 편할 것 같다는 Android 팀원의 의견에 따라 수정하기로 했다.그리고 파일 업로드도 선택적으로 할 수 있도록 파일 처리 로직을 수정하였다. 1. 컨트롤러 수정기존 코드@RestController@RequiredArgsConstructor@RequestMapping("/api/v1/posts")public class PostController { private final PostService postService; // 게시글 등록 @PostMapping("/register") .. 2024. 10. 7.
[청하] 5. 게시글 등록 기능 - @RequestPart를 이용한 JSON 데이터와 파일 데이터 분리 AOS 팀원에게 게시글 등록 시 파일 데이터를 분리하여 요청할 수 있도록 변경해달라는 요청을 받았다.기존에는 모든 데이터를(텍스트와 파일 정보) JSON 형식으로 전송하고 있었는데, 텍스트 데이터는 JSON 형식을 유지하면서 파일 데이터는 별도의 part로 전송하도록 수정하였다. 1. DTO 수정기존 코드public record PostRegisterRequestDto( @NotBlank @JsonProperty("title") String title, @NotBlank @JsonProperty("content") String content, @NotNull @JsonProperty("type") ETopic type, @Nullable @JsonProp.. 2024. 10. 7.
[청하] 4. 게시글 등록 기능 구현 (feat. NCP Object Storage 파일 업로드) 청하의 가장 첫 번째 기능으로 “게시글” 기능을 추가하였다.“게시글 등록”은 사용자가 제목, 내용, 게시글 유형을 입력하고, 이미지를 선택적으로 업로드할 수 있는 기능이다. 1. 프로젝트 구조src/main/java/com/example/withpeace/│├── domain/ # 도메인 모델 (엔티티)│ ├── Image.java # 이미지 엔티티│ └── Post.java # 게시글 엔티티│├── repository/ # 데이터 접근 계층│ ├── ImageRepository.java # 이미지 레포지토리│ └── PostRepository.java # 게시글 레포지토리│├── dto/ .. 2024. 10. 6.
[netplix-security-a] AuthenticationProvider 구현 Netplix 구독형 멤버십 프로젝트로 배우는 SpringSecurity[Ch 4. AuthenticationProvider와 인] - 01. AuthenticationProvider 살펴보기강의를 바탕으로 실습 내용을 정리하였습니다.목차 1. 인증 구현인증 논리를 담당하는 AuthenticationProvider 를 알아보자요청을 허용할 것인지 정할 수 있음 AuthenticationManager 는 HTTP 필터 계층에서 요청을 수신하고 이 책임을 AuthenticationProvider 에게 위임함 두 케이스로 정리할 수 있음사용자를 찾을 수 없음: 애플리케이션이 사용자를 인식하지 못해 권한 부여 프로세스에 위임하지 않고 요청을 거부함사용자를 찾을 수 있음: 사용자 정보가 저장되어 있기 때문에 애플.. 2024. 10. 3.
[netplix-security-a] AOP를 활용하여 비밀번호 암호화하기 Netplix 구독형 멤버십 프로젝트로 배우는 SpringSecurity[Ch 4. PasswordEncoder] - 04. AOP를 활용하여 비밀번호 암호화하기강의를 바탕으로 실습 내용을 정리하였습니다.목차 1. 아래 암호화 요구사항은 어떻게 해결할 수 있을까?요구사항API 를 호출하는 클라이언트는 평문으로 비밀번호를 입력함보안을 위해 서버는 비밀번호를 암호화하여 관리함암호화 알고리즘은 수시로 변경될 수 있음 2. 암호화를 하려면 어떻게 해야 할까?HelloRequestBody 로 평문 비밀번호를 입력 받은 다음 직접 암호화 로직을 실행시킴단점: 암호화가 필요한 시점에 매번 로직을 수행해야 한다는 점HelloControllerpackage fast.campus.fcss01.controller;impor.. 2024. 10. 3.
[netplix-security-a] PasswordEncoder 구현 Netplix 구독형 멤버십 프로젝트로 배우는 SpringSecurity[Ch 4. PasswordEncoder] - 01. PasswordEncoder 살펴보기강의를 바탕으로 실습 내용을 정리하였습니다.목차 1. 키 생성기키 생성기는 특정한 종류의 키를 생성하는 객체로 일반적으로 암호화나 해싱 알고리즘에 필요함스프링 시큐리티에서 제공하는 키 생성기 인터페이스:BytesKeyGeneratorStringKeyGenerator StringKeyGenerator문자열 키 생성기를 이용해 문자열 키를 얻을 수 있음이 키를 기반으로 해싱 또는 알고리즘의 솔트(salt) 값으로 이용할 수 있음StringKeyGenerator 는 generateKey() 메소드를 제공함 StringKeyGenerator 와 솔팅St.. 2024. 10. 3.
반응형