Example usage for org.springframework.expression.spel.standard SpelExpressionParser SpelExpressionParser

List of usage examples for org.springframework.expression.spel.standard SpelExpressionParser SpelExpressionParser

Introduction

In this page you can find the example usage for org.springframework.expression.spel.standard SpelExpressionParser SpelExpressionParser.

Prototype

public SpelExpressionParser() 

Source Link

Document

Create a parser with default settings.

Usage

From source file:it.geosolutions.geoserver.sira.security.expression.ExpressionRuleEngine.java

/**
 * Constructor./*from   w w w  .  jav a2  s.  c o  m*/
 */
public ExpressionRuleEngine() {
    this.evalContext = new StandardEvaluationContext();
    this.parser = new SpelExpressionParser();
}

From source file:org.wte4j.impl.format.FormatterRegistry.java

static Formatter createFormatter(Class<? extends Formatter> formatterClass, List<String> args) {
    try {//from   www . ja v  a  2 s. c  om
        String springExpression = createSpringExpression(formatterClass, args);
        ExpressionParser parser = new SpelExpressionParser();
        Expression exp = parser.parseExpression(springExpression);
        return exp.getValue(Formatter.class);
    } catch (Exception e) {
        throw new FormatterInstantiationException(
                "Can not create new Instance of " + formatterClass.getName() + "with args " + args.toString(),
                e);
    }
}

From source file:org.craftercms.security.processors.impl.UrlAccessRestrictionCheckingProcessor.java

/**
 * Sets the map of restrictions. Each key of the map is ANT-style path pattern, used to match the URLs of incoming
 * requests, and each value is a Spring EL expression.
 *//*from  ww w .  j ava2s  .co  m*/
@Required
public void setUrlRestrictions(Map<String, String> restrictions) {
    urlRestrictions = new LinkedHashMap<>();

    ExpressionParser parser = new SpelExpressionParser();

    for (Map.Entry<String, String> entry : restrictions.entrySet()) {
        urlRestrictions.put(entry.getKey(), parser.parseExpression(entry.getValue()));
    }
}

From source file:py.una.pol.karaku.audit.Auditor.java

/**
 * @param annotation//from   ww  w . j  av  a  2 s.c  o  m
 * @param methodSignature
 * @param target
 * @param gS
 */
public void doAudit(Audit annotation, String methodSignature, Object target, Object[] params) {

    AuditTrail auditTrail = new AuditTrail();

    List<AuditTrailDetail> details = new ArrayList<AuditTrailDetail>();
    auditTrail.setMethodSignature(methodSignature);

    auditTrail.setIp(util.getIpAdress());

    auditTrail.setUsername(authorityController.getUsername());

    String[] toAudit = annotation.toAudit();
    String[] paramsToAudit = annotation.paramsToAudit();
    ExpressionParser parser = new SpelExpressionParser();
    if (toAudit != null) {
        for (String string : toAudit) {
            Expression exp = parser.parseExpression(string);

            Object value = exp.getValue(target);
            AuditTrailDetail detail = new AuditTrailDetail();
            detail.setHeader(auditTrail);
            detail.setValue((Serializable) value);
            detail.setExpression(string);
            details.add(detail);
            log.info("Audit {}:{}", string, value);
        }
    }

    if (paramsToAudit != null) {
        for (String string : paramsToAudit) {

            Integer nroParm = getParamNumber(string);
            String expression = removeParamNumber(string);
            Object value;
            if (expression == null) {
                value = params[nroParm];
            } else {
                Expression exp = parser.parseExpression(expression);
                value = exp.getValue(params[nroParm]);
            }
            AuditTrailDetail detail = new AuditTrailDetail();
            detail.setHeader(auditTrail);
            detail.setValue((Serializable) value);
            detail.setExpression(string);
            details.add(detail);
        }
    }
    logic.saveAudit(auditTrail, details);

}

From source file:org.vaadin.addons.springsecurityviewprovider.SpringSecurityViewProvider.java

@SuppressWarnings("unchecked")
public final static ViewProvider createViewProvider(final Authentication authentication,
        Boolean enableCaching) {/*from w ww. j a  v a2  s .c  o m*/
    final SpringSecurityViewProvider springViewProvider = new SpringSecurityViewProvider();
    springViewProvider.enableCaching = enableCaching;

    try {
        final ApplicationContext applicationContext = springViewProvider.applicationContext;

        // Retrieve the default SecurityExpressionHandler 
        final MethodSecurityExpressionHandler securityExpressionHandler = applicationContext
                .getBean(DefaultMethodSecurityExpressionHandler.class);
        // The method that is protected in the end
        final Method getViewMethod = SpringSecurityViewProvider.class.getMethod("getView", String.class);
        // A parser to evaluate parse the permissions.
        final SpelExpressionParser parser = new SpelExpressionParser();

        // Although beans can be retrieved by annotation they must be retrieved by name
        // to avoid instanciating them
        for (String beanName : applicationContext.getBeanDefinitionNames()) {
            final Class<?> beanClass = applicationContext.getType(beanName);
            // only work with Views that are described by our specialed Description
            if (beanClass.isAnnotationPresent(ViewDescription.class)
                    && View.class.isAssignableFrom(beanClass)) {
                final ViewDescription viewDescription = beanClass.getAnnotation(ViewDescription.class);
                // requires no special permissions and can be immediatly added
                if (StringUtils.isBlank(viewDescription.requiredPermissions())) {
                    springViewProvider.views.put(viewDescription.name(), (Class<? extends View>) beanClass);
                }
                // requires permissions
                else {
                    // this is actually borrowed from the code in org.springframework.security.access.prepost.PreAuthorize
                    final EvaluationContext evaluationContext = securityExpressionHandler
                            .createEvaluationContext(authentication, new SimpleMethodInvocation(
                                    springViewProvider, getViewMethod, viewDescription.name()));
                    // only add the view to my provider if the permissions evaluate to true                  
                    if (ExpressionUtils.evaluateAsBoolean(
                            parser.parseExpression(viewDescription.requiredPermissions()), evaluationContext))
                        springViewProvider.views.put(viewDescription.name(), (Class<? extends View>) beanClass);
                }
            }
        }
    } catch (NoSuchMethodException | SecurityException e) {
        // Won't happen
    }

    return springViewProvider;
}

