Skip to content

Commit f0dc16d

Browse files
committed
apply password rules to unblock key as a warning
1 parent fb8d483 commit f0dc16d

File tree

1 file changed

+17
-1
lines changed

1 file changed

+17
-1
lines changed

src/main/java/edu/harvard/iq/dataverse/api/ApiBlockingFilter.java

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
import edu.harvard.iq.dataverse.authorization.groups.impl.ipaddress.ip.IpAddress;
44
import edu.harvard.iq.dataverse.engine.command.DataverseRequest;
55
import edu.harvard.iq.dataverse.settings.SettingsServiceBean;
6+
import edu.harvard.iq.dataverse.validation.PasswordValidatorServiceBean;
7+
import jakarta.annotation.PostConstruct;
68
import jakarta.inject.Inject;
79
import jakarta.json.Json;
810
import jakarta.json.JsonObject;
@@ -49,9 +51,12 @@ public class ApiBlockingFilter implements ContainerRequestFilter {
4951
@Inject
5052
private SettingsServiceBean settingsService;
5153

54+
@Inject
55+
private PasswordValidatorServiceBean passwordValidatorService;
56+
5257
@Context
5358
private ResourceInfo resourceInfo;
54-
59+
5560
@Context
5661
private HttpServletRequest httpServletRequest;
5762

@@ -63,6 +68,17 @@ public class ApiBlockingFilter implements ContainerRequestFilter {
6368

6469
private List<Pattern> blockedApiEndpointPatterns = new ArrayList<>();
6570

71+
@PostConstruct
72+
public void init() {
73+
String policy = settingsService.getValueForKey(SettingsServiceBean.Key.BlockedApiPolicy, "drop");
74+
if (UNBLOCK_KEY.equals(policy)) {
75+
String key = settingsService.getValueForKey(SettingsServiceBean.Key.BlockedApiKey);
76+
if (passwordValidatorService.validate(key).size() == 0) {
77+
logger.warning("Weak unblock key detected. Please use a stronger key for better security.");
78+
}
79+
}
80+
}
81+
6682
@Override
6783
public void filter(ContainerRequestContext requestContext) throws IOException {
6884

0 commit comments

Comments
 (0)