강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

zzzzz님의 프로필 이미지
zzzzz

작성한 질문수

코드로 배우는 React 19 with 스프링부트 API서버

DTO와 인증 서비스 강의 질문있습니다.

작성

·

101

·

수정됨

0

포스트맨질문.png.webp

1.DTO와 인증 서비스 13분 38초 화면이 [username user9@aaa.com ,password 1111] postman에서 회원가입하는 화면인건가요?

2.DTO와 인증 서비스 17분 10초 postman 화면도 있는데 이거는 로그인 화면인건가요?

3. 제가 포스트맨에서 username user10@aaa.com ,password 1111으로 넣고 send를 누르면 맨 위 사진과 같이 에러가 나옵니다.

참고로 db 테이블에 username user9@aaa.com ,password 1111 내용이 있습니다.

포스트맨

{

"timestamp": "2025-03-02T20:26:21.086+00:00",

"status": 404,

"error": "Not Found",

"trace": "org.springframework.web.servlet.resource.NoResourceFoundException: No static resource api/member/login.\r\n\tat org.springframework.web.servlet.resource.ResourceHttpRequestHandler.handleRequest(ResourceHttpRequestHandler.java:586)\r\n\tat org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter.handle(HttpRequestHandlerAdapter.java:52)\r\n\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)\r\n\tat org.springframework.web.servlet.DispatcherServlet.doService

 

spring boot 실행시 아래와 같이 나옵니다. Principal이 username이 user9@aaa.com로 안나옴.

[Principal=anonymousUser, Credentials=[PROTECTED], Authenticated=true, Details=WebAuthenticationDetails [RemoteIpAddress=0:0:0:0:0:0:0:1, SessionId=null], Granted Authorities=[ROLE_ANONYMOUS]]

코드 첨부합니다.

https://drive.google.com/file/d/1VtPVj_uRjPC7fYG3gRCeuFKcs2s4wPZm/view?usp=drive_link

답변 1

0

구멍가게코딩단님의 프로필 이미지
구멍가게코딩단
지식공유자

1 ------

13분 38초

API 서버의 경우는 화면이 없기 때문에 서버 호출을 통해서 동작을 확인해야 합니다. 이를 위한 Postman의 요청 작성중인 화면입니다.

2 --------

동일한 호출에 대한 결과 입니다.

3 -------

맨 뒤에 / 가 있습니다.

올려두신 코드는 정상 동작하는 것을 확인했습니다.

 

zzzzz님의 프로필 이미지
zzzzz
질문자

1번과 2번은 제가 질문이 미흡했습니다. 죄송합니다.

1번에 추가질문을 드리자면 CustomSecurityConfig 클래스 파일에 public PasswordEncoder passwordEncoder(){ return new BCryptPasswordEncoder(); } 이 메소드로 인해서 암호가 특수문자를 포함한 형태로 db에 저장되어있는 형태입니다.

아래 테스트 파일로 인해서요.


@SpringBootTest
@Log4j2
public class MemberRepositoryTests {

    @Autowired
    private MemberRepository memberRepository;

    @Autowired
    private PasswordEncoder passwordEncoder;

    @Test
    public void testInsertMember(){

        for (int i = 0; i < 10 ; i++) {

            Member member = Member.builder()
                    .email("user"+i+"@aaa.com")
                    .pw(passwordEncoder.encode("1111"))
                    .nickname("USER"+i)
                    .build();

            member.addRole(MemberRole.USER);

            if(i >= 5){
                member.addRole(MemberRole.MANAGER);
            }

            if(i >=8){
                member.addRole(MemberRole.ADMIN);
            }
            memberRepository.save(member);
        }
    }

 

DTO와 인증 서비스 13분 38초 화면에서는 [username user9@aaa.com ,password 1111]가 포스트맨으로 api 테스트하고 있는데요. 근데 passwordEncoder 이메소드로 인해서 패스워드가 1111로 저장되어있기는 어렵다고 생각됩니다. 그래서 제가 생각하기에는 13분 38초가 MemberRepositoryTests파일과 별도로 회원가입api를 테스트하는거고 17분 10초가 로그인api를 테스트하는거라고 생각했는데 맞나요?

 

 

zzzzz님의 프로필 이미지
zzzzz
질문자

윗 부분에 추가질문 올렸는데 답변 부탁드려요.!

구멍가게코딩단님의 프로필 이미지
구멍가게코딩단
지식공유자

13분 38초는 회원 가입 API 테스트가 아니라 인증 처리가 제대로 이루어 지는 것을 확인합니다. 테스트 코드에서 이미 회원 데이터를 추가했습니다.

 

zzzzz님의 프로필 이미지
zzzzz

작성한 질문수

질문하기