목록Spring/Security (17)
코드 그라데이션
Entity User @Entity @Table(name = "user") @Getter @Setter @Builder @AllArgsConstructor @NoArgsConstructor public class User { @JsonIgnore @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "user_id") private Long userId; @Column(name = "username", length = 50, unique = true) private String username; @JsonIgnore @Column(name = "password") private String password; @Column(name ..
UserController package inflearn.freejwt.controller; import inflearn.freejwt.dto.UserDto; import inflearn.freejwt.entity.User; import inflearn.freejwt.service.UserService; import lombok.RequiredArgsConstructor; import org.springframework.http.ResponseEntity; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import javax.validation.V..
DTO LoginDto package inflearn.freejwt.dto; import lombok.*; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; @Getter @Setter @Builder @NoArgsConstructor @AllArgsConstructor public class LoginDto { @NotNull @Size(min = 3, max = 50) // 유효성 검사 private String username; @NotNull @Size(min = 3, max = 100) private String password; } UserDto package inflearn.freejwt..
SecurityConfig.java package inflearn.freejwt.config; import inflearn.freejwt.jwt.JwtAccessDeniedHandler; import inflearn.freejwt.jwt.JwtAuthenticationEntryPoint; import inflearn.freejwt.jwt.JwtSecurityConfig; import inflearn.freejwt.jwt.TokenProvider; import lombok.RequiredArgsConstructor; import org.springframework.context.annotation.Bean; import org.springframework.security.config.annotation.m..
build.gradle에 jwt 관련 코드를 추가 plugins { id 'java' id 'org.springframework.boot' version '2.4.1' // Spring Boot 버전을 2.4.1로 변경 id 'io.spring.dependency-management' version '1.0.10.RELEASE' // Spring Dependency Management 버전 변경 } group = 'inflearn' version = '0.0.1-SNAPSHOT' sourceCompatibility = '1.8' configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } ..
SecurityConfig 에 추가 /** * h2-console 하위 모든 요청들과 파비콘 관련 요청은 * Spring Security 로직을 수행하지 않고 접근할 수 있게 configure 메서드를 오버라이드해서 내용을 추가해준다. */ @Override public void configure(WebSecurity web) { web.ignoring() .antMatchers( "/h2-console/**" ,"/favicon.ico" ); } Authority package inflearn.freejwt.entity; import lombok.*; import javax.persistence.Column; import javax.persistence.Entity; import javax.persis..
먼저, 앞서 나왔던 401 에러를 해결하기 위한 작업 (시큐리티가 들어가다 보니, 임포트까지 최대한 들어가게 옮기겠다.) SecurityConfig package inflearn.freejwt.config; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; @EnableW..
# 비고 강의의 기본 세팅은 스프링 부트 2.4.1 이지만, 현재 스프링 부트 이니셜라이저는 2.7.15 버전부터 서비스되고 있기 때문에, 인위적으로 바꾸는 과정이 필요했다. 초기 : 2.7.15 build.gradle plugins { id 'java' id 'org.springframework.boot' version '2.7.15' id 'io.spring.dependency-management' version '1.0.15.RELEASE' } group = 'inflearn' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '1.8' } configurations { compileOnly { extendsFrom annotationProcesso..