From 001bba7cb14169a3acabbf0ced4634d6164114d1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E1=84=8B=E1=85=B5=E1=84=8C=E1=85=B5=E1=86=AB=E1=84=80?=
=?UTF-8?q?=E1=85=B5?= <>
Date: Fri, 15 Nov 2024 11:52:59 +0900
Subject: [PATCH] =?UTF-8?q?JAP=20=EC=84=A4=EC=A0=95=EB=B0=8F=20=EB=A1=9C?=
=?UTF-8?q?=EA=B7=B8=EC=9D=B8=20=ED=85=8C=EC=9D=B4=EB=B8=94=20=EC=97=B0?=
=?UTF-8?q?=EA=B2=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.idea/compiler.xml | 1 +
.idea/dataSources.xml | 16 +-
.idea/encodings.xml | 1 +
.idea/modules.xml | 1 +
java/pom.xml | 64 ++++---
.../leejk0523/javavue/JavavueApplication.java | 4 +-
.../leejk0523/javavue/config/WebConfig.java | 26 ---
.../controller/UserProfileController.java | 64 -------
.../leejk0523/javavue/entity/UserProfile.java | 66 --------
.../login/controller/UserLoginController.java | 35 ++++
.../javavue/login/dao/UserLoginDao.java | 43 +++++
.../login/service/UserLoginService.java | 11 ++
.../login/service/UserLoginServiceImpl.java | 18 ++
.../javavue/login/vo/AdminMember.java | 27 +++
.../javavue/login/vo/DefaultMember.java | 27 +++
.../com/leejk0523/javavue/login/vo/In.java | 17 ++
.../leejk0523/javavue/login/vo/Member.java | 22 +++
.../com/leejk0523/javavue/login/vo/Out.java | 77 +++++++++
.../javavue/model/AsaAdminMember.java | 160 ++++++++++++++++++
.../com/leejk0523/javavue/model/AsaRole.java | 64 +++++++
.../javavue/model/AsaUserMember.java | 155 +++++++++++++++++
.../com/leejk0523/javavue/model/IstInst.java | 76 +++++++++
.../repository/UserProfileRepository.java | 23 ---
.../src/main/resources/application.properties | 24 +--
24 files changed, 792 insertions(+), 230 deletions(-)
delete mode 100644 java/src/main/java/com/leejk0523/javavue/config/WebConfig.java
delete mode 100644 java/src/main/java/com/leejk0523/javavue/controller/UserProfileController.java
delete mode 100644 java/src/main/java/com/leejk0523/javavue/entity/UserProfile.java
create mode 100644 java/src/main/java/com/leejk0523/javavue/login/controller/UserLoginController.java
create mode 100644 java/src/main/java/com/leejk0523/javavue/login/dao/UserLoginDao.java
create mode 100644 java/src/main/java/com/leejk0523/javavue/login/service/UserLoginService.java
create mode 100644 java/src/main/java/com/leejk0523/javavue/login/service/UserLoginServiceImpl.java
create mode 100644 java/src/main/java/com/leejk0523/javavue/login/vo/AdminMember.java
create mode 100644 java/src/main/java/com/leejk0523/javavue/login/vo/DefaultMember.java
create mode 100644 java/src/main/java/com/leejk0523/javavue/login/vo/In.java
create mode 100644 java/src/main/java/com/leejk0523/javavue/login/vo/Member.java
create mode 100644 java/src/main/java/com/leejk0523/javavue/login/vo/Out.java
create mode 100644 java/src/main/java/com/leejk0523/javavue/model/AsaAdminMember.java
create mode 100644 java/src/main/java/com/leejk0523/javavue/model/AsaRole.java
create mode 100644 java/src/main/java/com/leejk0523/javavue/model/AsaUserMember.java
create mode 100644 java/src/main/java/com/leejk0523/javavue/model/IstInst.java
delete mode 100644 java/src/main/java/com/leejk0523/javavue/repository/UserProfileRepository.java
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index 265d9e4..266fc13 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -2,6 +2,7 @@
+
diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml
index 4bbcf6d..acadce4 100644
--- a/.idea/dataSources.xml
+++ b/.idea/dataSources.xml
@@ -1,13 +1,25 @@
-
+
mariadb
true
true
$PROJECT_DIR$/java/src/main/resources/application.properties
org.mariadb.jdbc.Driver
- jdbc:mariadb://leejk0523.com:3306/profile
+ jdbc:mariadb://localhost:3306/pub
+
+
+
+
+
+ $ProjectFileDir$
+
+
+ mariadb
+ true
+ org.mariadb.jdbc.Driver
+ jdbc:mariadb://192.168.3.233:3306/pub
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
index d862369..6206326 100644
--- a/.idea/encodings.xml
+++ b/.idea/encodings.xml
@@ -2,5 +2,6 @@
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
index ec7edb1..bca9e6e 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -3,6 +3,7 @@
+
\ No newline at end of file
diff --git a/java/pom.xml b/java/pom.xml
index 1725712..c9e7803 100644
--- a/java/pom.xml
+++ b/java/pom.xml
@@ -1,36 +1,27 @@
-
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
+
org.springframework.boot
spring-boot-starter-parent
3.3.5
+
com.leejk0523
javavue
0.0.1-SNAPSHOT
war
javavue
javavue
-
-
-
-
-
-
-
-
-
-
-
-
-
+
17
+
+
org.springframework.boot
spring-boot-starter-data-jpa
@@ -39,24 +30,48 @@
org.springframework.boot
spring-boot-starter-web
-
- org.springframework.boot
- spring-boot-starter-web-services
-
-
org.mariadb.jdbc
mariadb-java-client
- runtime
+
- org.springframework.boot
- spring-boot-starter-tomcat
+ jakarta.validation
+ jakarta.validation-api
+
+
+
+ org.projectlombok
+ lombok
+
provided
+
+
+
+
+ com.querydsl
+ querydsl-jpa
+ 5.0.0
+ jakarta
+
+
+
+ com.querydsl
+ querydsl-apt
+ 5.0.0
+ jakarta
+ provided
+
+
+
+
+ package
+ ${basedir}/target
+ javavue
org.springframework.boot
@@ -64,5 +79,4 @@
-
-
+
\ No newline at end of file
diff --git a/java/src/main/java/com/leejk0523/javavue/JavavueApplication.java b/java/src/main/java/com/leejk0523/javavue/JavavueApplication.java
index 40acb5f..6dfaaaf 100644
--- a/java/src/main/java/com/leejk0523/javavue/JavavueApplication.java
+++ b/java/src/main/java/com/leejk0523/javavue/JavavueApplication.java
@@ -5,9 +5,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class JavavueApplication {
-
public static void main(String[] args) {
SpringApplication.run(JavavueApplication.class, args);
}
-
-}
+}
\ No newline at end of file
diff --git a/java/src/main/java/com/leejk0523/javavue/config/WebConfig.java b/java/src/main/java/com/leejk0523/javavue/config/WebConfig.java
deleted file mode 100644
index b03c15b..0000000
--- a/java/src/main/java/com/leejk0523/javavue/config/WebConfig.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.leejk0523.javavue.config;
-
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.lang.Nullable;
-import org.springframework.web.servlet.config.annotation.CorsRegistry;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
-
-@Configuration
-public class WebConfig {
-// @Bean
-// public WebMvcConfigurer corsConfigurer() {
-// return new WebMvcConfigurer() {
-// @Override
-// public void addCorsMappings(@Nullable CorsRegistry registry) {
-// if (registry != null) {
-// registry.addMapping("/api/**")
-// .allowedOrigins("http://localhost:8080")
-// .allowedMethods("GET", "POST", "PUT", "DELETE")
-// .allowedHeaders("*")
-// .allowCredentials(true);
-// }
-// }
-// };
-// }
-}
\ No newline at end of file
diff --git a/java/src/main/java/com/leejk0523/javavue/controller/UserProfileController.java b/java/src/main/java/com/leejk0523/javavue/controller/UserProfileController.java
deleted file mode 100644
index e2eabf4..0000000
--- a/java/src/main/java/com/leejk0523/javavue/controller/UserProfileController.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package com.leejk0523.javavue.controller;
-
-import com.leejk0523.javavue.entity.UserProfile;
-import com.leejk0523.javavue.repository.UserProfileRepository;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-@RestController
-@RequestMapping("/api")
-public class UserProfileController {
-
- @Autowired
- private UserProfileRepository userProfileRepository;
-
- @GetMapping("")
- public String test() {
- return "Hello World!";
- }
-
- @GetMapping("/all")
- public List getAllUsers() {
-
- return userProfileRepository.findAll();
- }
-
- // 특정 ID로 사용자 조회
- @GetMapping("/{id}")
- public UserProfile getUserById(@PathVariable String id) {
-
- return userProfileRepository.findById(id)
- .orElseThrow(() -> new RuntimeException("사용자를 찾을 수 없습니다."));
- }
-
- // 이름으로 사용자 조회
- @GetMapping("/name/{name}")
- public List getUsersByName(@PathVariable String name) {
-
- return userProfileRepository.findByName(name);
- }
-
- @PostMapping
- public UserProfile createUser(@RequestBody UserProfile user) {
-
- return userProfileRepository.save(user);
- }
-
- @PutMapping("/{id}")
- public UserProfile updateUser(@PathVariable String id, @RequestBody UserProfile userDetails) {
- UserProfile userProfile = userProfileRepository.findById(id).orElseThrow();
- userProfile.setName(userDetails.getName());
- userProfile.setPhone(userDetails.getPhone());
- userProfile.setAddress(userDetails.getAddress());
-
- return userProfileRepository.save(userProfile);
- }
-
- @DeleteMapping("/{id}")
- public void deleteUser(@PathVariable String id) {
-
- userProfileRepository.deleteById(id);
- }
-}
diff --git a/java/src/main/java/com/leejk0523/javavue/entity/UserProfile.java b/java/src/main/java/com/leejk0523/javavue/entity/UserProfile.java
deleted file mode 100644
index 09cf193..0000000
--- a/java/src/main/java/com/leejk0523/javavue/entity/UserProfile.java
+++ /dev/null
@@ -1,66 +0,0 @@
-package com.leejk0523.javavue.entity;
-
-import jakarta.persistence.Column;
-import jakarta.persistence.Entity;
-import jakarta.persistence.Id;
-import jakarta.persistence.Table;
-
-@Entity
-@Table(name = "UserProfile") // 테이블 이름을 명시적으로 설정
-public class UserProfile {
- @Id
- @Column(name = "id", length = 100)
- private String id;
-
- @Column(name = "name", length = 100)
- private String name;
-
- @Column(name = "phone", length = 100)
- private String phone;
-
- @Column(name = "address", length = 100)
- private String address;
-
- @Column(name = "filepath", length = 100)
- private String filepath;
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getPhone() {
- return phone;
- }
-
- public void setPhone(String phone) {
- this.phone = phone;
- }
-
- public String getAddress() {
- return address;
- }
-
- public void setAddress(String address) {
- this.address = address;
- }
-
- public String getFilepath() {
- return filepath;
- }
-
- public void setFilepath(String filepath) {
- this.filepath = filepath;
- }
-}
\ No newline at end of file
diff --git a/java/src/main/java/com/leejk0523/javavue/login/controller/UserLoginController.java b/java/src/main/java/com/leejk0523/javavue/login/controller/UserLoginController.java
new file mode 100644
index 0000000..78819a5
--- /dev/null
+++ b/java/src/main/java/com/leejk0523/javavue/login/controller/UserLoginController.java
@@ -0,0 +1,35 @@
+package com.leejk0523.javavue.login.controller;
+
+import com.leejk0523.javavue.login.service.UserLoginService;
+import com.leejk0523.javavue.login.vo.In;
+import com.leejk0523.javavue.login.vo.Member;
+import lombok.RequiredArgsConstructor;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Objects;
+
+@RestController
+@RequiredArgsConstructor
+public class UserLoginController {
+ private final UserLoginService userLoginService;
+
+ @PostMapping("/api/login")
+ private ResponseEntity login(@RequestBody In in) {
+ final var authorization = userLoginService.login(in);
+
+ if (Objects.isNull(authorization)) {
+ return ResponseEntity.status(HttpStatus.UNAUTHORIZED).build();
+ }
+
+ return ResponseEntity.ok(authorization);
+ }
+
+ @GetMapping("/api/test")
+ public String test() {
+ return "Hello World!";
+ }
+
+
+}
\ No newline at end of file
diff --git a/java/src/main/java/com/leejk0523/javavue/login/dao/UserLoginDao.java b/java/src/main/java/com/leejk0523/javavue/login/dao/UserLoginDao.java
new file mode 100644
index 0000000..feedf23
--- /dev/null
+++ b/java/src/main/java/com/leejk0523/javavue/login/dao/UserLoginDao.java
@@ -0,0 +1,43 @@
+package com.leejk0523.javavue.login.dao;
+
+import com.leejk0523.javavue.login.vo.AdminMember;
+import com.leejk0523.javavue.login.vo.DefaultMember;
+import com.leejk0523.javavue.login.vo.In;
+import com.leejk0523.javavue.login.vo.Member;
+import com.leejk0523.javavue.model.AsaAdminMember;
+import com.leejk0523.javavue.model.QAsaAdminMember;
+import com.leejk0523.javavue.model.QIstInst;
+import com.querydsl.core.types.Projections;
+
+import org.springframework.data.jpa.repository.support.QuerydslRepositorySupport;
+import org.springframework.stereotype.Component;
+
+
+@Component
+public class UserLoginDao extends QuerydslRepositorySupport {
+ public UserLoginDao() {
+ super(AsaAdminMember.class);
+ }
+
+ public Member findByMemberId(In in) {
+ QAsaAdminMember asaAdminMember = QAsaAdminMember.asaAdminMember;
+ QIstInst inst = QIstInst.istInst;
+
+ return from(asaAdminMember)
+ .innerJoin(inst).on(asaAdminMember.instNo.eq(inst.instNo))
+ .select(Projections.bean(
+ AdminMember.class,
+ asaAdminMember.adminId.as("memberId"),
+ asaAdminMember.adminName.as("memberName"),
+ asaAdminMember.adminPassword.as("memberPassword"),
+ asaAdminMember.useYn.as("memberEnabled"),
+ asaAdminMember.adminLoginFailCount.as("memberFailureCount"),
+ asaAdminMember.adminLock.as("memberLocked"),
+ asaAdminMember.instNo.as("instNo"),
+ asaAdminMember.adminDepartment.as("deptNm"),
+ inst.instNm
+ ))
+ .where(asaAdminMember.adminId.eq(in.getMemberId()))
+ .fetchOne();
+ }
+}
\ No newline at end of file
diff --git a/java/src/main/java/com/leejk0523/javavue/login/service/UserLoginService.java b/java/src/main/java/com/leejk0523/javavue/login/service/UserLoginService.java
new file mode 100644
index 0000000..5f95032
--- /dev/null
+++ b/java/src/main/java/com/leejk0523/javavue/login/service/UserLoginService.java
@@ -0,0 +1,11 @@
+package com.leejk0523.javavue.login.service;
+
+import ch.qos.logback.core.net.SyslogOutputStream;
+import com.leejk0523.javavue.login.dao.UserLoginDao;
+import com.leejk0523.javavue.login.vo.In;
+import com.leejk0523.javavue.login.vo.Member;
+import com.leejk0523.javavue.login.vo.Out;
+
+public interface UserLoginService {
+ Member login(In in);
+}
diff --git a/java/src/main/java/com/leejk0523/javavue/login/service/UserLoginServiceImpl.java b/java/src/main/java/com/leejk0523/javavue/login/service/UserLoginServiceImpl.java
new file mode 100644
index 0000000..5d8cb87
--- /dev/null
+++ b/java/src/main/java/com/leejk0523/javavue/login/service/UserLoginServiceImpl.java
@@ -0,0 +1,18 @@
+package com.leejk0523.javavue.login.service;
+
+import com.leejk0523.javavue.login.dao.UserLoginDao;
+import com.leejk0523.javavue.login.vo.In;
+import com.leejk0523.javavue.login.vo.Member;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+
+@Service
+@RequiredArgsConstructor
+public class UserLoginServiceImpl implements UserLoginService {
+ private final UserLoginDao userLoginDAO;
+
+ @Override
+ public Member login(In in) {
+ return userLoginDAO.findByMemberId(in);
+ }
+}
diff --git a/java/src/main/java/com/leejk0523/javavue/login/vo/AdminMember.java b/java/src/main/java/com/leejk0523/javavue/login/vo/AdminMember.java
new file mode 100644
index 0000000..cc732cb
--- /dev/null
+++ b/java/src/main/java/com/leejk0523/javavue/login/vo/AdminMember.java
@@ -0,0 +1,27 @@
+package com.leejk0523.javavue.login.vo;
+
+import com.leejk0523.javavue.model.AsaAdminMember;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class AdminMember implements Member {
+ private AsaAdminMember member;
+ private Long memberNo;
+ private String memberId;
+ private String memberName;
+ private String memberPassword;
+ private String instNo;
+ private Type type;
+ private Boolean memberEnabled;
+ private Boolean memberLocked;
+ private Integer memberFailureCount;
+ private String plainPassword;
+ private String deptNm;
+ private Integer roleLvl;
+}
diff --git a/java/src/main/java/com/leejk0523/javavue/login/vo/DefaultMember.java b/java/src/main/java/com/leejk0523/javavue/login/vo/DefaultMember.java
new file mode 100644
index 0000000..b709928
--- /dev/null
+++ b/java/src/main/java/com/leejk0523/javavue/login/vo/DefaultMember.java
@@ -0,0 +1,27 @@
+package com.leejk0523.javavue.login.vo;
+
+import com.leejk0523.javavue.model.AsaUserMember;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class DefaultMember implements Member {
+ private AsaUserMember member;
+ private Long memberNo;
+ private String memberId;
+ private String memberName;
+ private String memberPassword;
+ private String instNo;
+ private Type type;
+ private Boolean memberEnabled;
+ private Boolean memberLocked;
+ private Integer memberFailureCount;
+ private String plainPassword;
+ private String deptNm;
+ private Integer roleLvl;
+}
diff --git a/java/src/main/java/com/leejk0523/javavue/login/vo/In.java b/java/src/main/java/com/leejk0523/javavue/login/vo/In.java
new file mode 100644
index 0000000..ee780c8
--- /dev/null
+++ b/java/src/main/java/com/leejk0523/javavue/login/vo/In.java
@@ -0,0 +1,17 @@
+package com.leejk0523.javavue.login.vo;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class In implements Serializable {
+ private String memberId;
+ private String password;
+}
diff --git a/java/src/main/java/com/leejk0523/javavue/login/vo/Member.java b/java/src/main/java/com/leejk0523/javavue/login/vo/Member.java
new file mode 100644
index 0000000..0dbfb94
--- /dev/null
+++ b/java/src/main/java/com/leejk0523/javavue/login/vo/Member.java
@@ -0,0 +1,22 @@
+package com.leejk0523.javavue.login.vo;
+
+public interface Member {
+ String getMemberName();
+ Long getMemberNo();
+ String getMemberId();
+ String getMemberPassword();
+ Type getType();
+ Boolean getMemberEnabled();
+ Boolean getMemberLocked();
+ Integer getMemberFailureCount();
+ void setPlainPassword(String plainPassword);
+ String getPlainPassword();
+ String getInstNo();
+ String getDeptNm();
+ Integer getRoleLvl();
+
+ enum Type {
+ USER,
+ ADMIN
+ }
+}
diff --git a/java/src/main/java/com/leejk0523/javavue/login/vo/Out.java b/java/src/main/java/com/leejk0523/javavue/login/vo/Out.java
new file mode 100644
index 0000000..c677e3a
--- /dev/null
+++ b/java/src/main/java/com/leejk0523/javavue/login/vo/Out.java
@@ -0,0 +1,77 @@
+package com.leejk0523.javavue.login.vo;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.leejk0523.javavue.model.AsaRole;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.List;
+
+public class Out implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @JsonIgnore
+ private Long memberNo;
+
+ @JsonIgnore
+ private String memberId;
+
+ @JsonIgnore
+ private String instNo;
+
+ private String instNm;
+
+ @JsonIgnore
+ private List roles;
+
+ @JsonIgnore
+ private List orgList;
+
+ @JsonIgnore
+ private String accessIpAddress;
+
+ @JsonIgnore
+ private Integer roleLvl;
+
+ private String memberName;
+
+ private String deptNm;
+
+ private List