更新时间:2023-03-17 GMT+08:00

用户名过长时下载认证凭据失败

用户问题

MRS 3.0.2~MRS 3.1.0版本集群,当用户名超过20位时(添加用户时最长限制为32位),下载Keytab文件会下载失败,状态代码:400 Bad Request。

问题现象

MRS 3.0.2~MRS 3.1.0版本集群,当用户名超过20位时(添加用户时最长限制为32位),下载Keytab文件会下载失败,状态代码:400 Bad Request。

原因分析

需要在主Master节点的“/opt/Bigdata/om-server_*/apache-tomcat-*/webapps/web/WEB-INF/validate”路径下,修改validate-common-config.xml、validate-rule-session.xml、 validate-rule-user.xml三个配置文件。

处理步骤

  1. omm用户登录主Master节点的“/opt/Bigdata/om-server_*/apache-tomcat-*/webapps/web/WEB-INF/validate”路径。

    cd /opt/Bigdata/om-server_*/apache-tomcat-*/webapps/web/WEB-INF/validate

  2. 修改validate-common-config.xml文件。

    vi validate-common-config.xml

    将用户名的“maxLength”参数的值从“32”修改为“64”

     <!-- 用户名 -->
     <validators alias="USER_NAME">
            <validator name="RANGE_LENGTH_VALIDATOR" minLength="3"
                maxLength="64" />
            <validator name="REGEXP_VALIDATOR" rule="^[_a-zA-Z0-9\- ]+$" 
     </validators>

  3. 修改validate-rule-session.xml文件。

    vi validate-rule-session.xml

    将“下载当前用户凭据”的参数“rule”的值从“20”改为“64”

      <!-- 下载当前用户凭据 -->
      <param_validator url="/api/v2/session/user/keytab/download" method="get" errorHandler="com.xxx.bigdata.om.web.api.validate.SpecialValidatorErrorHandler" dataPattern="form">
                    <!-- 参数名:文件名 -->
                    <!--校验规则:userName_13位数字_keytab.tar;区分大小写-->
                    <parameter name="file_name" required="true" errorKey="13-4000005" errorMessage="RESID_OM_API_SESSION_0013">
                            <validator name="REGEXP_VALIDATOR" rule="[\-\w ]{3,64}_\d{13}_keytab\.tar" caseSensitive="true" />
      </parameter>

  4. 修改validate-rule-user.xml文件。

    vi validate-rule-user.xml

    将“下载当前用户凭据”的参数“rule”的值从“20”改为“64”

     <!--下载用户凭据  -->
        <param_validator url="/api/v2/permission/users/keytab/download" method="get" errorHandler="com.xxx.bigdata.om.web.api.validate.SpecialValidatorErrorHandler" dataPattern="form">
                 <!--必输;userName_13位数字_keytab.tar;区分大小写-->
                 <parameter name="file_name" required="true" errorKey="12-4000005" errorMessage="RESID_OM_API_AUTHORITY_0005">
                         <validator name="REGEXP_VALIDATOR" rule="[\-\w ]{3,64}_\d{13}_keytab\.tar" caseSensitive="true" />
                 </parameter>
         </param_validator>

  5. 重启Tomcat,并等待启动成功。

    1. omm用户执行以下命令,查询出Tomcat进程的PID号。

      ps -ef|grep apache-tomcat

    2. 使用kill -9 PID命令强制停止查询出来的Tomcat进程,例如

      kill -9 1203

    3. 执行以下命令进行重启。

      sh ${BIGDATA_HOME}/om-server/tomcat/bin/startup.sh

  6. 重新下载认证凭据。