fix name regex configuration

This commit is contained in:
Jake Potrebic 2020-11-02 17:38:25 -08:00
parent 5a2c474cf1
commit 1983e82e08
No known key found for this signature in database
GPG Key ID: 7C58557EC9C421F8
4 changed files with 11 additions and 6 deletions

View File

@ -26,3 +26,6 @@ hangar:
api: api:
url: "https://hangar-auth.minidigger.me" url: "https://hangar-auth.minidigger.me"
avatar-url: "https://hangar-auth.minidigger.me/avatar/%s?size=120x120" avatar-url: "https://hangar-auth.minidigger.me/avatar/%s?size=120x120"
projects:
name-regex: "^[a-zA-Z0-9-_]{3,}$"

View File

@ -78,6 +78,7 @@ hangar:
user-grid-page-size: 30 user-grid-page-size: 30
max-keywords: 5 max-keywords: 5
unsafe-download-max-age: 10 unsafe-download-max-age: 10
name-regex: "^[a-zA-Z0-9-_]{3,}$"
users: users:
stars-per-page: 5 stars-per-page: 5

View File

@ -1,6 +1,5 @@
package io.papermc.hangar.config.hangar; package io.papermc.hangar.config.hangar;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -12,8 +11,8 @@ import java.util.regex.Pattern;
@ConfigurationProperties(prefix = "hangar.projects") @ConfigurationProperties(prefix = "hangar.projects")
public class ProjectsConfig { public class ProjectsConfig {
@Value("#{T(java.util.regex.Pattern).compile(${hangar.projects.name-regex})}") private String nameRegex = "^[a-zA-Z0-9-_]{3,}$";
private Pattern nameRegex = Pattern.compile("^[a-zA-Z0-9-_]{3,}$"); private Pattern namePattern = Pattern.compile(this.nameRegex);
private int maxNameLen = 25; private int maxNameLen = 25;
private int maxPages = 50; private int maxPages = 50;
private int maxChannels = 5; private int maxChannels = 5;
@ -28,16 +27,17 @@ public class ProjectsConfig {
private int userGridPageSize = 30; private int userGridPageSize = 30;
private Duration unsafeDownloadMaxAge = Duration.ofMinutes(10); private Duration unsafeDownloadMaxAge = Duration.ofMinutes(10);
public Pattern getNameRegex() { public String getNameRegex() {
return nameRegex; return nameRegex;
} }
public Predicate<String> getNameMatcher() { public Predicate<String> getNameMatcher() {
return nameRegex.asMatchPredicate(); return namePattern.asMatchPredicate();
} }
public void setNameRegex(Pattern nameRegex) { public void setNameRegex(String nameRegex) {
this.nameRegex = nameRegex; this.nameRegex = nameRegex;
this.namePattern = Pattern.compile(nameRegex);
} }
public int getMaxNameLen() { public int getMaxNameLen() {

View File

@ -91,6 +91,7 @@ hangar:
user-grid-page-size: 30 user-grid-page-size: 30
max-keywords: 5 max-keywords: 5
unsafe-download-max-age: 10 unsafe-download-max-age: 10
name-regex: "^[a-zA-Z0-9-_]{3,}$"
users: users:
stars-per-page: 5 stars-per-page: 5