3 回答

TA貢獻2036條經(jīng)驗 獲得超8個贊
您需要子類化兩個類。
首先,設(shè)置一個新方法表達式處理程序
<global-method-security>
<expression-handler ref="myMethodSecurityExpressionHandler"/>
</global-method-security>
myMethodSecurityExpressionHandler將是的一個子類DefaultMethodSecurityExpressionHandler,其覆蓋createEvaluationContext(),設(shè)置的一個子類MethodSecurityExpressionRoot的MethodSecurityEvaluationContext。
例如:
@Override
public EvaluationContext createEvaluationContext(Authentication auth, MethodInvocation mi) {
MethodSecurityEvaluationContext ctx = new MethodSecurityEvaluationContext(auth, mi, parameterNameDiscoverer);
MethodSecurityExpressionRoot root = new MyMethodSecurityExpressionRoot(auth);
root.setTrustResolver(trustResolver);
root.setPermissionEvaluator(permissionEvaluator);
root.setRoleHierarchy(roleHierarchy);
ctx.setRootObject(root);
return ctx;
}
添加回答
舉報