user-by-username-query需要多于1个参数

时间:2012-01-30 18:42:29

标签: java security spring spring-security

我必须实现一个弹簧安全件,它有超过1个参数来获取用户。它将通过其ID和产品名称获取用户。我知道user-by-username-query只能给出一个参数,我想知道是否有可能给出许多用户 - 用户名 - 查询选项并给他们一些ID,但我不知道如何在验证时会引用。有没有人有任何建议

<sec:authentication-provider>

<sec:jdbc-user-service data-source-ref="dataSource"
    users-by-username-query="
    select username,password,enabled 
    from MY_USERS where username=? and product='productA'" />

1 个答案:

答案 0 :(得分:2)

您需要实施自己的AuthenticationProvider

您不能重用DaoAuthenticationProvider(jdbc-user-service),因为它使用了 UserDetailsService,这有一个只根据一个字符串参数加载UserDetails的方法UserDetails loadUserByUsername(String username)