Rearrange project structure

This commit is contained in:
Hanif Hakim
2024-01-20 20:56:02 +07:00
parent 0308a33594
commit c607230f51
27 changed files with 66 additions and 71 deletions

View File

@@ -1,8 +1,8 @@
package com.hakimfauzi23.boilerplatespringsecurity.modules.auth; package com.hakimfauzi23.boilerplatespringsecurity;
import com.hakimfauzi23.boilerplatespringsecurity.modules.auth.jwt.AuthEntryPointJwt; import com.hakimfauzi23.boilerplatespringsecurity.jwt.AuthEntryPointJwt;
import com.hakimfauzi23.boilerplatespringsecurity.modules.auth.jwt.AuthTokenFilter; import com.hakimfauzi23.boilerplatespringsecurity.jwt.AuthTokenFilter;
import com.hakimfauzi23.boilerplatespringsecurity.modules.auth.service.UserDetailsServiceImpl; import com.hakimfauzi23.boilerplatespringsecurity.service.UserDetailsServiceImpl;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;

View File

@@ -1,21 +1,21 @@
package com.hakimfauzi23.boilerplatespringsecurity.modules.auth.controllers; package com.hakimfauzi23.boilerplatespringsecurity.controllers;
import com.hakimfauzi23.boilerplatespringsecurity.modules.auth.data.ERole; import com.hakimfauzi23.boilerplatespringsecurity.data.ERole;
import com.hakimfauzi23.boilerplatespringsecurity.modules.auth.data.RefreshToken; import com.hakimfauzi23.boilerplatespringsecurity.data.RefreshToken;
import com.hakimfauzi23.boilerplatespringsecurity.modules.auth.data.Role; import com.hakimfauzi23.boilerplatespringsecurity.data.Role;
import com.hakimfauzi23.boilerplatespringsecurity.modules.auth.data.User; import com.hakimfauzi23.boilerplatespringsecurity.data.User;
import com.hakimfauzi23.boilerplatespringsecurity.modules.auth.data.payload.request.LoginRequest; import com.hakimfauzi23.boilerplatespringsecurity.data.payload.request.LoginRequest;
import com.hakimfauzi23.boilerplatespringsecurity.modules.auth.data.payload.request.SignupRequest; import com.hakimfauzi23.boilerplatespringsecurity.data.payload.request.SignupRequest;
import com.hakimfauzi23.boilerplatespringsecurity.modules.auth.data.payload.request.TokenRefreshRequest; import com.hakimfauzi23.boilerplatespringsecurity.data.payload.request.TokenRefreshRequest;
import com.hakimfauzi23.boilerplatespringsecurity.modules.auth.data.payload.response.JwtResponse; import com.hakimfauzi23.boilerplatespringsecurity.data.payload.response.JwtResponse;
import com.hakimfauzi23.boilerplatespringsecurity.modules.auth.data.payload.response.MessageResponse; import com.hakimfauzi23.boilerplatespringsecurity.data.payload.response.MessageResponse;
import com.hakimfauzi23.boilerplatespringsecurity.modules.auth.data.payload.response.TokenRefreshResponse; import com.hakimfauzi23.boilerplatespringsecurity.data.payload.response.TokenRefreshResponse;
import com.hakimfauzi23.boilerplatespringsecurity.modules.auth.jwt.JwtUtils; import com.hakimfauzi23.boilerplatespringsecurity.jwt.JwtUtils;
import com.hakimfauzi23.boilerplatespringsecurity.modules.auth.jwt.exception.TokenRefreshException; import com.hakimfauzi23.boilerplatespringsecurity.jwt.exception.TokenRefreshException;
import com.hakimfauzi23.boilerplatespringsecurity.modules.auth.repository.RoleRepository; import com.hakimfauzi23.boilerplatespringsecurity.repository.RoleRepository;
import com.hakimfauzi23.boilerplatespringsecurity.modules.auth.repository.UserRepository; import com.hakimfauzi23.boilerplatespringsecurity.repository.UserRepository;
import com.hakimfauzi23.boilerplatespringsecurity.modules.auth.service.RefreshTokenService; import com.hakimfauzi23.boilerplatespringsecurity.service.RefreshTokenService;
import com.hakimfauzi23.boilerplatespringsecurity.modules.auth.service.UserDetailsImpl; import com.hakimfauzi23.boilerplatespringsecurity.service.UserDetailsImpl;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;

View File

@@ -1,4 +1,4 @@
package com.hakimfauzi23.boilerplatespringsecurity.modules.auth.controllers; package com.hakimfauzi23.boilerplatespringsecurity.controllers;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.CrossOrigin;

View File

@@ -0,0 +1,6 @@
package com.hakimfauzi23.boilerplatespringsecurity.data;
public enum ERole {
ROLE_USER,
ROLE_ADMIN
}

