一、该问题的重现步骤是什么?
1. 直接按文档提供的授权码模式访问
2. 弹出用户名密码输入
3.提交
二、你期待的结果是什么?实际看到的又是什么?
跳转授权页面,但实际未跳转有BUG
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
企业版本2.8.2
四、请提供详细的错误堆栈信息,这很重要。
BladeUserDetailsServiceImpl->loadUserByUsername 这里取不到弹出表单中提交的密码 String password = request.getParameter(TokenUtil.PASSWORD_KEY); // 用户存在但密码错误,超过次数则锁定账号 if (!grantType.equals(TokenUtil.REFRESH_TOKEN_KEY) && !user.getPassword().equals(DigestUtil.hex(password))) { 这里缺少grantType参数及密码取不到都会出错 说明:如果补充了grant_type=refresh_token可以跳过密码为空的认证。 但 DaoAuthenticationProvider 中又可取到请求form表单中的password字段。 所以这块是怎么设计的?
五、若有更多详细信息,请在下面提供。
问题1:授权码和密码登录模式 大部分参数不同为何会共用一个,是否可以根据两个模式的某一个不同参数识别出模式后,对参数采用不同的校验?
BladeUserDetailsServiceImpl
实现类?
问题2:code=233333这个参数没有发挥具体的作用,代码没有看到对这两个参数的处理。
问题3:
BladeClientDetailsServiceImpl 在授权码模式下表单用户密码验证后,这个loadClientByClientId方法被调用息多次,至少有3次查询数据库,需要优化成缓存。
扫一扫访问 Blade技术社区 移动端