1

有没有办法对任何具有给定类型参数的方法提出建议。我打算将它用于需要输入过滤的类。

举个例子:

@Filtered
class Unsafe {
    public void doStuff (String input) { ... }

    public void doMoreStuff (String input, int value, String name) { ... }
}

我想编写适用于此类方法的任何字符串参数的建议,以便我可以用安全的转义版本替换它们的内容(以防止例如 SQL 注入)。

能不能写出这样的切入点?

4

2 回答 2

0

由于您可以在不同的地方拥有多个字符串,我不知道您如何做到这一点,但是,两个类都应该调用将写入数据库的相同方法。此时,您可以使用环绕来更改字符串以使其安全并改为传递该字符串。

于 2009-05-16T18:27:11.203 回答
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替换为实际模式

于 2013-07-17T11:17:15.640 回答