View File

@@ -1,4 +1,4 @@
package com.hakimfauzi23.boilerplatespringsecurity.modules.auth.data; package com.hakimfauzi23.boilerplatespringsecurity.data;
import jakarta.persistence.*; import jakarta.persistence.*;

View File

@@ -1,4 +1,4 @@
package com.hakimfauzi23.boilerplatespringsecurity.modules.auth.data; package com.hakimfauzi23.boilerplatespringsecurity.data;
import jakarta.persistence.*; import jakarta.persistence.*;

View File

@@ -1,4 +1,4 @@
package com.hakimfauzi23.boilerplatespringsecurity.modules.auth.data; package com.hakimfauzi23.boilerplatespringsecurity.data;
import jakarta.persistence.*; import jakarta.persistence.*;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;

View File

@@ -1,4 +1,4 @@
package com.hakimfauzi23.boilerplatespringsecurity.modules.auth.data.payload.request; package com.hakimfauzi23.boilerplatespringsecurity.data.payload.request;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;

View File

@@ -1,4 +1,4 @@
package com.hakimfauzi23.boilerplatespringsecurity.modules.auth.data.payload.request; package com.hakimfauzi23.boilerplatespringsecurity.data.payload.request;
import jakarta.validation.constraints.Email; import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;

View File

@@ -1,4 +1,4 @@
package com.hakimfauzi23.boilerplatespringsecurity.modules.auth.data.payload.request; package com.hakimfauzi23.boilerplatespringsecurity.data.payload.request;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;

View File

@@ -1,4 +1,4 @@
package com.hakimfauzi23.boilerplatespringsecurity.modules.auth.data.payload.response; package com.hakimfauzi23.boilerplatespringsecurity.data.payload.response;
import java.util.List; import java.util.List;

View File

