강의

멘토링

커뮤니티

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

감채님의 프로필 이미지
감채

작성한 질문수

스프링 시큐리티

IP 접속 제한에 대해

해결된 질문

작성

·

697

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 허용은 화이트 리스트로 할 것인지 블랙 리스트로 한 것인지에 따라 구현을 하면 됩니다.

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

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

감채님의 프로필 이미지
감채

작성한 질문수

질문하기