코드 그라데이션
JWT 예제 구현 (3) SecurityConfig 추가, 기본 엔티티 구현 본문
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.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "authority")
@Getter
@Setter
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Authority {
@Id
@Column(name = "authority_name", length = 50)
private String authorityName; // 권한 이름
}
User
package inflearn.freejwt.entity;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.*;
import javax.persistence.*;
import java.util.Set;
@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 = "nickname", length = 50)
private String nickname;
@JsonIgnore
@Column(name = "activated")
private boolean activated;
@ManyToMany
@JoinTable( // 다대다를 일대다, 다대일 관계로 재정의했다는 뜻.
name = "user_authority",
joinColumns = {@JoinColumn(name = "user_id", referencedColumnName = "user_id")},
inverseJoinColumns = {@JoinColumn(name = "authority_name", referencedColumnName = "authority_name")})
private Set<Authority> authorities;
}
728x90
'Spring > Security' 카테고리의 다른 글
JWT 예제 구현 (5) 5개의 클래스를 SecurityConfig에 적용 (0) | 2023.12.11 |
---|---|
JWT 예제 구현 (4) JWT 기본 코드 구현 + Security 설정 추가 (1) | 2023.12.11 |
JWT 예제 구현 (2) 권한 에러 해결, 데이터베이스 연결 (1) | 2023.12.09 |
JWT 예제 구현 (1) 프로젝트 세팅 (0) | 2023.12.08 |
JWT Tutorial 연습 (0) | 2023.10.27 |
Comments