mirror of
https://github.com/cna-bootcamp/lifesub.git
synced 2026-06-13 13:09:10 +00:00
add testcode
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
package com.unicorn.lifesub.member.config;
|
||||
|
||||
import com.unicorn.lifesub.member.config.jwt.CustomUserDetailsService;
|
||||
import com.unicorn.lifesub.member.config.jwt.JwtTokenProvider;
|
||||
import com.unicorn.lifesub.member.config.jwt.JwtAuthenticationFilter;
|
||||
import com.unicorn.lifesub.member.config.jwt.JwtTokenProvider;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
@@ -2,12 +2,17 @@ package com.unicorn.lifesub.member.controller;
|
||||
|
||||
import com.unicorn.lifesub.common.dto.ApiResponse;
|
||||
import com.unicorn.lifesub.common.dto.JwtTokenDTO;
|
||||
import com.unicorn.lifesub.member.dto.*;
|
||||
import com.unicorn.lifesub.common.exception.BusinessException;
|
||||
import com.unicorn.lifesub.common.exception.InfraException;
|
||||
import com.unicorn.lifesub.member.dto.LoginRequest;
|
||||
import com.unicorn.lifesub.member.dto.LogoutRequest;
|
||||
import com.unicorn.lifesub.member.dto.LogoutResponse;
|
||||
import com.unicorn.lifesub.member.service.MemberService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import jakarta.validation.Valid;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
@@ -24,8 +29,18 @@ public class MemberController {
|
||||
@Operation(summary = "로그인", description = "사용자 ID와 비밀번호로 로그인합니다.")
|
||||
@PostMapping("/login")
|
||||
public ResponseEntity<ApiResponse<JwtTokenDTO>> login(@Valid @RequestBody LoginRequest request) {
|
||||
JwtTokenDTO response = memberService.login(request);
|
||||
return ResponseEntity.ok(ApiResponse.success(response));
|
||||
try {
|
||||
JwtTokenDTO response = memberService.login(request);
|
||||
return ResponseEntity.ok(ApiResponse.success(response));
|
||||
} catch (BusinessException e) {
|
||||
return ResponseEntity
|
||||
.status(HttpStatus.UNAUTHORIZED)
|
||||
.body(ApiResponse.error(e.getErrorCode()));
|
||||
} catch (InfraException e) {
|
||||
return ResponseEntity
|
||||
.status(HttpStatus.UNAUTHORIZED)
|
||||
.body(ApiResponse.error(e.getErrorCode()));
|
||||
}
|
||||
}
|
||||
|
||||
@Operation(summary = "로그아웃", description = "현재 로그인된 사용자를 로그아웃합니다.")
|
||||
|
||||
@@ -55,4 +55,8 @@ public class MemberEntity extends BaseTimeEntity {
|
||||
.roles(member.getRoles())
|
||||
.build();
|
||||
}
|
||||
|
||||
public void updateUserName(String userName) {
|
||||
this.userName = userName;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,15 +33,15 @@ public class MemberServiceImpl implements MemberService {
|
||||
MemberEntity member = memberRepository.findByUserId(request.getUserId())
|
||||
.orElseThrow(() -> new InfraException(ErrorCode.MEMBER_NOT_FOUND));
|
||||
|
||||
if (!passwordEncoder.matches(request.getPassword(), member.getPassword())) {
|
||||
throw new BusinessException(ErrorCode.INVALID_CREDENTIALS);
|
||||
}
|
||||
|
||||
// 사용자의 권한 정보 생성
|
||||
Collection<? extends GrantedAuthority> authorities = member.getRoles().stream()
|
||||
.map(SimpleGrantedAuthority::new)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
if (!passwordEncoder.matches(request.getPassword(), member.getPassword())) {
|
||||
throw new BusinessException(ErrorCode.INVALID_CREDENTIALS);
|
||||
}
|
||||
|
||||
return jwtTokenProvider.createToken(member, authorities);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user