Skip to content

Commit

Permalink
REFACTOR(auth) :: userFacade -> userReader
Browse files Browse the repository at this point in the history
  • Loading branch information
Woongbin06 committed Nov 13, 2024
1 parent 0b21ca4 commit 4e337cc
Show file tree
Hide file tree
Showing 7 changed files with 40 additions and 16 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.woongeya.zoing.domain.auth.intercepter;
package com.woongeya.zoing.domain.auth.interceptor;

import static org.springframework.http.HttpHeaders.*;

Expand All @@ -11,14 +11,14 @@
import com.woongeya.zoing.domain.auth.annotation.LoginRequired;
import com.woongeya.zoing.domain.auth.exception.TokenNotExistException;
import com.woongeya.zoing.domain.auth.exception.UserIsNotAdminException;
import com.woongeya.zoing.domain.auth.repository.AuthRepository;
import com.woongeya.zoing.domain.auth.service.implementation.AuthReader;
import com.woongeya.zoing.domain.auth.service.implementation.AuthUpdater;
import com.woongeya.zoing.domain.auth.util.BearerTokenExtractor;
import com.woongeya.zoing.domain.auth.util.JwtParser;
import com.woongeya.zoing.domain.user.UserFacade;
import com.woongeya.zoing.domain.user.domain.User;
import com.woongeya.zoing.domain.user.domain.autority.Authority;
import com.woongeya.zoing.domain.user.service.implementation.UserReader;

import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
Expand All @@ -31,20 +31,18 @@ public class AuthInterceptor implements HandlerInterceptor {
private final JwtParser jwtParser;
private final AuthUpdater authUpdater;
private final AuthReader authReader;
private final UserFacade userFacade;
private final UserReader userReader;

@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
if (handler instanceof HandlerMethod hm) {
if (hm.hasMethodAnnotation(LoginOrNot.class)) {
String bearer = request.getHeader(AUTHORIZATION);

if (bearer == null) {
authUpdater.updateCurrentUser(null);
} else {
if (!(bearer == null)) {
String jwt = BearerTokenExtractor.extract(bearer);
Long userId = jwtParser.getIdFromJwt(jwt);
User user = userFacade.getUserById(userId);
User user = userReader.readUser(userId);
authUpdater.updateCurrentUser(user);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
@Repository
@RequestScope
public class AuthRepository {
private User currentUser;
private User currentUser = null;

public User getCurrentUser() {
if (currentUser == null) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.woongeya.zoing.domain.post.presetation;

import com.woongeya.zoing.domain.auth.service.implementation.AuthReader;
import com.woongeya.zoing.domain.post.presetation.dto.request.CreatePostRequest;
import com.woongeya.zoing.domain.post.presetation.dto.response.PostResponse;
import com.woongeya.zoing.domain.post.presetation.dto.response.PostResponseList;
Expand All @@ -9,6 +10,8 @@
import com.woongeya.zoing.domain.post.service.qeury.QueryPostOneService;
import com.woongeya.zoing.domain.post.service.qeury.QueryPostService;
import com.woongeya.zoing.domain.post.service.qeury.QuerySearchPostService;
import com.woongeya.zoing.domain.user.domain.User;

import io.swagger.v3.oas.annotations.Operation;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
package com.woongeya.zoing.domain.post.service.command;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.woongeya.zoing.domain.auth.repository.AuthRepository;
import com.woongeya.zoing.domain.post.domain.repository.PostRepository;
import com.woongeya.zoing.domain.post.presetation.dto.request.CreatePostRequest;
import com.woongeya.zoing.domain.user.UserFacade;
import com.woongeya.zoing.domain.user.domain.User;

import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@Service
@RequiredArgsConstructor
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/com/woongeya/zoing/domain/user/domain/User.java
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ public class User {
private String imgUrl;

@Column(length = 8)
private int age;
private Integer age;

@Column(length = 64)
private String major;
Expand All @@ -49,7 +49,7 @@ public class User {
private Authority authority;

@Builder
public User(String name, String nickName, String email, String githubUrl, String statusMessage, String imgUrl, int age, String major, Authority authority) {
public User(String name, String nickName, String email, String githubUrl, String statusMessage, String imgUrl, Integer age, String major, Authority authority) {
this.name = name;
this.nickName = nickName;
this.email = email;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package com.woongeya.zoing.domain.user.service.implementation;

import org.springframework.stereotype.Service;

import com.woongeya.zoing.domain.user.domain.User;
import com.woongeya.zoing.domain.user.domain.repository.UserRepository;
import com.woongeya.zoing.domain.user.exception.UserNotFoundException;

import lombok.RequiredArgsConstructor;

@Service
@RequiredArgsConstructor
public class UserReader {

private final UserRepository userRepository;

public User readUser(Long userId) {
return userRepository.findById(userId)
.orElseThrow(() -> new UserNotFoundException(userId));
}
}
7 changes: 4 additions & 3 deletions src/main/java/com/woongeya/zoing/global/config/WebConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,12 @@
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

import com.woongeya.zoing.domain.auth.intercepter.AuthInterceptor;
import com.woongeya.zoing.domain.auth.interceptor.AuthInterceptor;
import com.woongeya.zoing.domain.auth.service.implementation.AuthReader;
import com.woongeya.zoing.domain.auth.service.implementation.AuthUpdater;
import com.woongeya.zoing.domain.auth.util.JwtParser;
import com.woongeya.zoing.domain.user.UserFacade;
import com.woongeya.zoing.domain.user.service.implementation.UserReader;

import lombok.RequiredArgsConstructor;

Expand All @@ -27,7 +28,7 @@ public class WebConfig implements WebMvcConfigurer {
private final JwtParser jwtParser;
private final AuthReader authReader;
private final AuthUpdater authUpdater;
private final UserFacade userFacade;
private final UserReader userReader;

@Override
public void addCorsMappings(CorsRegistry registry) {
Expand All @@ -44,6 +45,6 @@ public void addCorsMappings(CorsRegistry registry) {

@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new AuthInterceptor(jwtParser, authUpdater, authReader, userFacade));
registry.addInterceptor(new AuthInterceptor(jwtParser, authUpdater, authReader, userReader));
}
}

0 comments on commit 4e337cc

Please sign in to comment.