@PreAuthorize("hasRole('ROLE_CUSTOMER')") @PostMapping("/v1/api/orders") public MessageDTO createOrder(@ModelAttribute OrderPageRequestDTO orderPageRequestDTO, @CurrentUser Jwt jwt) { log.info("createOrder orderPageRequestDTO : {}", orderPageRequestDTO); UserDetailsServiceImpl.CustomUserDetails customUserDetails = userDetailsService.loadUserByJwt(jwt); Member member = Member.from(customUserDetai..
@Bean public PasswordEncoder passwordEncoder() { return PasswordEncoderFactories.createDelegatingPasswordEncoder(); }PasswordEncoder 빈 주입return new BCryptPasswordEncoder(); -> return PasswordEncoderFactories.createDelegatingPasswordEncoder();으로 변경하였다.Password Storage :: Spring SecuritySpring Security’s PasswordEncoder interface is used to perform a one-way transformation of a password to let the..
JwtAuthenticationFilter 라고UsernamePasswordAuthenticationFilter.class 이전에//로그인전 UserPasswordAuthenticationFilter 를 통해 인증을 받도록 설정 .addFilterBefore(jwtAuthenticationFilter(), UsernamePasswordAuthenticationFilter.class);항상 해당 필터를 거치도록 설정을 하였다.초기@Slf4j public class JwtAuthenticationFilter extends UsernamePasswordAuthenticationFilter { @Autowired private PasswordEncoder passwordEncoder; /** * authenti..
package org.example.알고리즘.행렬의덧셈; import java.util.Arrays; /**/ class Solution { public static void main(String[] args) { Solution solution = new Solution(); System.out.println(Arrays.deepToString(solution.solution(new int[][]{{1, 2}, {2, 3}}, new int[][]{{3, 4}, {5, 6}}))); } public int[][] solution(int[][] arr1, int[][] arr2) { ArrayClass arrayClass1 = new ArrayClass(arr1); ArrayClass arrayClass..
Uniform Interface 의 제약조건identification of resources각각의 정보 자원(RESOURCE) 이 고유한 식별자(IDENTIFIER) 를 통해 구별되고 접근이 가능해야한다는 원칙클라이언트는 URI 를 통하여 자원에 접근 , 상호작용manipulation of resources through representations클라이언트가 서버에 있는 자원(RESOURCE) 을 조작 (MANIPULATE) 할때 , 해당 자원의 표현(representation) 을 통해 이루어져야 한다.표현이란?자원의 상태를 나타내는 형식화된 데이터JSON 혹은 XML 을 의미함.위 2가지는 보통의 REST API 에서 일반적으로 지켜지고 있는 개념이다.하지만 아래의 경우는 잘 지켜지지 않는다고 한다..