From 0aa4c3b7ae40407f6e776fe54afd2fde79121a93 Mon Sep 17 00:00:00 2001 From: Guo XIn <371864209@qq.com> Date: Sat, 13 Jan 2024 11:48:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=E5=AE=89=E5=85=A8?= =?UTF-8?q?=E8=AE=BE=E8=AE=A1=E5=87=86=E5=88=99=E8=B4=A8=E9=87=8F=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/keyware/sonar/cxx/CxxPlugin.java | 2 ++ .../rules/SecurityDesignRuleRepository.java | 5 ++-- .../cxx/rules/SecurityDesignWayProfile.java | 27 +++++++++++++++++++ 3 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 sonar-keyware-plugins-cxx/src/main/java/com/keyware/sonar/cxx/rules/SecurityDesignWayProfile.java diff --git a/sonar-keyware-plugins-cxx/src/main/java/com/keyware/sonar/cxx/CxxPlugin.java b/sonar-keyware-plugins-cxx/src/main/java/com/keyware/sonar/cxx/CxxPlugin.java index 22c0e20..dd237b8 100644 --- a/sonar-keyware-plugins-cxx/src/main/java/com/keyware/sonar/cxx/CxxPlugin.java +++ b/sonar-keyware-plugins-cxx/src/main/java/com/keyware/sonar/cxx/CxxPlugin.java @@ -7,6 +7,7 @@ package com.keyware.sonar.cxx; import com.keyware.sonar.cxx.rules.SecurityDesignRuleRepository; +import com.keyware.sonar.cxx.rules.SecurityDesignWayProfile; import org.sonar.api.Plugin; import org.sonar.cxx.AggregateMeasureComputer; import org.sonar.cxx.DensityMeasureComputer; @@ -65,6 +66,7 @@ public final class CxxPlugin implements Plugin { l.add(CxxSonarWayProfile.class); l.add(CxxRuleRepository.class); l.add(SecurityDesignRuleRepository.class); + l.add(SecurityDesignWayProfile.class); // reusable elements l.addAll(getSensorsImpl()); diff --git a/sonar-keyware-plugins-cxx/src/main/java/com/keyware/sonar/cxx/rules/SecurityDesignRuleRepository.java b/sonar-keyware-plugins-cxx/src/main/java/com/keyware/sonar/cxx/rules/SecurityDesignRuleRepository.java index 22f4737..1d42211 100644 --- a/sonar-keyware-plugins-cxx/src/main/java/com/keyware/sonar/cxx/rules/SecurityDesignRuleRepository.java +++ b/sonar-keyware-plugins-cxx/src/main/java/com/keyware/sonar/cxx/rules/SecurityDesignRuleRepository.java @@ -21,14 +21,15 @@ import java.util.List; * @date 2024/1/9 */ public class SecurityDesignRuleRepository implements RulesDefinition { - private final String REPOSITORY_NAME = "C++信息安全性设计准则"; + public final static String REPOSITORY_KEY = "cxx-security-design-rules"; + public final static String REPOSITORY_NAME = "C++信息安全性设计准则"; // 规则检查器的集合,当有新的规则开发完毕后,需要添加到下面的集合中 private final List RULE_CHECKERS = Arrays.asList(ABCVarNameChecker.class); @Override public void define(Context context) { - var repository = context.createRepository("cxx-security-design-rules", CxxLanguage.KEY). + var repository = context.createRepository(REPOSITORY_KEY, CxxLanguage.KEY). setName(REPOSITORY_NAME); new AnnotationBasedRulesDefinition(repository, CxxLanguage.KEY).addRuleClasses(false, RULE_CHECKERS); repository.done(); diff --git a/sonar-keyware-plugins-cxx/src/main/java/com/keyware/sonar/cxx/rules/SecurityDesignWayProfile.java b/sonar-keyware-plugins-cxx/src/main/java/com/keyware/sonar/cxx/rules/SecurityDesignWayProfile.java new file mode 100644 index 0000000..df8d7a8 --- /dev/null +++ b/sonar-keyware-plugins-cxx/src/main/java/com/keyware/sonar/cxx/rules/SecurityDesignWayProfile.java @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2023 - 2024. KeyWare.Co.Ltd All rights reserved. + * 项目名称:C++ 信息安全性设计准则 + * 项目描述:用于检查C++源代码的安全性设计准则的Sonarqube插件 + * 版权说明:本软件属北京关键科技股份有限公司所有,在未获得北京关键科技股份有限公司正式授权情况下,任何企业和个人,不能获取、阅读、安装、传播本软件涉及的任何受知识产权保护的内容。 + */ +package com.keyware.sonar.cxx.rules; + +import com.keyware.sonar.cxx.CxxLanguage; +import org.sonar.api.server.profile.BuiltInQualityProfilesDefinition; +import org.sonarsource.api.sonarlint.SonarLintSide; + +/** + * TODO SecurityDesignWayProfile + * + * @author GuoXin + * @date 2024/1/12 + */ +@SonarLintSide +public class SecurityDesignWayProfile implements BuiltInQualityProfilesDefinition { + @Override + public void define(Context context) { + var way = context.createBuiltInQualityProfile("C++信息安全性设计准则", CxxLanguage.KEY); + way.activateRule(SecurityDesignRuleRepository.REPOSITORY_KEY, "ABCVarNameChecker"); + way.done(); + } +}