3 回答

TA貢獻(xiàn)2036條經(jīng)驗(yàn) 獲得超8個(gè)贊
您需要子類化兩個(gè)類。
首先,設(shè)置一個(gè)新方法表達(dá)式處理程序
<global-method-security>
<expression-handler ref="myMethodSecurityExpressionHandler"/>
</global-method-security>
myMethodSecurityExpressionHandler將是的一個(gè)子類DefaultMethodSecurityExpressionHandler,其覆蓋createEvaluationContext(),設(shè)置的一個(gè)子類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;
}
添加回答
舉報(bào)