iPortal如何灵活设置用户名及密码的安全规则

作者:yx

目录

前言

一、配置文件介绍

1、<passwordRules>节点

注意事项:

2、<usernameRules>节点

二、应用实例

1、配置文件设置

2、验证扩展结果

三、结果展示



前言

SuperMap iPortal提供了扩展账户信息合规度校验规则的能力,您可以灵活定制满足自身项目需求的用户名、密码合规度校验规则,用于校验您创建的账户信息是否合规。您需要通过修改配置文件的方式来扩展定制用户名、密码校验规则,填写内容包括用于合规度校验的正则表达式、字典或字符串,以及校验失败时提示的报错信息等。

一、配置文件介绍

在产品包根目录 %SuperMap iPortal_HOME%/webapps/iportal/WEB-INF/config下,accountInfoComplianceRules.xml 文件中内置了 SuperMap iPortal当前已经支持的账户信息合规度校验规则。其中,密码规则详见:用户管理

配置文件根节点为<rules>元素,包括以下两个子节点:

1、<passwordRules>节点

为用于配置密码合规度校验规则的集合,可以包含多个<rule>标签。每个<rule>标签对应一种密码合规度校验规则,包含合规度规则的校验方式(<type>)、规则名(<name>)、规则表达式(<expression>)、中文报错信息(<zhErrMsg>)以及英文报错信息(<enErrMsg>)等配置项。

<passwordRules>节点示例如下所示:

cpp 复制代码
<passwordRules>
        <rule>
            <type>regularExpression</type>
            <name>PwdLength</name>
            <expression><![CDATA[\S{8,}]]></expression>
            <zhErrMsg>密码长度至少为8字符</zhErrMsg>
            <enErrMsg>Password must contain at least 8 characters</enErrMsg>
        </rule>
        <rule>
            <type>dictionary</type>
            <name>NotContainsContinuationCharacter</name>
            <expression>
                <condition>notcontainscontinuouschars,3</condition>
                <dictionary>abcdefghijklmnopqrstuvwxyz</dictionary>
                <dictionary>ABCDEFGHIJKLMNOPQRSTUVWXYZ</dictionary>
                <dictionary>0123456789</dictionary>
            </expression>
            <zhErrMsg>密码不能包含三个或三个以上连续字符</zhErrMsg>
            <enErrMsg>Password can't contain three or more continuous characters and numbers</enErrMsg>
        </rule>
        <rule>
            <type>StringMatch</type>
            <name>notContainsUsernameAndReverse</name>
            <expression>
                <condition>notcontainsextraparamsandreverse</condition>
                <paramContent>${username}</paramContent>
            </expression>
            <zhErrMsg>密码不能包含用户名及其倒写</zhErrMsg>
            <enErrMsg>Pasword can't contain the user name and its reverse</enErrMsg>
        </rule>
</passwordRules>

其中,

  • <type>:用于设置校验合规度规则的方式,包括正则表达式(regularExpression)、字典(dictionary)和字符串匹配(StringMatch)等三种类型。
  • <name>:用于设置合规度规则的规则名。
  • <expression>:用于设置合规度规则的表达式。当<type>为正则表达式(regularExpression)时设置描述合规度规则的正则表达式,并且没有子节点;为字典(dictionary)和字符串匹配(StringMatch)时,包括如下子节点:
  • <condition>:用于设置合规度规则的匹配条件。当<type>为字典(dictionary)时,需根据规则设置与字典的关联条件及与字典关联的字符个数,用","连接(例如:notcontainscontinuouschars,3);当<type>为字符串匹配(StringMatch)时,需根据规则设置与字符串的关联条件,如:notcontainsextraparamsandreverse。
  • <dictionary>:用于设置合规度规则的关联字典。当<type>为字典(dictionary)时,该参数可选。在同一个<expression>节点中,可设置多个<dictionary>。
  • <paramContent>:用于设置合规度规则的关联字符串。当<type>为字符串匹配(StringMatch)时,该参数可选。在同一个<expression>节点中,仅可设置一个<paramContent>,且<paramContent>中只能包含一个字符串,例如填写为 test。
  • <zhErrMsg>:用于设置校验合规度规则时失败时的中文提示信息。
  • <enErrMsg>:用于设置校验合规度规则时失败时的英文提示信息。

