Detect which is the target web application back-end database management system.
()
| 101 | from plugins.dbms.virtuoso import VirtuosoMap |
| 102 | |
| 103 | def setHandler(): |
| 104 | """ |
| 105 | Detect which is the target web application back-end database |
| 106 | management system. |
| 107 | """ |
| 108 | |
| 109 | items = [ |
| 110 | (DBMS.MYSQL, MYSQL_ALIASES, MySQLMap, MySQLConn), |
| 111 | (DBMS.ORACLE, ORACLE_ALIASES, OracleMap, OracleConn), |
| 112 | (DBMS.PGSQL, PGSQL_ALIASES, PostgreSQLMap, PostgreSQLConn), |
| 113 | (DBMS.MSSQL, MSSQL_ALIASES, MSSQLServerMap, MSSQLServerConn), |
| 114 | (DBMS.SQLITE, SQLITE_ALIASES, SQLiteMap, SQLiteConn), |
| 115 | (DBMS.ACCESS, ACCESS_ALIASES, AccessMap, AccessConn), |
| 116 | (DBMS.FIREBIRD, FIREBIRD_ALIASES, FirebirdMap, FirebirdConn), |
| 117 | (DBMS.MAXDB, MAXDB_ALIASES, MaxDBMap, MaxDBConn), |
| 118 | (DBMS.SYBASE, SYBASE_ALIASES, SybaseMap, SybaseConn), |
| 119 | (DBMS.DB2, DB2_ALIASES, DB2Map, DB2Conn), |
| 120 | (DBMS.HSQLDB, HSQLDB_ALIASES, HSQLDBMap, HSQLDBConn), |
| 121 | (DBMS.H2, H2_ALIASES, H2Map, H2Conn), |
| 122 | (DBMS.INFORMIX, INFORMIX_ALIASES, InformixMap, InformixConn), |
| 123 | (DBMS.MONETDB, MONETDB_ALIASES, MonetDBMap, MonetDBConn), |
| 124 | (DBMS.DERBY, DERBY_ALIASES, DerbyMap, DerbyConn), |
| 125 | (DBMS.VERTICA, VERTICA_ALIASES, VerticaMap, VerticaConn), |
| 126 | (DBMS.MCKOI, MCKOI_ALIASES, MckoiMap, MckoiConn), |
| 127 | (DBMS.PRESTO, PRESTO_ALIASES, PrestoMap, PrestoConn), |
| 128 | (DBMS.ALTIBASE, ALTIBASE_ALIASES, AltibaseMap, AltibaseConn), |
| 129 | (DBMS.MIMERSQL, MIMERSQL_ALIASES, MimerSQLMap, MimerSQLConn), |
| 130 | (DBMS.CLICKHOUSE, CLICKHOUSE_ALIASES, ClickHouseMap, ClickHouseConn), |
| 131 | (DBMS.CRATEDB, CRATEDB_ALIASES, CrateDBMap, CrateDBConn), |
| 132 | (DBMS.CUBRID, CUBRID_ALIASES, CubridMap, CubridConn), |
| 133 | (DBMS.CACHE, CACHE_ALIASES, CacheMap, CacheConn), |
| 134 | (DBMS.EXTREMEDB, EXTREMEDB_ALIASES, ExtremeDBMap, ExtremeDBConn), |
| 135 | (DBMS.FRONTBASE, FRONTBASE_ALIASES, FrontBaseMap, FrontBaseConn), |
| 136 | (DBMS.RAIMA, RAIMA_ALIASES, RaimaMap, RaimaConn), |
| 137 | (DBMS.VIRTUOSO, VIRTUOSO_ALIASES, VirtuosoMap, VirtuosoConn), |
| 138 | ] |
| 139 | |
| 140 | _ = max(_ if (conf.get("dbms") or Backend.getIdentifiedDbms() or kb.heuristicExtendedDbms or "").lower() in _[1] else () for _ in items) |
| 141 | if _: |
| 142 | items.remove(_) |
| 143 | items.insert(0, _) |
| 144 | |
| 145 | for dbms, aliases, Handler, Connector in items: |
| 146 | if conf.forceDbms: |
| 147 | if conf.forceDbms.lower() not in aliases: |
| 148 | continue |
| 149 | else: |
| 150 | kb.dbms = conf.dbms = conf.forceDbms = dbms |
| 151 | |
| 152 | if kb.dbmsFilter: |
| 153 | if dbms not in kb.dbmsFilter: |
| 154 | continue |
| 155 | |
| 156 | handler = Handler() |
| 157 | conf.dbmsConnector = Connector() |
| 158 | |
| 159 | if conf.direct: |
| 160 | exception = None |
no test coverage detected
searching dependent graphs…