31 lines
1019 B
Java
31 lines
1019 B
Java
// SPDX-FileCopyrightText: 2022 Paul Schaub <vanitasvitae@fsfe.org>
|
|
//
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package pgp.wkd;
|
|
|
|
import java.util.regex.Matcher;
|
|
import java.util.regex.Pattern;
|
|
|
|
public class WKDAddressHelper {
|
|
|
|
// Firstname Lastname <email@address> [Optional Comment]
|
|
// we are only interested in "email@address"
|
|
private static final Pattern PATTERN_USER_ID = Pattern.compile("^.*\\<([a-zA-Z0-9_!#$%&'*+/=?`{|}~^.-]+@[a-zA-Z0-9.-]+)\\>.*");
|
|
|
|
public static String emailFromUserId(String userId) {
|
|
Matcher matcher = PATTERN_USER_ID.matcher(userId);
|
|
if (!matcher.matches()) {
|
|
throw new IllegalArgumentException("User-ID does not follow excepted pattern \"Firstname Lastname <email.address> [Optional Comment]\"");
|
|
}
|
|
|
|
String email = matcher.group(1);
|
|
return email;
|
|
}
|
|
|
|
public static WKDAddress wkdAddressFromUserId(String userId) {
|
|
String email = emailFromUserId(userId);
|
|
return WKDAddress.fromEmail(email);
|
|
}
|
|
}
|