
# 用户名过长导致下载认证凭据失败
#### 用户问题
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.huawei.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.huawei.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. 重新下载认证凭据。
 
