Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
62cd7c0
feat: nullable=false 추가
Chan531 Dec 23, 2024
06a09b1
chore(auth): final 키워드 추가
Chan531 Dec 23, 2024
e8758f3
chore(common): final 키워드 추가
Chan531 Dec 23, 2024
307da4b
chore(document): final 키워드 추가
Chan531 Dec 23, 2024
82b9b4a
chore(documenttimeblockmanager): final 키워드 추가
Chan531 Dec 23, 2024
fbeb79f
chore(drive): final 키워드 추가
Chan531 Dec 23, 2024
14eb232
chore(emailverfication): final 키워드 추가
Chan531 Dec 23, 2024
d4d59f2
chore(external): final 키워드 추가
Chan531 Dec 23, 2024
11e285b
chore(Folder): final 키워드 추가
Chan531 Dec 23, 2024
6fd064c
chore(Member): final 키워드 추가
Chan531 Dec 23, 2024
34cfa3e
chore(memberteammanager): final 키워드 추가
Chan531 Dec 23, 2024
ddd4781
chore(note): final 키워드 추가
Chan531 Dec 23, 2024
8010bdd
chore(team): final 키워드 추가
Chan531 Dec 23, 2024
61f092f
chore(timeblock): final 키워드 추가
Chan531 Dec 23, 2024
0d1c96b
delete: TeamVO 제거
Chan531 Dec 23, 2024
b4dae42
refactor(MemberTeamManager): 연관관계 매핑 제거
Chan531 Dec 24, 2024
8d90973
refactor(Team): 연관관계 매핑 제거
Chan531 Dec 24, 2024
4ae6335
chore(MemberTeamManager): 불필요한 import문 제거
Chan531 Dec 24, 2024
76b90df
chore(auth): ResponseStatus 적용
Chan531 Dec 24, 2024
82029c3
chore(document): ResponseStatus 적용
Chan531 Dec 24, 2024
7d364aa
chore(emailverfication): ResponseStatus 적용
Chan531 Dec 24, 2024
eb14fc6
style(FileHandlerControllerDocs): 잘못된 이름 수정
Chan531 Dec 24, 2024
9125ef3
chore(external): ResponseStatus 적용
Chan531 Dec 24, 2024
4fc69f3
chore(folder): ResponseStatus 적용
Chan531 Dec 24, 2024
1267a63
chore(member): ResponseStatus 적용
Chan531 Dec 24, 2024
162a50a
chore(note): ResponseStatus 적용
Chan531 Dec 24, 2024
c984a3e
chore(team): ResponseStatus 적용
Chan531 Dec 24, 2024
47d6e3e
chore(memberteammanager): ResponseStatus 적용
Chan531 Dec 24, 2024
cf2bf65
chore(timeblock): ResponseStatus 적용
Chan531 Dec 24, 2024
8d30e56
chore(notetimeblockmanager): 다대다 관계 테이블 네이밍 컨벤션 통일
Chan531 Dec 24, 2024
baa4646
chore(notedocumentmanager): 다대다 관계 테이블 네이밍 컨벤션 통일
Chan531 Dec 24, 2024
15787a4
chore: 누락된 컨벤션 적용
Chan531 Dec 24, 2024
846bbd1
fix: 빌드 에러 수정
Chan531 Dec 26, 2024
557b606
style: 메소드 선언 순서 변경
Chan531 Dec 26, 2024
419394e
chore: 메소드명 변경
Chan531 Dec 26, 2024
73e1861
delete: URIGenerator
Chan531 Dec 26, 2024
7512e7f
feat: 테이블명 명시 추가
Chan531 Dec 26, 2024
921699c
chore: nullable=false 추가
Chan531 Dec 27, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ public class SecurityConfig {
private final ExceptionHandlerFilter exceptionHandlerFilter;

@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
public SecurityFilterChain filterChain(final HttpSecurity http) throws Exception {
permitSwaggerUri(http);
return http
.csrf(AbstractHttpConfigurer::disable)
Expand Down
23 changes: 14 additions & 9 deletions src/main/java/com/tiki/server/auth/controller/AuthController.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,15 @@
import com.tiki.server.auth.dto.response.ReissueGetResponse;
import com.tiki.server.auth.dto.response.SignInGetResponse;
import com.tiki.server.common.dto.SuccessResponse;
import com.tiki.server.common.support.UriGenerator;
import jakarta.servlet.http.HttpServletRequest;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestController;

import com.tiki.server.auth.service.AuthService;

Expand All @@ -24,18 +29,18 @@ public class AuthController implements AuthControllerDocs {
private final AuthService authService;

@Override
@ResponseStatus(HttpStatus.CREATED)
@PostMapping("/sign-in")
public ResponseEntity<SuccessResponse<SignInGetResponse>> signIn(@RequestBody SignInRequest request) {
public SuccessResponse<SignInGetResponse> signIn(@RequestBody final SignInRequest request) {
SignInGetResponse response = authService.signIn(request);
return ResponseEntity.created(UriGenerator.getUri("/"))
.body(SuccessResponse.success(SUCCESS_SIGN_IN.getMessage(), response));
return SuccessResponse.success(SUCCESS_SIGN_IN.getMessage(), response);
}

@Override
@ResponseStatus(HttpStatus.CREATED)
@GetMapping("/reissue")
public ResponseEntity<SuccessResponse<ReissueGetResponse>> reissue(HttpServletRequest httpServletRequest) {
public SuccessResponse<ReissueGetResponse> reissue(final HttpServletRequest httpServletRequest) {
ReissueGetResponse response = authService.reissueToken(httpServletRequest);
return ResponseEntity.created(UriGenerator.getUri("/"))
.body(SuccessResponse.success(SUCCESS_REISSUE_ACCESS_TOKEN.getMessage(), response));
return SuccessResponse.success(SUCCESS_REISSUE_ACCESS_TOKEN.getMessage(), response);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletRequest;

import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestBody;

@Tag(name = "auth", description = "인증 API")
Expand Down Expand Up @@ -41,7 +40,7 @@ public interface AuthControllerDocs {
description = "서버 내부 오류",
content = @Content(schema = @Schema(implementation = ErrorResponse.class)))}
)
ResponseEntity<SuccessResponse<SignInGetResponse>> signIn(@RequestBody SignInRequest request);
SuccessResponse<SignInGetResponse> signIn(@RequestBody final SignInRequest request);

@Operation(
summary = "엑세스 토큰 재발급",
Expand All @@ -65,6 +64,5 @@ public interface AuthControllerDocs {
description = "서버 내부 오류",
content = @Content(schema = @Schema(implementation = ErrorResponse.class)))}
)
ResponseEntity<SuccessResponse<ReissueGetResponse>> reissue(HttpServletRequest request);

SuccessResponse<ReissueGetResponse> reissue(final HttpServletRequest request);
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ public record ReissueGetResponse(
@NotNull String accessToken
) {

public static ReissueGetResponse from(String accessToken) {
public static ReissueGetResponse from(final String accessToken) {
return ReissueGetResponse.builder().accessToken(accessToken).build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ public record SignInGetResponse(
@NotNull String refreshToken
) {

public static SignInGetResponse from(String accessToken, String refreshToken) {
public static SignInGetResponse from(final String accessToken, final String refreshToken) {
return SignInGetResponse.builder().accessToken(accessToken).refreshToken(refreshToken).build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ public class AuthException extends RuntimeException {

private final ErrorCode errorCode;

public AuthException(ErrorCode errorCode) {
public AuthException(final ErrorCode errorCode) {
super("[AuthException] : " + errorCode.getMessage());
this.errorCode = errorCode;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,15 +26,15 @@ public class CustomAuthenticationEntryPointHandler implements AuthenticationEntr

@Override
public void commence(
HttpServletRequest request,
HttpServletResponse response,
AuthenticationException authException
final HttpServletRequest request,
final HttpServletResponse response,
final AuthenticationException authException
) throws IOException {
log.info("[AuthenticationEntryPoint] " + authException.getMessage());
setResponse(response);
}

private void setResponse(HttpServletResponse response) throws IOException {
private void setResponse(final HttpServletResponse response) throws IOException {
response.setContentType(MediaType.APPLICATION_JSON_VALUE);
response.setCharacterEncoding("UTF-8");
response.setStatus(HttpStatus.UNAUTHORIZED.value());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@ public class ExceptionHandlerFilter extends OncePerRequestFilter {

@Override
protected void doFilterInternal(
@NonNull HttpServletRequest request,
@NonNull HttpServletResponse response,
@NonNull FilterChain filterChain
@NonNull final HttpServletRequest request,
@NonNull final HttpServletResponse response,
@NonNull final FilterChain filterChain
) throws IOException {
try {
filterChain.doFilter(request, response);
Expand All @@ -43,7 +43,7 @@ protected void doFilterInternal(
}
}

private void setResponse(HttpServletResponse response, ErrorCode errorCode)
private void setResponse(final HttpServletResponse response, final ErrorCode errorCode)
throws IOException {
response.setContentType(MediaType.APPLICATION_JSON_VALUE);
response.setCharacterEncoding("UTF-8");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@ public class JwtAuthenticationFilter extends OncePerRequestFilter {

@Override
protected void doFilterInternal(
@NonNull HttpServletRequest request,
@NonNull HttpServletResponse response,
@NonNull FilterChain filterChain
@NonNull final HttpServletRequest request,
@NonNull final HttpServletResponse response,
@NonNull final FilterChain filterChain
) throws IOException, ServletException {
String token = jwtProvider.getTokenFromRequest(request);
if (StringUtils.hasText(token)) {
Expand All @@ -40,7 +40,7 @@ protected void doFilterInternal(
filterChain.doFilter(request, response);
}

private void setAuthenticationContextHolder(long memberId, HttpServletRequest request) {
private void setAuthenticationContextHolder(final long memberId, final HttpServletRequest request) {
UserAuthentication authentication = new UserAuthentication(memberId, null, null);
authentication.setDetails(new WebAuthenticationDetailsSource().buildDetails(request));
SecurityContextHolder.getContext().setAuthentication(authentication);
Expand Down
8 changes: 4 additions & 4 deletions src/main/java/com/tiki/server/auth/jwt/JwtGenerator.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ public class JwtGenerator {
@Value("${jwt.refresh-token-expire-time}")
public long REFRESH_TOKEN_EXPIRE_TIME;

public String generateToken(Authentication authentication, long expiration) {
public String generateToken(final Authentication authentication, final long expiration) {
return Jwts.builder()
.setHeaderParam(TYPE, JWT_TYPE)
.setClaims(generateClaims(authentication))
Expand All @@ -39,15 +39,15 @@ public String generateToken(Authentication authentication, long expiration) {
.compact();
}

public String generateAccessToken(Authentication authentication) {
public String generateAccessToken(final Authentication authentication) {
return generateToken(authentication, ACCESS_TOKEN_EXPIRE_TIME);
}

public String generateRefreshToken(Authentication authentication) {
public String generateRefreshToken(final Authentication authentication) {
return generateToken(authentication, REFRESH_TOKEN_EXPIRE_TIME);
}

private Claims generateClaims(Authentication authentication) {
private Claims generateClaims(final Authentication authentication) {
Claims claims = Jwts.claims();
claims.put("memberId", authentication.getPrincipal());
return claims;
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/com/tiki/server/auth/jwt/JwtProvider.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,15 @@ public class JwtProvider {
@Value("${jwt.secret}")
private String secretKey;

public String getTokenFromRequest(HttpServletRequest request) {
public String getTokenFromRequest(final HttpServletRequest request) {
String accessToken = request.getHeader(Constants.AUTHORIZATION);
if (!StringUtils.hasText(accessToken) || !accessToken.startsWith(Constants.BEARER)) {
return null;
}
return accessToken.substring(Constants.BEARER.length());
}

public long getUserFromJwt(String token) {
public long getUserFromJwt(final String token) {
Claims claims = getBodyFromJwt(token);
return Long.parseLong(claims.get("memberId").toString());
}
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/tiki/server/auth/jwt/JwtValidator.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public class JwtValidator {

private final JwtProvider jwtProvider;

public void validateToken(String token) {
public void validateToken(final String token) {
try {
jwtProvider.getBodyFromJwt(token);
} catch (ExpiredJwtException exception) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@

public class UserAuthentication extends UsernamePasswordAuthenticationToken {
public UserAuthentication(
Object principal,
Object credentials,
Collection<? extends GrantedAuthority> authorities
final Object principal,
final Object credentials,
final Collection<? extends GrantedAuthority> authorities
) {
super(principal, credentials, authorities);
}
Expand Down
14 changes: 7 additions & 7 deletions src/main/java/com/tiki/server/auth/service/AuthService.java
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ public class AuthService {
private final TokenFinder tokenFinder;
private final PasswordEncoder passwordEncoder;

public SignInGetResponse signIn(SignInRequest request) {
public SignInGetResponse signIn(final SignInRequest request) {
Member member = checkMemberEmpty(request);
checkPasswordMatching(member, request.password());
Authentication authentication = createAuthentication(member.getId());
Expand All @@ -53,7 +53,7 @@ public SignInGetResponse signIn(SignInRequest request) {
return SignInGetResponse.from(accessToken, refreshToken);
}

public ReissueGetResponse reissueToken(HttpServletRequest request) {
public ReissueGetResponse reissueToken(final HttpServletRequest request) {
String refreshToken = jwtProvider.getTokenFromRequest(request);
checkTokenEmpty(refreshToken);
long memberId = jwtProvider.getUserFromJwt(refreshToken);
Expand All @@ -64,31 +64,31 @@ public ReissueGetResponse reissueToken(HttpServletRequest request) {
return ReissueGetResponse.from(accessToken);
}

private Member checkMemberEmpty(SignInRequest request) {
private Member checkMemberEmpty(final SignInRequest request) {
return memberFinder.findByEmail(Email.from(request.email())).orElseThrow(() -> new MemberException(INVALID_MEMBER));
}

private void checkTokenEmpty(String token) {
private void checkTokenEmpty(final String token) {
if (StringUtils.isEmpty(token)) {
throw new AuthException(EMPTY_JWT);
}
}

private void checkRefreshToken(String getRefreshToken, Token token) {
private void checkRefreshToken(final String getRefreshToken, final Token token) {
log.info("받은 토큰 : " + getRefreshToken);
log.info("저장 토큰 : " + token.refreshToken());
if (!token.refreshToken().equals(getRefreshToken)) {
throw new AuthException(UNMATCHED_TOKEN);
}
}

private void checkPasswordMatching(Member member, String password) {
private void checkPasswordMatching(final Member member, final String password) {
if (!passwordEncoder.matches(password, member.getPassword())) {
throw new MemberException(UNMATCHED_PASSWORD);
}
}

private Authentication createAuthentication(long memberId) {
private Authentication createAuthentication(final long memberId) {
return new UserAuthentication(memberId, null, null);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public class TokenFinder {

private final TokenRepository tokenRepository;

public Token findById(long id) {
public Token findById(final long id) {
return tokenRepository.findById(id).orElseThrow(() -> new AuthException(UNAUTHORIZED_USER));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ public class TokenSaver {

private final TokenRepository tokenRepository;

public void save(Token token) {
public void save(final Token token) {
tokenRepository.save(token);
}
}
7 changes: 5 additions & 2 deletions src/main/java/com/tiki/server/auth/token/entity/Token.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,10 @@ public record Token(
@NotNull long id,
@NotNull String refreshToken
) {
public static Token of(long id, String refreshToken) {
return Token.builder().id(id).refreshToken(refreshToken).build();
public static Token of(final long id, final String refreshToken) {
return Token.builder()
.id(id)
.refreshToken(refreshToken)
.build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,5 @@
@Repository
public interface TokenRepository extends CrudRepository<Token, Long> {

Optional<Token> findById(long id);
Optional<Token> findById(final long id);
}
2 changes: 1 addition & 1 deletion src/main/java/com/tiki/server/common/dto/BaseResponse.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@
import jakarta.validation.constraints.NotNull;

public interface BaseResponse {
boolean success();
@NotNull boolean success();
@NotNull String message();
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@

@Builder(access = PRIVATE)
public record ErrorCodeResponse(
boolean success,
int code,
@NotNull boolean success,
@NotNull int code,
@NotNull String message
) implements BaseResponse {

public static ErrorCodeResponse of(int code, String message) {
public static ErrorCodeResponse of(final int code, final String message) {
return ErrorCodeResponse.builder()
.success(false)
.code(code)
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/com/tiki/server/common/dto/ErrorResponse.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@

@Builder(access = PRIVATE)
public record ErrorResponse(
boolean success,
@NotNull boolean success,
@NotNull String message
) implements BaseResponse {

public static ErrorResponse of(String message) {
public static ErrorResponse of(final String message) {
return ErrorResponse.builder()
.success(false)
.message(message)
Expand Down
6 changes: 3 additions & 3 deletions src/main/java/com/tiki/server/common/dto/SuccessResponse.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,16 @@

@Builder(access = PRIVATE)
public record SuccessResponse<T>(
boolean success,
@NotNull boolean success,
@NotNull String message,
@JsonInclude(value = NON_NULL) T data
) implements BaseResponse {

public static <T> SuccessResponse<T> success(String message, T data) {
public static <T> SuccessResponse<T> success(final String message, final T data) {
return SuccessResponse.<T>builder().success(true).message(message).data(data).build();
}

public static SuccessResponse<?> success(String message) {
public static SuccessResponse<?> success(final String message) {
return SuccessResponse.builder().success(true).message(message).build();
}
}
Loading
Loading