jdbc-user-service向SQL添加字段

ada*_*510 5 java jdbc spring-mvc spring-security

这有点接近我之前的问题,但我一直在寻找如何做到这一点

applicationContext-security.xml中的当前代码:

<authentication-manager alias="authenticationManager">
    <!-- DAO Based Security -->
    <authentication-provider>
        <password-encoder hash="sha-256" />
        <jdbc-user-service data-source-ref="dataSource"
            users-by-username-query="SELECT user_name AS username, user_password AS password, enabled FROM user where user_name=?"
            authorities-by-username-query="SELECT user_name as username, R.name as authority FROM user U, roles R WHERE U.roles = R.Id AND user_name=?"/>
    </authentication-provider>
</authentication-manager>
Run Code Online (Sandbox Code Playgroud)

我想改变什么:

<authentication-manager alias="authenticationManager">
    <!-- DAO Based Security -->
    <authentication-provider>
        <password-encoder hash="sha-256" />
        <jdbc-user-service data-source-ref="dataSource"
            users-by-username-query="SELECT user_name AS username, user_password AS password, id, location, userFirstName, userLastName, enabled FROM user where user_name=?"
            authorities-by-username-query="SELECT user_name as username, R.name as authority FROM user U, roles R WHERE U.roles = R.Id AND user_name=?"/>
    </authentication-provider>
</authentication-manager>
Run Code Online (Sandbox Code Playgroud)

基本上我想从数据库中检索另外4个字段

我目前的问题是我不知道我需要做什么,我试图自定义userDetails和userDetailsS​​ervice但我似乎无法使用来自这个网站http://www.theserverside的代码. COM /提示/ -Spring -安全-自定义-您的用户和授权,在

Ral*_*lph 3

你不能用原来的org.springframework.security.core.userdetails.jdbc.JdbcDaoImpl(那是后面的类jdbc-user-service)来做到这一点。您需要对其进行子类化,或者需要实现您自己的完整的UserDetailsService.