package com.revolsys.spring.security; import java.util.Map; import java.util.Map.Entry; import org.springframework.expression.EvaluationContext; import org.springframework.expression.spel.support.StandardEvaluationContext; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContext; import org.springframework.security.core.context.SecurityContextHolder; import com.revolsys.ui.web.utils.HttpServletUtils; public class SpringExpressionUtil { public static EvaluationContext newEvaluationContext(final Object object) { final EvaluationContext evaluationContext = new StandardEvaluationContext(object); final Map<String, String> pathVariables = HttpServletUtils.getPathVariables(); setVariables(evaluationContext, pathVariables); return evaluationContext; } public static EvaluationContext newSecurityEvaluationContext() { final SecurityContext securityContext = SecurityContextHolder.getContext(); final Authentication authentication = securityContext.getAuthentication(); final MethodSecurityExpressionRoot root = new MethodSecurityExpressionRoot(authentication); final EvaluationContext evaluationContext = newEvaluationContext(root); return evaluationContext; } public static void setVariables(final EvaluationContext evaluationContext, final Map<String, String> variables) { for (final Entry<String, String> variable : variables.entrySet()) { final String name = variable.getKey(); final String value = variable.getValue(); evaluationContext.setVariable(name, value); } } }