# sonar-wordcheck-plugin **Repository Path**: cncasc/sonar-wordcheck-plugin ## Basic Information - **Project Name**: sonar-wordcheck-plugin - **Description**: 一款用于SonarQube的高性能敏感词检测插件,支持代码内容检测、代码注释检测功能。 - **Primary Language**: Java - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: http://bbs.cloud-edu.cn/project.php - **GVP Project**: No ## Statistics - **Stars**: 55 - **Forks**: 0 - **Created**: 2020-07-17 - **Last Updated**: 2024-10-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README Sonar WordCheck Plugin ======================= 一款用于SonarQube的高性能敏感词检测插件,支持代码内容检测、代码注释检测功能。 本插件是基于SonarQube代码质量检测工具编写的一个为了检测用户项目的代码及注释中是否包含敏感词(带有敏感政治倾向、暴力倾向、不健康色彩的词或不文明语等)的插件,通过sonar-scanner工具扫描项目后,若存在敏感词,在sonarqube管理平台的项目-问题中会找到存在敏感词的文件及内容。 插件非常适用于需要开源的项目代码,能有效避免程序人员提交的代码或注释内容中包含不合适的敏感词语而对公司形象有所损失。 本插件使用[ToolGood.Words](https://gitee.com/toolgood/ToolGood.Words)进行敏感词的搜索校验工作。 ## 运行环境 - JRE 8 - Sonarqube 7.1 - node - yarn - maven ## 编译 进入项目根目录,执行Maven打包命令即可 ``` mvn clean package ``` 编译完成将在 target目录下生成 sonar-wordcheck-plugin-1.0-SNAPSHOT.jar `注意:需要先编译页面后再编译java文件,这样页面代码才会打进jar包里面` - 如果以上打包不成功可试试这样执行(正常情况上面命令即可) ``` mvn clean package npm run bulid mvn package ``` ## 部署 将编译生成的jar文件直接放到SonarQube安装目录的插件文件目录(如:E:/sonarqube-7.1/extensions/plugins)中,然后重新启动SonarQube服务。 打开SonarQube管理页面使用 插件默认在8种语言上增加了标签为sensitive-word的两个规则,目前支持的语言有: JavaScript、Java、TypeScript、PHP、Flex、Python、XML、C# 插件为每种语言默认配置了一个质量配置项WordCheck,如果需要同时使用默认检测规则和敏感词检测的则需要进行下一步的配置 ## 词库 进行SonarQube管理页面“配置”菜单,在“配置”下拉菜单中选择“敏感词管理”,进入敏感词词库管理页面 ## 自定义词库 进入“敏感词管理”页面,增加修改或删除一条敏感词,将在插件安装目录生成一个词库文件(如:E:/sonarqube-7.1/extensions/plugins/sensitive-word.txt),可以按格式任意修改作为自定义词库 ## 扫描时动态定义词库 * 需扫描的项目配置文件(sonar-project.properties)中配置 ``` #词库地址,默认发get请求获取 #thesaurus.urls=http://api.xxxx.com/sensitive-word.json #词库内容,使用英文逗号(,)、英文分号(;)、或 | 分隔,优先级比urls高 #thesaurus.text=敏感词1,敏感词2,敏感词3 ``` * 执行扫描的命令行中增加参数 ``` sonar-scanner -Dthesaurus.text=敏感词1,敏感词2,敏感词3 ``` > `注:如果配置url则接口必须返回一个list的json格式` >词库优先级
>`命令行text>配置文件text>命令行url>配置文件url>平台自定义>默认词库`