• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

10-认证类UserDetailsService

开发技术 开发技术 4天前 8次浏览

一、UserDetails:接口,表示用户信息的
六个方法:

  1. String getPassword();
    获取密码

  2. String getUsername();
    获取用户名

  3. boolean isAccountNonExpired();
    账号是否过期

  4. boolean isAccountNonLocked();
    账号是否锁定

  5. boolean isCredentialsNonExpired();
    证书是否过期

  6. boolean isEnabled();
    账号是否启用

User实现类:
org.springframework.security.core.userdetails.User
可以:自定义类实现UserDetails接口,作为系统中的用户类。这个类可以交给springsecurity使用。

二、UserDetailsService接口
主要作用:获取用户信息,得到是UserDetails对象。一般项目中都需要自定义类实现这个接口,从数据库中获取数据。

一个方法需要实现。
UserDetails loadUserByUsername(String var1):根据用户名称,获取用户信息(用户名称,密码,角色结合,是否可用,是否锁定等信息)

UserDetailsService接口的实现类:
1、InMemoryUserDetailsManager:在内存中维护用户的信息。
优点:使用方便
缺点:数据不是持久的。系统重启后数据恢复原样。
2、JdbcUserDetailManager:用户信息存放在数据库中,底层使用jdbcTemplate操作数据库。可以使用JdbcUserDetailManager中的方法完成用户的管理。
(1)createUser:创建用户
(2)updateUser:更新用户信息
(3)deleteUser:删除用户
(4)UserExits:判断用户是否存在

数据库文件
user.ddl文件:

create table users(username varchar_ignorecase(50) not null primary key,password varchar_ignorecase(500) not null,enabled boolean not null);
create table authorities (username varchar_ignorecase(50) not null,authority varchar_ignorecase(50) not null,constraint fk_authorities_users foreign key(username) references users(username));
create unique index ix_auth_username on authorities (username,authority);

程序员灯塔
转载请注明原文链接:10-认证类UserDetailsService
喜欢 (0)