현재 시스템에서 서버가 추가로 받을 수 있는 정보는 사용자 IP 주소, 클라이언트 정보 밖에 없다.
shortId
를 생성하여도, shortId
로 privateURL을 유추할 수 없다.userId
도 함께 저장하는 구조로 진행해도 될 것 같다.user
정보를 담을 수 있는 스키마도 생성해야한다.@Component
public class UrlValidator {
private static final String URL_REGEX = "(https?:\\/\\/)?(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_\\+.~#?&//=]*)";
public void validate(String url) {
if (!url.matches(URL_REGEX)) {
throw new Custom4xxException(INVALID_URL_FORMAT);
}
}
}