관리자페이지로그인

Admin
package shop.mtcoding.filmtalk.admin;
import jakarta.persistence.*;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.hibernate.annotations.CreationTimestamp;
import shop.mtcoding.filmtalk.cinema.Cinema;
import java.sql.Timestamp;
@Getter
@Setter
@Table(name = "admin_tb")
@NoArgsConstructor
@Entity
public class Admin {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false, unique = true)
private String username;
@Column(nullable = false)
private String password;
@Column(nullable = false, unique = true)
private String email;
private String phone;
@Column(nullable = false)
private String name; // 실제 이름 추가
private String role; // ROLE_ADMIN, ROLE_SUPERADMIN 등
@Column(nullable = false)
private Boolean approved = false; // 승인 여부 추가
private String profileUrl; // 프로필 사진 URL 추가
@CreationTimestamp
private Timestamp createdAt;
@ManyToOne(fetch = FetchType.LAZY)
private Cinema cinema;
@Builder
public Admin(Long id, String username, String password, String email, String phone, String name, String role, Boolean approved, String profileUrl, Timestamp createdAt, Cinema cinema) {
this.id = id;
this.username = username;
this.password = password;
this.email = email;
this.phone = phone;
this.name = name;
this.role = role;
this.approved = approved;
this.profileUrl = profileUrl;
this.createdAt = createdAt;
this.cinema = cinema;
}
}
controller
@PostMapping("/admin/login")
public String adminLogin(AdminShotimeRequest.LoginDTO loginDTO){
Admin sessionAdmin = adminService.로그인(loginDTO);
session.setAttribute("sessionAdmin", sessionAdmin);
return "admin/dashboard";
}
세션이 등록
service
public Admin 로그인(AdminShotimeRequest.LoginDTO loginDTO) {
Admin admin = adminRepository.mFindByOneUsernameAndPassword(loginDTO.getUsername(),loginDTO.getPassword())
.orElseThrow(() -> new Exception401("인증되지 않았습니다"));
return admin;
}
아이디와 패스워드가 틀리다면 예외처리
Share article