2021-04-07 TIL(at work)

업데이트:
1 분 소요

신규 회원의 사용 권한을 조정하는 업무

1. 업무 파악

As is

  • 최근 맡게 된 업무에서 신규 회원의 권한을 수정해달라는 요청이 있었다. 이전에는 회원 가입을 하는 동시에 권한이 Y로 설정이 되었는데, 이 값의 defaultN으로 설정해 달라는 것이었다.

서비스 회원 가입 방식

  • 이 서비스는 B2B 서비스이고, 개인이 직접 회원 가입을 하는 방식으로 운영되는 것이 아니라, 회사의 사업부에서 회원 등록을 일괄적으로 진행해 주고, 서비스 이용 금액을 지불하면 업체 사용자들에게 이용 권한을 부여하는 식으로 시스템이 구성되어 있다.
  • 사업부에서 회원 정보가 담긴 엑셀 파일을 업로드 하면, 매일 아침 회원 가입 배치가 실행된다. 그리고 백엔드에서는 각각의 회원이 잘 등록되었는지 로그에 기록하고, 회원 등록에 실패했다면 그 원인을 로그에 기록하고 있다.

회원 가입 API

  • 사용자 등록을 할때 회원 가입 API를 실행하는데, 이때 필수 정보는 서비스 코드, 업체 코드, 사용자 아이디, 사용자 이름, 비밀번호이다. 그리고 삭제 여부(del_yn), 아이디 사용 여부(use_yn) 등의 선택 정보를 등록할 수 있다.
  • 아이디 사용 여부를 지정하면 그 값으로 저장하고, 따로 설정하지 않으면 회원 가입 API에서 이 값을 Y로 설정한다.

2. 업무 진행

API 테스트

  • 먼저 개발계에서 사용자 등록 API를 실행하면서, use_yn의 값을 수동으로 넣었을 때 정상적으로 동작하는지 확인했다. 정상적으로 동작하고, SUCESS를 리턴하고 있었다.
  • 또한 위에서 날린 API의 데이터가 DB에서 정상적으로 조회되는지 확인해 보았고, 정상적으로 조회되고 있는 것을 확인했다.

배치 파일 수정

  • 신규 회원 등록 배치 파일을 실행하는 Launcher 소스를 살펴보았고, 사용자를 등록할 때 필수 정보만을 맵에 담아 파라미터로 넘겨주고 있음을 발견했다. 아래의 예시에서 각각의 value 값들은 FTP서버에 올라온 엑셀 파일을 FileInputStream을 읽어온 값들이다.
Map<String, String> paramMap = new HashMap<>();

paramMap.put("serviceCode", "XXXX");
paramMap.put("companyCode", "XXXX");
paramMap.put("userId", "XXXX");
paramMap.put("userName", "XXXX");
paramMap.put("userPwd", "XXXX");
  • 위의 paramMapuse_yn을 키로 하는 값을 넣는 코드를 추가했다.
paramMap.put("use_yn", "N");

권한이 없는 사용자의 로그인 시도

  • 신규 회원에게 서비스 사용 권한을 부여하지 않도록 회원 가입 배치 파일을 수정했고, 이 코드가 의도했던대로 동작하는 것을 확인했다. 다음은 사용 권한이 없는 사용자가 로그인을 했을 때 서비스 사용을 실제로 잘 막는지 확인해야 한다.
  • 일단 회원이 로그인을 하면 이 회원의 정보를 조회하여 use_yn의 값을 확인하고, 그 값이 Y이면 true를 리턴하여 사용자가 이용하고자 하는 페이지로 접근할 수 있도록 했다. 그리고 이용 권한이 N이면 false를 리턴하여 이용 권한이 없다는 안내 문구를 띄우는 화면단으로 리다이렉트를 하도록 처리했다.
public boolean authIntercepter(String loginId) {
    MemberDao memberDao = new MemberDao();
    String authInfo = memberDao.getAuthInfo(loginId);
    if("N".equalsIgnoreCase(authInfo)) {
        return false;
    }
    return true;
}

태그:

카테고리:

업데이트: