有没有办法在任何具有给定类型参数的方法上提供建议。我打算将它用于需要输入过滤的类。
举个例子:
@Filtered
class Unsafe {
public void doStuff (String input) { ... }
public void doMoreStuff (String input, int value, String name) { ... }
}
我想编写适用于此类中方法的任何字符串参数的建议,以便我可以使用安全的转义版本替换其内容(以防止例如SQL注入)。
是否可以编写这样的切入点?
答案 0 :(得分:0)
由于你可以在不同的地方有多个字符串,我看不出你怎么做,但是,这两个类应该调用写入数据库的相同方法。此时,您可以使用around来更改字符串以使其安全并通过该字符串。
答案 1 :(得分:0)
在我看来,你仍然需要知道是否有一个模式用于SQL语法中的所有方法。
然后你可以在你的建议中检查方法的参数:
Object around() : PATTERN_FOR_METHODS_THAT_TAKES_IN_SQL_STRING {
Signature sig = thisJoinPointStaticPart.getSignature();
Object[] args = thisJoinPoint.getArgs();
//Check the type of each object in the args, and re-format String type object
return proceed();// Continue with the current joint-point method
}
将 PATTERN_FOR_METHODS_THAT_TAKES_IN_SQL_STRING 替换为实际模式