Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>If I understood this correctly, then the problem is that you want to lookup username entered by the user in two different DB columns. </p> <p>Sure, you can do that by customizing UserDetailsService. </p> <pre><code>public class CustomJdbcDaoImpl extends JdbcDaoImpl { @Override protected List&lt;GrantedAuthority&gt; loadUserAuthorities(String username) { return getJdbcTemplate().query(getAuthoritiesByUsernameQuery(), new String[] {username, username}, new RowMapper&lt;GrantedAuthority&gt;() { public GrantedAuthority mapRow(ResultSet rs, int rowNum) throws SQLException { ....... } }); } @Override protected List&lt;UserDetails&gt; loadUsersByUsername(String username) { return getJdbcTemplate().query(getUsersByUsernameQuery(), new String[] {username, username}, new RowMapper&lt;UserDetails&gt;() { public UserDetails mapRow(ResultSet rs, int rowNum) throws SQLException { ....... } }); } </code></pre> <p>Your bean configuration for this class will look something like this.</p> <p> </p> <pre><code>&lt;beans:bean id="customUserDetailsService" class="com.xxx.CustomJdbcDaoImpl"&gt; &lt;beans:property name="dataSource" ref="dataSource"/&gt; &lt;beans:property name="usersByUsernameQuery"&gt; &lt;beans:value&gt; YOUR_QUERY_HERE&lt;/beans:value&gt; &lt;/beans:property&gt; &lt;beans:property name="authoritiesByUsernameQuery"&gt; &lt;beans:value&gt; YOUR_QUERY_HERE&lt;/beans:value&gt; &lt;/beans:property&gt; &lt;/beans:bean&gt; </code></pre> <p>Your queries will look something similar to this</p> <pre><code>select username, password, enabled from user where (username = ? or email = ?) select u.username, a.authority from user u join authority a on u.userId = a.userId where (username = ? or email = ?) </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload