All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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