spring security 中 UserDetailsService loadUserByUserName 能修改参数吗

只能传一个参数真是太操蛋了, 你们有验证码时, 有多语言, 时区信息要传入时是怎么做的啊

有办法修改为传一个对象进来吗, 别说那种传 json 数据或者传分割符分割的 username , 不想这样做

阅读 4.7k
2 个回答

你要想自己玩也不是不可以,参考DaoAuthenticationProvider,自己去实现AuthenticationProvider,加到security的配置中即可,Provider的入口参数是Authentication接口,常见的像UsernamePasswordAuthenticationToken,这些都是它的实现类,想要啥就有啥了

没太懂你的问题,你是想从 HTTP 请求里读取某些额外的参数(你说的验证码、时区啥的)吗?

@autowiredHttpServletRequest 注入进去就可以了呀,你重写的 loadUserByUserName 方法不需要传额外的参数,而是内部从注入的对象里取值。

P.S. 但 UserDetailsService 为啥要处理验证码相关的逻辑……

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