Skip to content

Commit

Permalink
[#3] chore: Security + JWT 관련 파일 생성
Browse files Browse the repository at this point in the history
  • Loading branch information
dl-00-e8 committed Jan 20, 2024
1 parent dbb6b3d commit 87483de
Show file tree
Hide file tree
Showing 4 changed files with 85 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package com.gongjakso.server.global.security;

import com.gongjakso.server.domain.member.repository.MemberRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Service;

@Service
@RequiredArgsConstructor
public class CustomUserDetailsService implements UserDetailsService {

private final MemberRepository memberRepository;

@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
return null;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.gongjakso.server.global.security.jwt;

import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.security.access.AccessDeniedException;
import org.springframework.security.web.access.AccessDeniedHandler;
import org.springframework.stereotype.Component;

import java.io.IOException;

@Component
public class JwtAccessDeniedHandler implements AccessDeniedHandler {
@Override
public void handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException accessDeniedException) throws IOException, ServletException {
accessDeniedException.getCause().printStackTrace();

response.setContentType("application/json;charset=UTF-8");
response.getWriter().write(accessDeniedException.getMessage());
response.setStatus(HttpServletResponse.SC_FORBIDDEN);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package com.gongjakso.server.global.security.jwt;

import com.fasterxml.jackson.databind.ObjectMapper;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.security.core.AuthenticationException;
import org.springframework.security.web.AuthenticationEntryPoint;
import org.springframework.stereotype.Component;

import java.io.IOException;

@Component
public class JwtAuthenticationEntryPoint implements AuthenticationEntryPoint {

// 인증 관련 에러 처리, 401
@Override
public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) throws IOException, ServletException {

Object exception = request.getAttribute("exception");

// if (exception instanceof ErrorCode) {
// ErrorCode errorCode = (ErrorCode) exception;
// setResponse(response,errorCode);
//
// return;
// }

response.sendError(HttpServletResponse.SC_UNAUTHORIZED, authException.getMessage());
}

// private void setResponse(HttpServletResponse response, ErrorCode errorCode) throws IOException{
// response.setContentType("application/json;charset=UTF-8");
// response.setStatus(errorCode.getHttpStatus().value());
//
// ApplicationErrorResponse errorResponse = new ApplicationErrorResponse(errorCode);
// ObjectMapper objectMapper = new ObjectMapper();
// String errorJson = objectMapper.writeValueAsString(errorResponse);
//
// response.getWriter().write(errorJson);
// }
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.gongjakso.server.global.jwt;
package com.gongjakso.server.global.security.jwt;

import org.springframework.stereotype.Component;

Expand Down

0 comments on commit 87483de

Please sign in to comment.