温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。
Fayson的github: https://github.com/fayson/cdhproject
提示:代码块部分可以左右滑动查看噢
1
问题现象
1.Redhat7.4
2.CDH6.2.0
3.CDSW1.5.0
Fayson在前面的文章《09-如何为CDSW集成Active Directory认证》,在CDSW集成AD后,有部分用户登录时提示“Email address is invalid.”
2
异常重现及分析
1.首先在AD上创建一个cdhadmin用户
2.Fayson在本地测试环境集成AD服务后,进行登录测试未遇到“Email address is invalid.”异常
3.查看CDSW的PG数据库看到同步的用户信息显示如下,可以看到AD中同步过来的用户email为”用户名@AD域名”
4.Fayson在AD上创建用户时并未指定用户的email,说明使用AD用户登录CDSW时,如果用户的email为空会自动使用登录名和AD域名拼接一个email地址,接下来证实一下猜想
5.将cdhadmin用户的email地址随便修改为”test”
6.删除CDSW数据库中cdhadmin用户信息
7.再次使用cdhadmin用户登录
8.重复上述5-7步,将AD用户的email修改一个格式正确的邮箱test@qq.com进行测试
用户登录CDSW成功
CDSW数据库users表数据显示
通过上述测试及验证得出如下结论:
1.当AD中用户的Email地址为空时,用户登录成功后会使用用户名和AD域名拼接为用户的Email地址,保存至CDSW数据库中的users表。
2.当AD中用户的Email地址为一个错误格式的Email时,用户登录会提示“Email address is invalid.”,因为CDSW会校验用户的邮箱格式,所以会有如上提示。
3.当AD中用户的Email地址格式正确,则用户可以正常登录CDSW。
3
总结
1.集成 AD或者LDAP后,用户成功登录后CDSW会将用户的基本信息写入到数据库中(基本信息可以参考CDSW注册账号时的信息)。
2.集成AD或者LDAP后,账号密码的校验还是经过AD或LDAP,但用户的信息最终还是要保存到CDSW数据库中,初次登录的用户相当于走了注册流程会遵循注册流程信息的校验。
3.对于上述的问题主要是由于AD中用户的Email地址格式错误导致,需要检查有登录问题的用户Email地址并进行修改。
提示:代码块部分可以左右滑动查看噢
为天地立心,为生民立命,为往圣继绝学,为万世开太平。 温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。