使用带有两个表的 postgresql 数据库来验证登录...(用户和权限)

CREATE TABLE users 
( 
   username character(50) NOT NULL, 
   password character(50) NOT NULL, 
   enabled boolean NOT NULL, 
   CONSTRAINT users_pkey PRIMARY KEY (username) 
) 
 
CREATE TABLE authorities 
( 
    username character(50) NOT NULL, 
    authority character(50) NOT NULL, 
    CONSTRAINT fk_authorities_users FOREIGN KEY (username) 
       REFERENCES users (username) MATCH SIMPLE 
       ON UPDATE NO ACTION ON DELETE NO ACTION 
) 

当我尝试执行以下操作时,我做错了什么?

registerAuthentication(AuthenticationManagerBuilder auth){ 
 
auth. 
      jdbcAuthentication() 
            .dataSource(dataSource) 
            .usersByUsernameQuery("select username,password,enabled  
                 from users where username = ?") 
            .authoritiesByUsernameQuery("select username,authority from  
                 authorities where username = ?"); 
 
} 

谢谢

请您参考如下方法:

试试这个:

auth.jdbcAuthentication()                 
    .dataSource(dataSource)                 
    .usersByUsernameQuery("select username as principal, password as credentials, true from users where username = ?")                
    .authoritiesByUsernameQuery("select username as principal, authority as role from authorities where username = ?")                 
    .rolePrefix("ROLE_"); 

也许这个源代码可以帮助你: https://github.com/spring-projects/spring-security-javaconfig/blob/master/spring-security-javaconfig/src/test/groovy/org/springframework/security/config/annotation/authentication/NamespaceJdbcUserServiceTests.groovy


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!