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 11353x 11353x 11353x 11353x 11353x 33896x 33896x 33896x 33896x 33896x 33896x 33896x 33896x 11353x 11353x 10855x 10855x 11353x 11353x 236x 236x 236x 11353x 11353x 233x 233x 11353x 11353x 305x 305x 67x 67x 238x 238x 305x 4x 4x 234x 305x 241x 241x 1x 1x 1x 1x 241x 234x 234x 234x 11353x 11353x | 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;
}
} |