웹개발/Spring Boot(9)
-
Spring Boot에서 어노테이션으로 세션 사용자 가져오기
Spring Boot 애플리케이션에서 로그인한 사용자 정보를 컨트롤러에서 손쉽게 가져오고 싶을 때, 세션에서 사용자 정보를 가져오는 기능은 매우 유용합니다. 특히, 반복적인 코드 없이 어노테이션을 사용해 현재 사용자의 정보를 쉽게 접근할 수 있도록 커스텀 어노테이션을 구현하는 방법을 소개하겠습니다. --- ## 1. 프로젝트 구성 이 예제는 다음과 같은 의존성을 포함합니다: - **Spring Web** - **Spring Security** - **Spring Boot DevTools** `build.gradle` 또는 `pom.xml`에 의존성을 추가합니다. ### Gradle ```groovy dependencies { implementation 'org.springframework.boot..
2024.11.20 -
스프링 부트 + jsp + 시큐리티 연동 시 302
컨트롤러 설정을 다 하고 시큐리티와 연동했을때 자꾸 Forwarding을 정상적으로 하지 못하는 문제에 도달했다. 이것저것 검색해봐도 사실 뭐가 문제인지몰랐다가 SecurityFilterChain에서 authorizeHttpRequests의 Matchers에 추가적으로 설정해야하는 것을 간신히 찾아냄 http.authorizeHttpRequests((authorize) -> authorize.dispatcherTypeMatchers(DispatcherType.FORWARD, DispatcherType.ERROR, DispatcherType.INCLUDE).permitAll() 다음과 같이 dispatcherTypeMatchers에 추가해주면 끝!
2024.03.13 -
스프링 부트 + jsp 연동
스프링 부트 시큐리티에 jsp를 설정하면 기본적으로 application.yml 설정을 mvc: view: prefix: /WEB-INF/jsp/ suffix: .jsp 위치는 src/main/webapp 에 위치해야한다 src/main/webapp/WEB-INF/jsp 폴더 생성하고 그 폴더에 jsp를 넣으면 됨 pom.xml에 dependency 추가 org.apache.tomcat.embed tomcat-embed-jasper 해주고 컨트롤러에서 호출해주면 완성 추가적으로 taglib와 jstl을 사용하려면 pom.xml에 jakarta.servlet.jsp.jstl jakarta.servlet.jsp.jstl-api 3.0.0 jakarta.servlet jakarta.servlet-api 6.0..
2024.03.13 -
JAVA Enum Value로 Key 찾아오기
public enum GubunCode { GUBUN1("GUBUN1_value11", "GUBUN1_value12", "GUBUN1_value13"), GUBUN2("GUBUN1_value21", "GUBUN1_value22", "GUBUN1_value23"); private final String displayValue1; private final String displayValue2; private final String displayValue3; private GubunCode(String displayValue1, String displayValue2, String displayValue3){ this.displayValue1 = displayValue1; this.displayValue2 = ..
2023.07.06 -
Spring Boot Controller 에서 전체 파라메터 폼 클래스 유효성 검증
컨트롤러에 WebDataBinder을 이용하여 파라메터로 넘어오는 폼 클래스의 유효성검증을 추가 private final BoradFormValidator boardFormValidator; @InitBinder("boardForm") public void initBinder(WebDataBinder webDataBinder) { webDataBinder.addValidators(boardFormValidator); } 해당 컨트롤러 상단에 선언을 해줍니다. @InitBinder("boardForm") 에서 boardForm의 이름으로 클래스를 찾아서 검증 @GetMapping("/boardDetail") public String detail(Model model, BoardForm boardForm) ..
2023.07.05 -
Spring Boot Validated 유효성 검증 그룹 설정
public class ValidationGroups { public interface OnUpdate {} public interface OnInsert {} } ValidationGroups 클래스에 해당 interface를 선언 해두고 @Data public class BoardForm { @NotBlank(message = "제목은 필수입니다.", groups = {ValidationGroups.OnInsert.class}) @Length(min = 5, message = "제목은 6글자 이상", groups = {ValidationGroups.OnInsert.class}) @Length(max = 15, message = "제목은 15글자 이하", groups = {ValidationGroups..
2023.07.04