• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

IP 접속 제한에 대해

22.11.28 02:53 작성 조회수 497

1

안녕하세요.
9) 아이피 접속 제한하기 - CustomIpAddressVoter 강에서
'등록한 IP에 대한 접속 제한'이 아닌
'등록한 IP에 대한 접속 허용'으로 구현하였는데
제 생각에는 일반적인 웹 서비스에서는 전자가 사용될 것으로 생각되어 의아함을 느꼈습니다.

그래서 아래와 같이 등록된 IP에 대해 접속이 제한되도록 바꾸었습니다.

@Override
public int vote(Authentication authentication, Object object, Collection<ConfigAttribute> configList) {

        if (!(authentication.getDetails() instanceof WebAuthenticationDetails)) {
            return ACCESS_DENIED;
        }

        WebAuthenticationDetails details = (WebAuthenticationDetails) authentication.getDetails();
        String address = details.getRemoteAddress();
        List<String> accessIpList = securityResourceService.getAccessIpList();

        for (String ipAddress : accessIpList) {
            if (address.equals(ipAddress)) {
                throw new AccessDeniedException("Invalid IP Address");
            }
        }

        return ACCESS_ABSTAIN;
}

 

  1. '등록한 IP에 대한 접속 허용' 으로 구현한 이유가 있을까요?

  2. 수정한 코드에 잘못된 부분이 있다면 지적 부탁드립니다. (기능은 잘 되는 것으로 보입니다.)

답변 1

답변을 작성해보세요.

1

IP 허용은 화이트 리스트로 할 것인지 블랙 리스트로 한 것인지에 따라 구현을 하면 됩니다.

강의에서는 화이트 리스트로 한 것이라 보시면 됩니다.

소스 코드는 특별한 문제는 없어 보입니다.