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 64 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 11089x 11089x 11089x 11089x 11089x 33121x 33121x 33121x 33121x 33121x 33121x 33121x 33121x 11089x 11089x 10569x 10569x 11089x 11089x 247x 247x 247x 11089x 11089x 244x 244x 11089x 11089x 330x 330x 71x 71x 259x 259x 330x 9x 9x 250x 330x 257x 257x 1x 1x 1x 1x 257x 250x 250x 250x 11089x 11089x | 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;
}
}
|