@@ -1,4 +1,4 @@
package com.hakimfauzi23.boilerplatespringsecurity.modules.auth.data.payload.response; package com.hakimfauzi23.boilerplatespringsecurity.data.payload.response;
public class MessageResponse { public class MessageResponse {
private String message; private String message;

View File

@@ -1,4 +1,4 @@
package com.hakimfauzi23.boilerplatespringsecurity.modules.auth.data.payload.response; package com.hakimfauzi23.boilerplatespringsecurity.data.payload.response;
public class TokenRefreshResponse { public class TokenRefreshResponse {

View File

@@ -1,4 +1,4 @@
package com.hakimfauzi23.boilerplatespringsecurity.modules.auth.jwt; package com.hakimfauzi23.boilerplatespringsecurity.jwt;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import jakarta.servlet.ServletException; import jakarta.servlet.ServletException;

View File

@@ -1,6 +1,6 @@
package com.hakimfauzi23.boilerplatespringsecurity.modules.auth.jwt; package com.hakimfauzi23.boilerplatespringsecurity.jwt;
import com.hakimfauzi23.boilerplatespringsecurity.modules.auth.service.UserDetailsServiceImpl; import com.hakimfauzi23.boilerplatespringsecurity.service.UserDetailsServiceImpl;
import jakarta.servlet.FilterChain; import jakarta.servlet.FilterChain;
import jakarta.servlet.ServletException; import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;

View File

@@ -1,19 +1,14 @@
package com.hakimfauzi23.boilerplatespringsecurity.modules.auth.jwt; package com.hakimfauzi23.boilerplatespringsecurity.jwt;
import com.hakimfauzi23.boilerplatespringsecurity.modules.auth.data.User; import com.hakimfauzi23.boilerplatespringsecurity.service.UserDetailsImpl;
import com.hakimfauzi23.boilerplatespringsecurity.modules.auth.service.UserDetailsImpl;
import io.jsonwebtoken.*; import io.jsonwebtoken.*;
import io.jsonwebtoken.io.Decoders; import io.jsonwebtoken.io.Decoders;
import io.jsonwebtoken.security.Keys; import io.jsonwebtoken.security.Keys;
import jakarta.servlet.http.Cookie;
import jakarta.servlet.http.HttpServletRequest;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.ResponseCookie;
import org.springframework.security.core.Authentication; import org.springframework.security.core.Authentication;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.web.util.WebUtils;
import java.security.Key; import java.security.Key;
import java.util.Date; import java.util.Date;

View File

@@ -1,7 +1,7 @@
package com.hakimfauzi23.boilerplatespringsecurity.modules.auth.jwt.advice; package com.hakimfauzi23.boilerplatespringsecurity.jwt.advice;
import com.hakimfauzi23.boilerplatespringsecurity.modules.auth.jwt.exception.ErrorMessage; import com.hakimfauzi23.boilerplatespringsecurity.jwt.exception.ErrorMessage;
import com.hakimfauzi23.boilerplatespringsecurity.modules.auth.jwt.exception.TokenRefreshException; import com.hakimfauzi23.boilerplatespringsecurity.jwt.exception.TokenRefreshException;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.web.bind.annotation.ResponseStatus;

View File

@@ -1,4 +1,4 @@
package com.hakimfauzi23.boilerplatespringsecurity.modules.auth.jwt.exception; package com.hakimfauzi23.boilerplatespringsecurity.jwt.exception;
import java.util.Date; import java.util.Date;

View File

@@ -1,4 +1,4 @@
package com.hakimfauzi23.boilerplatespringsecurity.modules.auth.jwt.exception; package com.hakimfauzi23.boilerplatespringsecurity.jwt.exception;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.web.bind.annotation.ResponseStatus;

View File

@@ -1,6 +0,0 @@
package com.hakimfauzi23.boilerplatespringsecurity.modules.auth.data;
public enum ERole {
ROLE_USER,
ROLE_ADMIN
}

View File

@@ -1,7 +1,7 @@
package com.hakimfauzi23.boilerplatespringsecurity.modules.auth.repository; package com.hakimfauzi23.boilerplatespringsecurity.repository;
import com.hakimfauzi23.boilerplatespringsecurity.modules.auth.data.RefreshToken; import com.hakimfauzi23.boilerplatespringsecurity.data.RefreshToken;
import com.hakimfauzi23.boilerplatespringsecurity.modules.auth.data.User; import com.hakimfauzi23.boilerplatespringsecurity.data.User;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Modifying;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;

View File

@@ -1,7 +1,7 @@
package com.hakimfauzi23.boilerplatespringsecurity.modules.auth.repository; package com.hakimfauzi23.boilerplatespringsecurity.repository;
import com.hakimfauzi23.boilerplatespringsecurity.modules.auth.data.ERole; import com.hakimfauzi23.boilerplatespringsecurity.data.ERole;
import com.hakimfauzi23.boilerplatespringsecurity.modules.auth.data.Role; import com.hakimfauzi23.boilerplatespringsecurity.data.Role;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;

View File

@@ -1,6 +1,6 @@
package com.hakimfauzi23.boilerplatespringsecurity.modules.auth.repository; package com.hakimfauzi23.boilerplatespringsecurity.repository;
import com.hakimfauzi23.boilerplatespringsecurity.modules.auth.data.User; import com.hakimfauzi23.boilerplatespringsecurity.data.User;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;

View File

@@ -1,9 +1,9 @@
package com.hakimfauzi23.boilerplatespringsecurity.modules.auth.service; package com.hakimfauzi23.boilerplatespringsecurity.service;
import com.hakimfauzi23.boilerplatespringsecurity.modules.auth.data.RefreshToken; import com.hakimfauzi23.boilerplatespringsecurity.data.RefreshToken;
import com.hakimfauzi23.boilerplatespringsecurity.modules.auth.jwt.exception.TokenRefreshException; import com.hakimfauzi23.boilerplatespringsecurity.jwt.exception.TokenRefreshException;
import com.hakimfauzi23.boilerplatespringsecurity.modules.auth.repository.RefreshTokenRepository; import com.hakimfauzi23.boilerplatespringsecurity.repository.RefreshTokenRepository;
import com.hakimfauzi23.boilerplatespringsecurity.modules.auth.repository.UserRepository; import com.hakimfauzi23.boilerplatespringsecurity.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;

View File

@@ -1,7 +1,7 @@
package com.hakimfauzi23.boilerplatespringsecurity.modules.auth.service; package com.hakimfauzi23.boilerplatespringsecurity.service;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.hakimfauzi23.boilerplatespringsecurity.modules.auth.data.User; import com.hakimfauzi23.boilerplatespringsecurity.data.User;
import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority; import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetails;

View File

@@ -1,7 +1,7 @@
package com.hakimfauzi23.boilerplatespringsecurity.modules.auth.service; package com.hakimfauzi23.boilerplatespringsecurity.service;
import com.hakimfauzi23.boilerplatespringsecurity.modules.auth.data.User; import com.hakimfauzi23.boilerplatespringsecurity.data.User;
import com.hakimfauzi23.boilerplatespringsecurity.modules.auth.repository.UserRepository; import com.hakimfauzi23.boilerplatespringsecurity.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UserDetailsService;

View File

@@ -1,5 +1,5 @@
spring.datasource.url= jdbc:mysql://localhost:3306/testdb?useSSL=false spring.datasource.url= jdbc:mysql://localhost:3306/testdb?useSSL=false
spring.datasource.username= root spring.datasource.username=root
spring.datasource.password= spring.datasource.password=
spring.jpa.hibernate.ddl-auto= update spring.jpa.hibernate.ddl-auto= update