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 10780x 10780x 10780x 10780x 10780x 32180x 32180x 32180x 32180x 32180x 32180x 32180x 32180x 10780x 10780x 10268x 10268x 10780x 10780x 243x 243x 243x 10780x 10780x 240x 240x 10780x 10780x 317x 317x 71x 71x 246x 246x 317x 7x 7x 239x 317x 246x 246x 1x 1x 1x 1x 246x 239x 239x 239x 10780x 10780x | 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;
}
} |