
com.luues.security.configuration.properties.SecurityMatchersProperties Maven / Gradle / Ivy
package com.luues.security.configuration.properties;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import java.util.*;
@Configuration
@ConfigurationProperties(
prefix = "spring.luues.security.ignore"
)
@Data
public class SecurityMatchersProperties {
private List urls = new ArrayList<>();
private List completelyUrls = new ArrayList<>();
private Map igrnUrl = new HashMap<>();
public boolean matches(String url){
if(null == this.completelyUrls || this.completelyUrls.size() <= 0)
return false;
if(this.completelyUrls.contains(url)){
igrnUrl.put(url, true);
return true;
}
if(url.contains("?"))
url = url.substring(0, url.indexOf("?"));
if(url.endsWith("/"))
url = url.substring(0, url.length() - 1);
Boolean igrn = igrnUrl.get(url);
if(null == igrn){
igrn = false;
for(String patterns : this.completelyUrls){
if(patterns.endsWith("*")){
patterns = patterns.replaceAll("\\*", "");
patterns = "^".concat(patterns).concat(".*");
if(url.matches(patterns)){
igrn = true;
break;
}
}else{
if(patterns.equals(url)){
igrn = true;
break;
}
}
}
igrnUrl.put(url, igrn);
}
return igrn;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy