Aufruf einer privaten Methode in Spring @PreAuthorize
Bin ich mit Spring Security für die Erlaubnis überprüfung der Methoden. Ich möchte rufen eine private Methode zu sammeln, Daten zu senden und zu hasPermission()
Methode. Folgende ist etwas, was ich versuche zu führen, und ich bekomme SpelEvaluationException weil Frühling ist auf der Suche nach der localPrivateMethod
im MethodSecurityExpressionRoot
. Gibt es eine Möglichkeit, dies zu erreichen? Danke.
@PreAuthorize("hasPermission(new Object[]{#arg3, #localPrivateMethod(#arg1,#arg2)}, 'canDoThis')")
public long publicMethod1(long arg1, long arg2, long arg3) {}
private String localPrivateMethod(long a1, long a2) {}
- die Allgemeine Idee hier: stackoverflow.com/questions/13564627/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Werden Sie nicht in der Lage sein zu rufen eine private Methode, aber Sie werden in der Lage sein, um eine Methode aufzurufen, die in einem anderen spring-bean. In meiner app habe ich eine @Komponente namens permissionEvaluator. Ich verweisen dann in einem @PreAuthorize etwa so:
PermissionEvaluatorImpl sieht wie folgt aus:
und PermissionEvaluator ist meine eigene Schnittstelle mit nichts besonderes, nur, was Methoden, die ich brauchen, um zu bewerten.
Private-Methoden können nicht aufgerufen werden, aber Sie können sich auf "diese Komponente" durch
this.
: