본문 바로가기

Spring11

Spring Security 예외 처리 HTML 삽입 미리보기할 수 없는 소스 1. AccessDenied 예외 처리 Security에서 기본적으로 권한이 없는 리소스에 요청을 보내면 403(AccessDenied) 예외를 발생시킨다. 하지만 response에 메시지 등 정보를 넣어주기 위해서는 아래와 같은 처리가 필요하다. 1. 우선 Security Config에서 exceptionHandling 메서드를 통해 커스텀 한 handler를 등록해 준다. @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http .csrf(AbstractHttpConfigurer::disable) .sessionManagement(configurer -> conf.. 2024. 4. 22.
Spring Security6 JWT구성 HTML 삽입 미리보기할 수 없는 소스 1. secyrity config 코드 Security6 버전으로 올라오면서 구현 코드 문법이 좀 바뀌긴 했지만, 개념적인 부분은 기존과 동일하다. 우선 config 구현 코드는 아래와 같다. @Configuration @EnableWebSecurity @EnableGlobalMethodSecurity(securedEnabled = true, prePostEnabled = true) // 이걸 추가해야 어노테이션 기반 권한 설정이 동작 @RequiredArgsConstructor public class SecurityConfig { private final JwtTokenProvider jwtTokenProvider; private final JwtAccessDen.. 2024. 4. 22.
Spring REST API @Valid HTML 삽입 미리보기할 수 없는 소스 1. @Valid 1-1. @Valid 란 Spring에서 클라이언트에서 넘어온 값에 대한 검증을 쉽게 하기 위해 해당 어노테이션을 사용하며 해당 처리를 DTO객체에서 처리하기 때문에 코드의 응집도가 올라간다는 장점도 있다. 우선 형식 체크 외에 빈 값에 대한 체크는 @NotNull, @NotEmpty, @NotBlank을 사용하며 각각의 용도는 살짝 다른데 차이점은 아래와 같다. @NotNull: 필드 값이 null인지 검증. @NotEmpty: 필드 값이 null 뿐 아니라 빈 문자열("") 인지도 검증. @NotBlank: 필드 값이 null, 빈 문자열("") 뿐 아니라 공백("")인지도 검증. 보통 문자열에 체크는 @NotBlank를 사용하며, 객체에 대해.. 2024. 3. 6.
Spring 비지니스 로직 위치 HTML 삽입 미리보기할 수 없는 소스 1. 서비스 계층에서의 구현 장/단점 우선 서비스 계층에서 구현은 아래와 같다. 하나의 Customer 클래스가 존재하고 Getter, Setter 이외의 로직은 존재하지 않는다. 서비스 계층에서 해당 객체를 통해 필요한 값을 가져와 필요에 따라 함수를 작성한다. 고객의 등급은 파라미터로 받은 값에 따라 분기 처리하여 사용한다. @Service public class CustomerService { // 이자 금액을 계산하는 함수 public double getInterest(int cost,String grade){ Customer customer = new Customer(); customer.setId("C1"); customer.setBalance(100);.. 2024. 2. 25.