Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 11653x 11653x 11653x 11653x 11653x 34800x 34800x 34800x 34800x 34800x 34800x 34800x 34800x 11653x 11653x 11143x 11143x 11653x 11653x 242x 242x 242x 11653x 11653x 239x 239x 11653x 11653x 316x 316x 71x 71x 245x 245x 316x 7x 7x 238x 316x 245x 245x 1x 1x 1x 1x 245x 238x 238x 238x 11653x 11653x | import * as Expressions from "../abap/2_statements/expressions";
import {Issue} from "../issue";
import {BasicRuleConfig} from "./_basic_rule_config";
import {IRegistry} from "../_iregistry";
import {IRule, IRuleMetadata, RuleTag} from "./_irule";
import {IObject} from "../objects/_iobject";
import {ABAPObject} from "../objects/_abap_object";
import {SyntaxLogic} from "../abap/5_syntax/syntax";
export class UnsecureFAEConf extends BasicRuleConfig {
}
export class UnsecureFAE implements IRule {
private reg: IRegistry;
private conf = new UnsecureFAEConf();
public getMetadata(): IRuleMetadata {
return {
key: "unsecure_fae",
title: "Unsecure FAE",
shortDescription: `Checks for unsecure FAE`,
extendedInformation: `Issues from rule check_syntax must be fixed before this rule takes effect`,
tags: [RuleTag.Experimental, RuleTag.Performance],
};
}
public getConfig() {
return this.conf;
}
public initialize(reg: IRegistry) {
this.reg = reg;
return this;
}
public setConfig(conf: UnsecureFAEConf) {
this.conf = conf;
}
public run(obj: IObject): Issue[] {
const issues: Issue[] = [];
if (!(obj instanceof ABAPObject)) {
return issues;
}
const syntaxResult = new SyntaxLogic(this.reg, obj).run();
if (syntaxResult.issues.length > 0) {
return issues;
}
for (const f of obj.getABAPFiles()) {
// todo
for (const e of f.getStructure()?.findAllExpressions(Expressions.SQLForAllEntries) || []) {
const token = e.getFirstToken();
const message = "Unsecure FAE";
issues.push(Issue.atToken(f, token, message, this.getMetadata().key, this.getConfig().severity));
}
}
return issues;
}
} |