improve WallFilter, support pg, and fixed MySqlCreateTableParser error

This commit is contained in:
wenshao
2013-03-19 23:24:01 +08:00
parent fd212cd279
commit 668a974e6d
6 changed files with 139 additions and 1 deletions
@@ -279,7 +279,6 @@ public class ConfigFilter extends FilterAdapter {
}
}
@SuppressWarnings("resource")
private InputStream getFileAsStream(String filePath) throws FileNotFoundException {
InputStream inStream = null;
File file = new File(filePath);
@@ -164,6 +164,26 @@ public class MySqlCreateTableParser extends SQLCreateTableParser {
throw new ParserException("TODO " + lexer.token() + " " + lexer.stringVal());
}
}
if (lexer.token() == Token.DEFAULT) {
lexer.nextToken();
if (identifierEquals("CHARACTER")) {
lexer.nextToken();
accept(Token.SET);
if (lexer.token() == Token.EQ) {
lexer.nextToken();
}
stmt.getTableOptions().put("CHARACTER SET", lexer.stringVal());
lexer.nextToken();
} else if (identifierEquals("CHARSET")) {
lexer.nextToken();
if (lexer.token() == Token.EQ) {
lexer.nextToken();
}
stmt.getTableOptions().put("CHARACTER SET", lexer.stringVal());
lexer.nextToken();
}
}
break;
}
@@ -17,10 +17,20 @@ package com.alibaba.druid.wall;
import com.alibaba.druid.wall.spi.MySqlWallProvider;
import com.alibaba.druid.wall.spi.OracleWallProvider;
import com.alibaba.druid.wall.spi.PGWallProvider;
import com.alibaba.druid.wall.spi.SQLServerWallProvider;
public class WallUtils {
public static boolean isValidatePostgres(String sql) {
PGWallProvider provider = new PGWallProvider();
return provider.checkValid(sql);
}
public static boolean isValidatePostgres(String sql, WallConfig config) {
PGWallProvider provider = new PGWallProvider(config);
return provider.checkValid(sql);
}
public static boolean isValidateMySql(String sql) {
MySqlWallProvider provider = new MySqlWallProvider();
return provider.checkValid(sql);