Search in sources :

Example 91 with MySqlWallProvider

use of com.alibaba.druid.wall.spi.MySqlWallProvider in project druid by alibaba.

the class MySqlWallTest59 method test_true.

public void test_true() throws Exception {
    WallProvider provider = new MySqlWallProvider();
    provider.getConfig().setSchemaCheck(true);
    Assert.assertTrue(//
    provider.checkValid(//
    "SELECT * FROM mysql.proc " + //
    "WHERE 1=1 AND db LIKE 'dsmessagedb001'" + " AND name LIKE 'Proc_getRemindinfoByRemindFlag'"));
    Assert.assertEquals(1, provider.getTableStats().size());
}
Also used : WallProvider(com.alibaba.druid.wall.WallProvider) MySqlWallProvider(com.alibaba.druid.wall.spi.MySqlWallProvider) MySqlWallProvider(com.alibaba.druid.wall.spi.MySqlWallProvider)

Example 92 with MySqlWallProvider

use of com.alibaba.druid.wall.spi.MySqlWallProvider in project druid by alibaba.

the class MySqlWallTest60 method test_true.

public void test_true() throws Exception {
    WallProvider provider = new MySqlWallProvider();
    provider.getConfig().setSchemaCheck(true);
    Assert.assertTrue(//
    provider.checkValid("show create table `mysql`.`help_relation`"));
    Assert.assertEquals(1, provider.getTableStats().size());
}
Also used : WallProvider(com.alibaba.druid.wall.WallProvider) MySqlWallProvider(com.alibaba.druid.wall.spi.MySqlWallProvider) MySqlWallProvider(com.alibaba.druid.wall.spi.MySqlWallProvider)

Example 93 with MySqlWallProvider

use of com.alibaba.druid.wall.spi.MySqlWallProvider in project druid by alibaba.

the class MySqlWallTest62 method test_true.

public void test_true() throws Exception {
    WallProvider provider = new MySqlWallProvider();
    provider.getConfig().setSchemaCheck(true);
    Assert.assertTrue(//
    provider.checkValid(//
    "select temp.*, u.CanComment, u.CanBeShared, u.CanForward, COALESCE(b.UserID,0) as isBlocked" + //
    "   , COALESCE(f.UserID,0) as Followed, COALESCE(ff.UserID,0) as IsFollowed" + //
    "   , COALESCE(ul.UserID,0) as liked, COALESCE(fff.UserID,0) as RIsFollowed " + //
    "from (select 294765 as UserID, 0  as RUserID, 7785977 as PicID " + //
    "       union all select 294765 as UserID, 0  as RUserID, 7780341 as PicID) temp     " + //
    "left join Users as u on u.UserID = temp.UserID   " + //
    "left join BlockUser as b on b.UserID = temp.UserID and b.BlockUserID = 294765     " + //
    "left join Fans as f on f.FansID = temp.UserID and f.UserID = 294765   " + //
    "left join Fans as ff ON ff.FansID = 294765 and ff.UserID = temp.UserID   " + //
    "left join Fans as fff ON fff.FansID = 294765 and fff.UserID = temp.RUserID   " + "left join UserLikes as ul on ul.PicID = temp.PicID and ul.UserID = 294765"));
    Assert.assertEquals(4, provider.getTableStats().size());
}
Also used : WallProvider(com.alibaba.druid.wall.WallProvider) MySqlWallProvider(com.alibaba.druid.wall.spi.MySqlWallProvider) MySqlWallProvider(com.alibaba.druid.wall.spi.MySqlWallProvider)

Example 94 with MySqlWallProvider

use of com.alibaba.druid.wall.spi.MySqlWallProvider in project druid by alibaba.

the class MySqlWallTest64 method test_false.

public void test_false() throws Exception {
    WallProvider provider = new MySqlWallProvider();
    provider.getConfig().setSchemaCheck(true);
    Assert.assertFalse(//
    provider.checkValid("SELECT email, passwd, login_id, full_name" + " FROM members" + " WHERE member_id = 3 AND 1=(SELECT COUNT(*) FROM tabname);'"));
    Assert.assertEquals(2, provider.getTableStats().size());
}
Also used : WallProvider(com.alibaba.druid.wall.WallProvider) MySqlWallProvider(com.alibaba.druid.wall.spi.MySqlWallProvider) MySqlWallProvider(com.alibaba.druid.wall.spi.MySqlWallProvider)

