diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index 5bded6e..2205e0a 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -2,27 +2,24 @@
# https://docs.gradle.org/current/userguide/platforms.html#sub::toml-dependencies-format
[versions]
-com-mysql-mysql-connector-j = "8.0.33"
io-jsonwebtoken-jjwt-api = "0.11.5"
io-jsonwebtoken-jjwt-impl = "0.11.5"
io-jsonwebtoken-jjwt-jackson = "0.11.5"
org-mariadb-jdbc-mariadb-java-client = "3.1.4"
org-projectlombok-lombok = "1.18.26"
-org-springdoc-springdoc-openapi-starter-webmvc-ui = "2.1.0"
-org-springframework-boot-spring-boot-starter-data-jpa = "3.1.0"
-org-springframework-boot-spring-boot-starter-security = "3.1.0"
-org-springframework-boot-spring-boot-starter-test = "3.1.0"
-org-springframework-boot-spring-boot-starter-validation = "3.1.0"
-org-springframework-boot-spring-boot-starter-web = "3.1.0"
+org-springdoc-springdoc-openapi-starter-webmvc-ui = "2.8.9"
+org-springframework-boot-spring-boot-starter-data-jpa = "3.5.3"
+org-springframework-boot-spring-boot-starter-security = "3.5.3"
+org-springframework-boot-spring-boot-starter-test = "3.5.3"
+org-springframework-boot-spring-boot-starter-validation = "3.5.3"
+org-springframework-boot-spring-boot-starter-web = "3.5.3"
org-springframework-security-spring-security-test = "6.1.0"
[libraries]
-com-mysql-mysql-connector-j = { module = "com.mysql:mysql-connector-j", version.ref = "com-mysql-mysql-connector-j" }
io-jsonwebtoken-jjwt-api = { module = "io.jsonwebtoken:jjwt-api", version.ref = "io-jsonwebtoken-jjwt-api" }
io-jsonwebtoken-jjwt-impl = { module = "io.jsonwebtoken:jjwt-impl", version.ref = "io-jsonwebtoken-jjwt-impl" }
io-jsonwebtoken-jjwt-jackson = { module = "io.jsonwebtoken:jjwt-jackson", version.ref = "io-jsonwebtoken-jjwt-jackson" }
org-mariadb-jdbc-mariadb-java-client = { module = "org.mariadb.jdbc:mariadb-java-client", version.ref = "org-mariadb-jdbc-mariadb-java-client" }
-org-projectlombok-lombok = { module = "org.projectlombok:lombok", version.ref = "org-projectlombok-lombok" }
org-springdoc-springdoc-openapi-starter-webmvc-ui = { module = "org.springdoc:springdoc-openapi-starter-webmvc-ui", version.ref = "org-springdoc-springdoc-openapi-starter-webmvc-ui" }
org-springframework-boot-spring-boot-starter-data-jpa = { module = "org.springframework.boot:spring-boot-starter-data-jpa", version.ref = "org-springframework-boot-spring-boot-starter-data-jpa" }
org-springframework-boot-spring-boot-starter-security = { module = "org.springframework.boot:spring-boot-starter-security", version.ref = "org-springframework-boot-spring-boot-starter-security" }
diff --git a/pom.xml b/pom.xml
deleted file mode 100644
index e7c4fb3..0000000
--- a/pom.xml
+++ /dev/null
@@ -1,106 +0,0 @@
-
-
- 4.0.0
-
- org.springframework.boot
- spring-boot-starter-parent
- 3.1.0
-
-
- com.bezkoder
- autoflow
- 0.0.1-SNAPSHOT
- spring-security-refresh-token
- Spring Security Refresh Token with JWT example in Spring Boot
-
- 17
-
-
-
- org.springframework.boot
- spring-boot-starter-data-jpa
-
-
-
- org.springframework.boot
- spring-boot-starter-security
-
-
-
- org.springframework.boot
- spring-boot-starter-web
-
-
-
- org.springframework.boot
- spring-boot-starter-validation
-
-
-
- io.jsonwebtoken
- jjwt-api
- 0.11.5
-
-
-
- io.jsonwebtoken
- jjwt-impl
- 0.11.5
- runtime
-
-
-
- io.jsonwebtoken
- jjwt-jackson
- 0.11.5
- runtime
-
-
-
- com.mysql
- mysql-connector-j
- runtime
-
-
-
- org.springframework.boot
- spring-boot-starter-test
- test
-
-
-
- org.springframework.security
- spring-security-test
- test
-
-
- org.mariadb.jdbc
- mariadb-java-client
- runtime
-
-
-
- org.springdoc
- springdoc-openapi-starter-webmvc-ui
- 2.1.0
-
-
-
- org.projectlombok
- lombok
- true
-
-
-
-
-
-
- org.springframework.boot
- spring-boot-maven-plugin
-
-
-
-
-
diff --git a/src/main/java/kr/re/etri/security/jwt/advice/ErrorMessage.java b/src/main/java/kr/re/etri/security/jwt/advice/ErrorMessage.java
index 2f16242..ec40f26 100644
--- a/src/main/java/kr/re/etri/security/jwt/advice/ErrorMessage.java
+++ b/src/main/java/kr/re/etri/security/jwt/advice/ErrorMessage.java
@@ -1,33 +1,15 @@
package kr.re.etri.security.jwt.advice;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
import java.util.Date;
+@Getter
+@AllArgsConstructor
public class ErrorMessage {
private int statusCode;
private Date timestamp;
private String message;
private String description;
-
- public ErrorMessage(int statusCode, Date timestamp, String message, String description) {
- this.statusCode = statusCode;
- this.timestamp = timestamp;
- this.message = message;
- this.description = description;
- }
-
- public int getStatusCode() {
- return statusCode;
- }
-
- public Date getTimestamp() {
- return timestamp;
- }
-
- public String getMessage() {
- return message;
- }
-
- public String getDescription() {
- return description;
- }
-}
\ No newline at end of file
+}
diff --git a/src/main/java/kr/re/etri/security/jwt/models/RefreshToken.java b/src/main/java/kr/re/etri/security/jwt/models/RefreshToken.java
index 7b274df..751c28b 100644
--- a/src/main/java/kr/re/etri/security/jwt/models/RefreshToken.java
+++ b/src/main/java/kr/re/etri/security/jwt/models/RefreshToken.java
@@ -3,9 +3,18 @@ package kr.re.etri.security.jwt.models;
import java.time.Instant;
import jakarta.persistence.*;
-
-@Entity(name = "refreshtoken")
+import lombok.Getter;
+import lombok.Setter;
+import lombok.NoArgsConstructor;
+import org.hibernate.annotations.Comment;
+
+@Comment("새로고침 토큰")
+@Entity(name = "tb_refreshtoken")
+@Getter
+@Setter
+@NoArgsConstructor
public class RefreshToken {
+
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@@ -19,40 +28,4 @@ public class RefreshToken {
@Column(nullable = false)
private Instant expiryDate;
-
- public RefreshToken() {
- }
-
- public long getId() {
- return id;
- }
-
- public void setId(long id) {
- this.id = id;
- }
-
- public User getUser() {
- return user;
- }
-
- public void setUser(User user) {
- this.user = user;
- }
-
- public String getToken() {
- return token;
- }
-
- public void setToken(String token) {
- this.token = token;
- }
-
- public Instant getExpiryDate() {
- return expiryDate;
- }
-
- public void setExpiryDate(Instant expiryDate) {
- this.expiryDate = expiryDate;
- }
-
}
diff --git a/src/main/java/kr/re/etri/security/jwt/models/Role.java b/src/main/java/kr/re/etri/security/jwt/models/Role.java
index 8d23764..08d2428 100644
--- a/src/main/java/kr/re/etri/security/jwt/models/Role.java
+++ b/src/main/java/kr/re/etri/security/jwt/models/Role.java
@@ -1,39 +1,32 @@
package kr.re.etri.security.jwt.models;
import jakarta.persistence.*;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.NoArgsConstructor;
+import lombok.AllArgsConstructor;
+import org.hibernate.annotations.Comment;
@Entity
-@Table(name = "roles")
+@Table(name = "tb_role")
+@Comment("역할")
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
public class Role {
+
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
+ @Comment("아이디")
private Integer id;
@Enumerated(EnumType.STRING)
@Column(length = 20)
+ @Comment("이름")
private ERole name;
- public Role() {
-
- }
-
public Role(ERole name) {
this.name = name;
}
-
- public Integer getId() {
- return id;
- }
-
- public void setId(Integer id) {
- this.id = id;
- }
-
- public ERole getName() {
- return name;
- }
-
- public void setName(ERole name) {
- this.name = name;
- }
-}
\ No newline at end of file
+}
diff --git a/src/main/java/kr/re/etri/security/jwt/models/User.java b/src/main/java/kr/re/etri/security/jwt/models/User.java
index 1c10ffb..49d687f 100644
--- a/src/main/java/kr/re/etri/security/jwt/models/User.java
+++ b/src/main/java/kr/re/etri/security/jwt/models/User.java
@@ -7,20 +7,33 @@ import jakarta.persistence.*;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.NoArgsConstructor;
+import lombok.AllArgsConstructor;
+import org.hibernate.annotations.Comment;
@Entity
-@Table(name = "users",
- uniqueConstraints = {
- @UniqueConstraint(columnNames = "username"),
- @UniqueConstraint(columnNames = "email")
- })
+@Comment("유저")
+@Table(name = "tb_user",
+ uniqueConstraints = {
+ @UniqueConstraint(columnNames = "username"),
+ @UniqueConstraint(columnNames = "email")
+ })
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
public class User {
+
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
+ @Comment("아이디")
private Long id;
@NotBlank
@Size(max = 20)
+ @Comment("유저이름")
private String username;
@NotBlank
@@ -33,57 +46,14 @@ public class User {
private String password;
@ManyToMany(fetch = FetchType.LAZY)
- @JoinTable(name = "user_roles",
- joinColumns = @JoinColumn(name = "user_id"),
- inverseJoinColumns = @JoinColumn(name = "role_id"))
+ @JoinTable(name = "user_roles",
+ joinColumns = @JoinColumn(name = "user_id"),
+ inverseJoinColumns = @JoinColumn(name = "role_id"))
private Set roles = new HashSet<>();
- public User() {
- }
-
public User(String username, String email, String password) {
this.username = username;
this.email = email;
this.password = password;
}
-
- public Long getId() {
- return id;
- }
-
- public void setId(Long id) {
- this.id = id;
- }
-
- public String getUsername() {
- return username;
- }
-
- public void setUsername(String username) {
- this.username = username;
- }
-
- public String getEmail() {
- return email;
- }
-
- public void setEmail(String email) {
- this.email = email;
- }
-
- public String getPassword() {
- return password;
- }
-
- public void setPassword(String password) {
- this.password = password;
- }
-
- public Set getRoles() {
- return roles;
- }
-
- public void setRoles(Set roles) {
- this.roles = roles;
- }
}
diff --git a/src/main/java/kr/re/etri/security/jwt/payload/request/LoginRequest.java b/src/main/java/kr/re/etri/security/jwt/payload/request/LoginRequest.java
index abb0452..5144c88 100644
--- a/src/main/java/kr/re/etri/security/jwt/payload/request/LoginRequest.java
+++ b/src/main/java/kr/re/etri/security/jwt/payload/request/LoginRequest.java
@@ -1,27 +1,16 @@
package kr.re.etri.security.jwt.payload.request;
import jakarta.validation.constraints.NotBlank;
+import lombok.Getter;
+import lombok.Setter;
+@Getter
+@Setter
public class LoginRequest {
+
@NotBlank
private String username;
@NotBlank
private String password;
-
- public String getUsername() {
- return username;
- }
-
- public void setUsername(String username) {
- this.username = username;
- }
-
- public String getPassword() {
- return password;
- }
-
- public void setPassword(String password) {
- this.password = password;
- }
}
diff --git a/src/main/java/kr/re/etri/security/jwt/payload/response/MessageResponse.java b/src/main/java/kr/re/etri/security/jwt/payload/response/MessageResponse.java
index f808880..843399b 100644
--- a/src/main/java/kr/re/etri/security/jwt/payload/response/MessageResponse.java
+++ b/src/main/java/kr/re/etri/security/jwt/payload/response/MessageResponse.java
@@ -1,17 +1,12 @@
package kr.re.etri.security.jwt.payload.response;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+@AllArgsConstructor
public class MessageResponse {
private String message;
-
- public MessageResponse(String message) {
- this.message = message;
- }
-
- public String getMessage() {
- return message;
- }
-
- public void setMessage(String message) {
- this.message = message;
- }
}
diff --git a/src/main/java/kr/re/etri/security/jwt/payload/response/UserInfoResponse.java b/src/main/java/kr/re/etri/security/jwt/payload/response/UserInfoResponse.java
index 523eecb..06a6147 100644
--- a/src/main/java/kr/re/etri/security/jwt/payload/response/UserInfoResponse.java
+++ b/src/main/java/kr/re/etri/security/jwt/payload/response/UserInfoResponse.java
@@ -1,45 +1,17 @@
package kr.re.etri.security.jwt.payload.response;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.Setter;
+
import java.util.List;
+@Getter
+@Setter
+@AllArgsConstructor
public class UserInfoResponse {
private Long id;
private String username;
private String email;
private List roles;
-
- public UserInfoResponse(Long id, String username, String email, List roles) {
- this.id = id;
- this.username = username;
- this.email = email;
- this.roles = roles;
- }
-
- public Long getId() {
- return id;
- }
-
- public void setId(Long id) {
- this.id = id;
- }
-
- public String getEmail() {
- return email;
- }
-
- public void setEmail(String email) {
- this.email = email;
- }
-
- public String getUsername() {
- return username;
- }
-
- public void setUsername(String username) {
- this.username = username;
- }
-
- public List getRoles() {
- return roles;
- }
}
diff --git a/src/main/java/kr/re/etri/security/jwt/security/jwt/AuthTokenFilter.java b/src/main/java/kr/re/etri/security/jwt/security/jwt/AuthTokenFilter.java
index 8cbef7e..8e9b5ca 100644
--- a/src/main/java/kr/re/etri/security/jwt/security/jwt/AuthTokenFilter.java
+++ b/src/main/java/kr/re/etri/security/jwt/security/jwt/AuthTokenFilter.java
@@ -7,6 +7,7 @@ import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
+import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -18,6 +19,7 @@ import org.springframework.web.filter.OncePerRequestFilter;
import kr.re.etri.security.jwt.security.services.UserDetailsServiceImpl;
+@Slf4j
public class AuthTokenFilter extends OncePerRequestFilter {
@Autowired
private JwtUtils jwtUtils;
@@ -25,7 +27,6 @@ public class AuthTokenFilter extends OncePerRequestFilter {
@Autowired
private UserDetailsServiceImpl userDetailsService;
- private static final Logger logger = LoggerFactory.getLogger(AuthTokenFilter.class);
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index a6a931e..0b07387 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -8,7 +8,7 @@ spring.jpa.hibernate.ddl-auto= create-drop
# App Properties
bezkoder.app.jwtCookieName= bezkoder-jwt
bezkoder.app.jwtRefreshCookieName= bezkoder-jwt-refresh
-bezkoder.app.jwtSecret= ======================BezKoder=Spring===========================
+bezkoder.app.jwtSecret= 275511b31c520562d69802ce4a913773102563891563a24062f44b3f312ca2bd034440e81836d1b4ccf4195f43db4c81a4e489a41f1ae0967afe468c9a361f4d
#bezkoder.app.jwtExpirationMs= 86400000
#bezkoder.app.jwtRefreshExpirationMs= 86400000