Example usage for org.springframework.security.config.http SecurityFilters getOrder

List of usage examples for org.springframework.security.config.http SecurityFilters getOrder

Introduction

In this page you can find the example usage for org.springframework.security.config.http SecurityFilters getOrder.

Prototype

public int getOrder() 

Source Link

Usage

From source file:org.springframework.security.config.http.HttpSecurityBeanDefinitionParser.java

List<OrderDecorator> buildCustomFilterList(Element element, ParserContext pc) {
    List<Element> customFilterElts = DomUtils.getChildElementsByTagName(element, Elements.CUSTOM_FILTER);
    List<OrderDecorator> customFilters = new ArrayList<>();

    final String ATT_AFTER = "after";
    final String ATT_BEFORE = "before";
    final String ATT_POSITION = "position";

    for (Element elt : customFilterElts) {
        String after = elt.getAttribute(ATT_AFTER);
        String before = elt.getAttribute(ATT_BEFORE);
        String position = elt.getAttribute(ATT_POSITION);

        String ref = elt.getAttribute(ATT_REF);

        if (!StringUtils.hasText(ref)) {
            pc.getReaderContext().error("The '" + ATT_REF + "' attribute must be supplied",
                    pc.extractSource(elt));
        }//w w w . ja  va 2 s. c  o  m

        RuntimeBeanReference bean = new RuntimeBeanReference(ref);

        if (WebConfigUtils.countNonEmpty(new String[] { after, before, position }) != 1) {
            pc.getReaderContext().error("A single '" + ATT_AFTER + "', '" + ATT_BEFORE + "', or '"
                    + ATT_POSITION + "' attribute must be supplied", pc.extractSource(elt));
        }

        if (StringUtils.hasText(position)) {
            customFilters.add(new OrderDecorator(bean, SecurityFilters.valueOf(position)));
        } else if (StringUtils.hasText(after)) {
            SecurityFilters order = SecurityFilters.valueOf(after);
            if (order == SecurityFilters.LAST) {
                customFilters.add(new OrderDecorator(bean, SecurityFilters.LAST));
            } else {
                customFilters.add(new OrderDecorator(bean, order.getOrder() + 1));
            }
        } else if (StringUtils.hasText(before)) {
            SecurityFilters order = SecurityFilters.valueOf(before);
            if (order == SecurityFilters.FIRST) {
                customFilters.add(new OrderDecorator(bean, SecurityFilters.FIRST));
            } else {
                customFilters.add(new OrderDecorator(bean, order.getOrder() - 1));
            }
        }
    }

    return customFilters;
}

From source file:org.springframework.security.config.http.HttpSecurityBeanDefinitionParser.java

public OrderDecorator(BeanMetadataElement bean, SecurityFilters filterOrder) {
    this.bean = bean;
    this.order = filterOrder.getOrder();
}