Example 95 with MySqlWallProvider

use of com.alibaba.druid.wall.spi.MySqlWallProvider in project druid by alibaba.

the class WallFilter method init.

@Override
public synchronized void init(DataSourceProxy dataSource) {
    if (null == dataSource) {
        LOG.error("dataSource should not be null");
        return;
    }
    if (this.dbType == null || this.dbType.trim().length() == 0) {
        if (dataSource.getDbType() != null) {
            this.dbType = dataSource.getDbType();
        } else {
            this.dbType = JdbcUtils.getDbType(dataSource.getRawJdbcUrl(), "");
        }
    }
    if (dbType == null) {
        dbType = JdbcUtils.getDbType(dataSource.getUrl(), null);
    }
    if (//
    JdbcUtils.MYSQL.equals(dbType) || //
    JdbcUtils.MARIADB.equals(dbType) || JdbcUtils.H2.equals(dbType)) {
        if (config == null) {
            config = new WallConfig(MySqlWallProvider.DEFAULT_CONFIG_DIR);
        }
        provider = new MySqlWallProvider(config);
    } else if (JdbcUtils.ORACLE.equals(dbType) || JdbcUtils.ALI_ORACLE.equals(dbType)) {
        if (config == null) {
            config = new WallConfig(OracleWallProvider.DEFAULT_CONFIG_DIR);
        }
        provider = new OracleWallProvider(config);
    } else if (JdbcUtils.SQL_SERVER.equals(dbType) || JdbcUtils.JTDS.equals(dbType)) {
        if (config == null) {
            config = new WallConfig(SQLServerWallProvider.DEFAULT_CONFIG_DIR);
        }
        provider = new SQLServerWallProvider(config);
    } else if (JdbcUtils.POSTGRESQL.equals(dbType) || JdbcUtils.ENTERPRISEDB.equals(dbType)) {
        if (config == null) {
            config = new WallConfig(PGWallProvider.DEFAULT_CONFIG_DIR);
        }
        provider = new PGWallProvider(config);
    } else if (JdbcUtils.DB2.equals(dbType)) {
        if (config == null) {
            config = new WallConfig(DB2WallProvider.DEFAULT_CONFIG_DIR);
        }
        provider = new DB2WallProvider(config);
    } else {
        throw new IllegalStateException("dbType not support : " + dbType + ", url " + dataSource.getUrl());
    }
    provider.setName(dataSource.getName());
    this.inited = true;
}
Also used : OracleWallProvider(com.alibaba.druid.wall.spi.OracleWallProvider) DB2WallProvider(com.alibaba.druid.wall.spi.DB2WallProvider) MySqlWallProvider(com.alibaba.druid.wall.spi.MySqlWallProvider) PGWallProvider(com.alibaba.druid.wall.spi.PGWallProvider) SQLServerWallProvider(com.alibaba.druid.wall.spi.SQLServerWallProvider)

Aggregations

MySqlWallProvider (com.alibaba.druid.wall.spi.MySqlWallProvider)179 WallProvider (com.alibaba.druid.wall.WallProvider)157 WallCheckResult (com.alibaba.druid.wall.WallCheckResult)17 WallTableStat (com.alibaba.druid.wall.WallTableStat)17 SQLServerWallProvider (com.alibaba.druid.wall.spi.SQLServerWallProvider)12 OracleWallProvider (com.alibaba.druid.wall.spi.OracleWallProvider)10 PGWallProvider (com.alibaba.druid.wall.spi.PGWallProvider)10 Violation (com.alibaba.druid.wall.Violation)2 WallConfig (com.alibaba.druid.wall.WallConfig)2 WallFunctionStat (com.alibaba.druid.wall.WallFunctionStat)1 WallProviderStatValue (com.alibaba.druid.wall.WallProviderStatValue)1 WallSqlStat (com.alibaba.druid.wall.WallSqlStat)1 DB2WallProvider (com.alibaba.druid.wall.spi.DB2WallProvider)1 Map (java.util.Map)1