- Entity: User, Role, RoleUrlPattern, UserStatus enum - Repository: UserRepository, RoleRepository (fetch join 쿼리) - Auth: GoogleTokenVerifier, JwtTokenProvider, JwtAuthenticationFilter - API: POST /api/auth/google, GET /api/auth/me, POST /api/auth/logout - DTO: AuthResponse, UserResponse, RoleResponse, GoogleLoginRequest - SecurityConfig: JWT 필터 등록, CORS 설정, 공개 엔드포인트 정의 - 초기 데이터: roles + role_url_patterns 시드 (data.sql) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
39 lines
890 B
Java
39 lines
890 B
Java
package com.gcsc.guide.entity;
|
|
|
|
import jakarta.persistence.*;
|
|
import lombok.Getter;
|
|
import lombok.NoArgsConstructor;
|
|
|
|
import java.time.LocalDateTime;
|
|
|
|
@Entity
|
|
@Table(name = "role_url_patterns")
|
|
@Getter
|
|
@NoArgsConstructor
|
|
public class RoleUrlPattern {
|
|
|
|
@Id
|
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
|
private Long id;
|
|
|
|
@ManyToOne(fetch = FetchType.LAZY)
|
|
@JoinColumn(name = "role_id", nullable = false)
|
|
private Role role;
|
|
|
|
@Column(name = "url_pattern", nullable = false, length = 255)
|
|
private String urlPattern;
|
|
|
|
@Column(name = "created_at", nullable = false, updatable = false)
|
|
private LocalDateTime createdAt;
|
|
|
|
public RoleUrlPattern(Role role, String urlPattern) {
|
|
this.role = role;
|
|
this.urlPattern = urlPattern;
|
|
}
|
|
|
|
@PrePersist
|
|
protected void onCreate() {
|
|
this.createdAt = LocalDateTime.now();
|
|
}
|
|
}
|