package fr.openwide.core.jpa.security.access.expression.method; import org.aopalliance.intercept.MethodInvocation; import org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler; import org.springframework.security.access.expression.method.MethodSecurityExpressionOperations; import org.springframework.security.core.Authentication; import fr.openwide.core.jpa.security.access.expression.CoreMethodSecurityExpressionRoot; import fr.openwide.core.jpa.security.service.ICorePermissionEvaluator; public class CoreMethodSecurityExpressionHandler extends DefaultMethodSecurityExpressionHandler { private ICorePermissionEvaluator corePermissionEvaluator; @Override protected MethodSecurityExpressionOperations createSecurityExpressionRoot(Authentication authentication, MethodInvocation invocation) { CoreMethodSecurityExpressionRoot root = new CoreMethodSecurityExpressionRoot(authentication); root.setCorePermissionEvaluator(getCorePermissionEvaluator()); return root; } protected ICorePermissionEvaluator getCorePermissionEvaluator() { return corePermissionEvaluator; } public void setCorePermissionEvaluator(ICorePermissionEvaluator corePermissionEvaluator) { super.setPermissionEvaluator(corePermissionEvaluator); this.corePermissionEvaluator = corePermissionEvaluator; } }