Gibt es eine Möglichkeit Beratung mit einem Parameter eines bestimmten Typs auf jeder Methode zu setzen. Ich plane, dies für eine Klasse zu verwenden, die Eingabefilterung benötigt.Platzierung Beratung zu jedem Parameter eines bestimmten Typs in AspectJ
Als Beispiel:
@Filtered
class Unsafe {
public void doStuff (String input) { ... }
public void doMoreStuff (String input, int value, String name) { ... }
}
ich Beratung schreiben möchten, die in dieser Klasse zu jedem String-Parameter der Methoden gilt, so dass ich ihren Inhalt mit einem Safe, entkam, Version ersetzen kann (verhindern zB SQL-Injektion).
Ist es möglich, ein solches pointcut zu schreiben?
Ja, ich habe es auf der Datenbank-Ebene tun könnte, aber das noch hindert mich nicht an Cross-Side-Scripting-Injection. Deshalb wollte ich das an der Fassade machen, die zuerst Eingaben aus dem Web akzeptiert. Trickreich. –
Warum eine Anmerkung nicht durch jede Methode setzen, die ungefiltert ist, wie @Unfiltered, und dann können Sie einen Aspekt für die Anmerkung schreiben, aber man kann immer noch wissen müssen, welche Zielparameter zu. –