From source file:com.qcadoo.model.internal.ExpressionServiceImpl.java

@Override
public String getValue(final Entity entity, final String expression, final Locale locale) {
    if (StringUtils.isEmpty(expression) || "null".equals(expression)) {
        LOG.warn("Calculating empty expressions");
        return null;
    }//from w  w  w  .  j  a va 2  s. c o m

    ExpressionParser parser = new SpelExpressionParser();
    Expression exp = parser.parseExpression(expression);
    EvaluationContext context = new StandardEvaluationContext();

    if (entity != null) {
        Map<String, Object> values = getValuesForEntity(entity, locale, 2);

        for (Map.Entry<String, Object> entry : values.entrySet()) {
            context.setVariable(entry.getKey(), entry.getValue());
        }
    }

    String value = null;

    try {
        value = String.valueOf(exp.getValue(context));

        if (LOG.isDebugEnabled()) {
            LOG.debug("Calculating value of expression \"" + expression + "\" for " + entity + " : " + value);
        }
    } catch (SpelEvaluationException e) {
        if (SpelMessage.CANNOT_INDEX_INTO_NULL_VALUE.equals(e.getMessageCode())) {
            return "";
        } else {
            LOG.error("Error while calculating value of expression \"" + expression + "\" for " + entity, e);
            value = "!!!";
        }
    }

    if (StringUtils.isEmpty(value) || "null".equals(value)) {
        return null;
    } else {
        return translate(value, locale);
    }
}

From source file:com.mine.cassandra.sink.CassandraSinkPropertiesTests.java

@Test
public void statementExpressionCanBeCustomized() {
    String queryDsl = "Select(FOO.BAR).From(FOO)";
    Expression expression = new SpelExpressionParser().parseExpression(queryDsl);
    AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
    EnvironmentTestUtils.addEnvironment(context, "statement-expression:" + queryDsl);
    context.register(Conf.class);
    context.refresh();//from  www  .  j a v a  2 s  . com
    CassandraSinkProperties properties = context.getBean(CassandraSinkProperties.class);
    assertThat(properties.getStatementExpression().getExpressionString(),
            equalTo(expression.getExpressionString()));
    context.close();
}

From source file:org.arrow.service.DefaultExecutionService.java

/**
 * {@inheritDoc}/*from w  w w  .  j  av a2  s.  c  om*/
 */
@Override
public Object evaluateExpression(String expression) {
    ExpressionParser parser = new SpelExpressionParser();

    StandardEvaluationContext ec = new StandardEvaluationContext();
    ec.setBeanResolver(new BeanFactoryResolver(context));
    Expression expr = parser.parseExpression(expression);

    return expr.getValue(ec);
}

From source file:gov.nih.nci.calims2.ui.generic.crud.CRUDTableDecorator.java

/**
 * Formats the given value according to its type and the current locale.
 * @param column The column//from www  .  j  av a  2 s  . c o  m
 * 
 * @param value The value to format
 * @return The formatted value
 */
public String formatValue(Column column, Object value) {
    if (value == null) {
        return "";
    }
    if (value instanceof I18nEnumeration) {
        return ((I18nEnumeration) value).getLocalizedValue(locale);
    }
    if (value instanceof DateTime) {
        return getDateTimeFormatter(column).print((DateTime) value);
    }
    if (value instanceof BigDecimal) {
        return ((BigDecimal) value).toPlainString();
    }
    if (value instanceof Collection<?>) {
        ExpressionParser expressionParser = new SpelExpressionParser();
        Expression expression = expressionParser.parseExpression(StringUtils.stripToNull(column.getFormat()));
        StringBuilder builder = new StringBuilder();
        for (Object entity : (Collection<?>) value) {
            EvaluationContext context = new StandardEvaluationContext(entity);
            Object expresionValue = evaluateExpression(expression, context);
            if (expresionValue != null) {
                builder.append(expresionValue.toString());
                builder.append("<br/>");
            }
        }
        return builder.toString();
    }
    return value.toString();
}

From source file:io.gravitee.gateway.services.healthcheck.EndpointHealthCheck.java

private void validateAssertions(final HealthStatus.Builder healthBuilder, final HealthCheckResponse response) {
    healthBuilder.success().status(response.getStatus());

    // Run assertions
    if (healthCheck.getExpectation().getAssertions() != null) {
        Iterator<String> assertionIterator = healthCheck.getExpectation().getAssertions().iterator();
        boolean success = true;
        while (success && assertionIterator.hasNext()) {
            String assertion = assertionIterator.next();
            ExpressionParser parser = new SpelExpressionParser();
            Expression expr = parser.parseExpression(assertion);

            StandardEvaluationContext context = new StandardEvaluationContext();
            context.registerFunction("jsonPath",
                    BeanUtils.resolveSignature("evaluate", JsonPathFunction.class));

            context.setVariable("response", response);

            success = expr.getValue(context, boolean.class);

            if (!success) {
                healthBuilder.message("Assertion can not be verified : " + assertion);
            }//from  w w  w. j  av a2  s  .c o m
        }

        healthBuilder.success(success);
    }
}