注意事项:

  1. 请注意,当前仅支持在<type>为字典(dictionary)时设置不包含连续字符(notcontainscontinuouschars)和在<type>为字符串匹配(StringMatch)时设置不包含字符及其倒写(notcontainsextraparamsandreverse)两种关联条件。
  2. 请注意,在配置文件内置的规则中,${username} 指用户设置的用户名字符,该配置仅能作为整体使用或替换。

2、<usernameRules>节点

为用于配置用户名合规度校验规则的集合,可以包含多个<rule>标签。每个<rule>标签对应一种用户名合规度校验规则,包含合规度规则的校验方式(<type>)、规则名(<name>)、规则表达式(<expression>)、中文报错信息(<zhErrMsg>)以及英文报错信息(<enErrMsg>)等配置项。

<usernameRules>节点配置方法同<passwordRules>节点,示例如下所示:

cpp 复制代码
<usernameRules>
        <rule>
            <type>regularExpression</type>
            <name>UsernameLength</name>
            <expression><![CDATA[^[a-zA-Z][a-zA-Z0-9_-]{3,17}$]]></expression>
            <zhErrMsg>用户名必须是数字、字母、下划线或中划线组成,且以字母开头</zhErrMsg>
            <enErrMsg>User name must be composed of numbers, letters, underscores or dash, and begin with a letter.</enErrMsg>
        </rule>
</usernameRules>

二、应用实例

1、配置文件设置

在产品包根目录 %SuperMap iPortal_HOME%webapps/iportal/WEB-INF/config 下,accountInfoComplianceRules.xml 文件的子节点<passwordRules>中添加如下内容:

cpp 复制代码
<passwordRules>
        ...
    <rule>
        <type>dictionary</type>
        <name>NotContainsKeyboardVerticalContinuationCharacter</name>
        <expression>
            <condition>notcontainscontinuouschars,2</condition>
            <dictionary>1qaz</dictionary>
            <dictionary>2wsxl</dictionary>
             ...
            <dictionary>9ol.</dictionary>
        </expression>
        <zhErrMsg>根据键盘阵列,密码不能包含两个或两个以上竖排连续的字符</zhErrMsg>
        <enErrMsg>Password can't contain two or more continuous vertical characters on the keyboard</enErrMsg>
    </rule>
</passwordRules>

由于该规则涉及多个字符,且无法使用正则表达式进行表达,因此使用字典的方式进行校验。其中<dictionary>参数仅列出三组,您可以根据实际情况进行补充设置。

2、验证扩展结果

保存配置文件并重启 SuperMap iPortal,在初始化向导-创建管理员账户、用户管理-添加用户、账户设置-修改密码和强制修改密码等功能中设置密码,即可对输入的密码进行该项合规度规则校验。

注:若对管理员账户密码进行重置,需在重启 SuperMap iPortal前,停止 SuperMap iPortal服务,并执行【SuperMap iPortal_HOME】\bin目录下的 passwordreset.bat/passwordreset.sh 文件。


三、结果展示

相关推荐
黎阳之光7 小时前
【黎阳之光:以无线专网与视频孪生,赋能智慧广电与数字中国】
算法·安全·智慧城市·数字孪生
lplum_11 小时前
2025第十届“楚慧杯”湖北省网络与数据安全实践能力竞赛 wp
网络·安全·web安全·网络安全·系统安全·密码学·新人首发
汇智信科12 小时前
煤矿双重预防管理信息系统:筑牢矿山安全生产数字化防线
安全·煤矿
九河云12 小时前
教育行业上云实践:从在线课堂到智慧校园的架构升级
大数据·运维·人工智能·安全·架构·数字化转型
Jay-r14 小时前
OpenClaw养龙虾工具安全风险分析:五大隐患及防护建议引言
网络·python·安全·web安全·ai助手·openclaw
混凝土拌意大利面14 小时前
区块链|WEB3:时间长河共识算法(Time River Consensus Algorithm)
安全·web安全·区块链·共识算法
陈天伟教授16 小时前
人工智能应用- 机器做梦:06.动态梦境:小结
人工智能·神经网络·安全·cnn·xss
漫雾_16 小时前
被 Lazarus 长期利用的漏洞:Windows AppLocker 内核模式权限提升漏洞复现
c++·windows·安全
shuangti16 小时前
315特别关注:爽提全链路食安管控,为校园外卖加上“安全锁”
安全
国科安芯16 小时前
抗辐照加固CAN FD芯片的商业航天与车规级应用解析
科技·嵌入式硬件·安全·fpga开发·安全威胁分析