急求解决Spring security中认证后的UserDetailsService接口问题!

问题描述:
登录页面除开j_username和j_password,还有siteId参数,我如何才能在UserDetailsService的实现类里方法loadUserByUsername中获取到提交上来的siteId这个参数。

5个回答

你可以实现AuthenticationSuccessHandler接口,然后配置到UsernamePasswordAuthenticationFilter中,然后在里面通过request获取siteid这个值,再做相应的处理

yushangfeng
yushangfeng 你好,这个方法可以。我将siteId放到UserDetails实现类的属性里,然后在认证完成后,从里面获得。谢谢各位了。
接近 8 年之前 回复
wad12302
wad12302 这个方法没试过,应该可以的
接近 8 年之前 回复

UserDetailsService的方法loadUserByUsername只提供了一个String的username参数,无法获取其它参数

是什么原因让你需要在这个方法里获取siteid参数,可以通过其它方式来获取

DreamZhong
DreamZhong 按楼上的做,在成功验证后处理器中处理不同的转向
接近 8 年之前 回复
yushangfeng
yushangfeng 一个用户可以对应多个交互界面,我需要认证后,通过siteId来判断。
接近 8 年之前 回复

还有一种办法比较简便,通过前台拼接字符串,把参数拼接到user_name上,然后在后面拆开,就好了啊

:lol: 这个方法就是用过username 获取用户entity的 难道你的username 不是唯一的么?非要在加一个siteId?

当初我也是这么觉得,
现在我就是先根据用户ID查询用户,再查询一次

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