1.方便测试功能时,关闭登陆功能
2.新建三张表 用户表 角色表 用户角色关系表
enabled表示用户是否过期,locked表示用户是否被锁
这里密码是明文的,不正确。后面有加密的办法
3.创建实体类
-
public
class
User
implements
UserDetails {
-
private Integer userId;
-
private String username;
-
private String password;
-
private Boolean enabled;
-
private Boolean locked;
-
private List<Role> roles;
-
-
/*
-
* 获取当前用户对象具有的角色信息
-
* */
-
@Override
-
public Collection<?
extends
GrantedAuthority> getAuthorities() {
-
List<SimpleGrantedAuthority> authorities =
new
ArrayList<>();
-
for (Role role : roles){
-
authorities.add(
new
SimpleGrantedAuthority(role.getName()));
-
}
-
return authorities;
-
}
-
-
/*
-
* 获取当前用户的密码
-
* */
-
@Override
-
public String
getPassword
() {
-
return password;
-
}
-
/*
-
* 获取当前用户的用户名
-
* */
-
@Override
-
public String
getUsername
() {
-
return username;
-
}
-
/*
-
* 当前用户是否未过期
-
* */
-
@Override
-
public
boolean
isAccountNonExpired
() {
-
return
true;
-
}
-
/*
-
* 当前用户是否未锁定
-
* */
-
@Override
-
public
boolean
isAccountNonLocked
() {
-
return !locked;
-
}
-
/*
-
* 当前账户密码是否未过期
-
* */
-
@Override
-
public
boolean
isCredentialsNonExpired
() {
-
return
true;
-
}
-
/*
-
* 当前账户是否可用
-
* */
-
@Override
-
public
boolean
isEnabled
() {
-
return enabled;
-
}
-
-
public Integer
getUserId
() {
-
return userId;
-
}
-
-
public
void
setUserId
(Integer userId) {
-
this.userId = userId;
-
}
-
-
public
void
setUsername
(String username) {
-
this.username = username;
-
}
-
-
public
void
setPassword
(String password) {
-
this.password = password;
-
}
-
-
public Boolean
getEnabled
() {
-
return enabled;
-
}
-
-
public
void
setEnabled
(Boolean enabled) {
-
this.enabled = enabled;
-
}
-
-
public Boolean
getLocked
() {
-
return locked;
-
}
-
-
public
void
setLocked
(Boolean locked) {
-
this.locked = locked;
-
}
-
-
public List<Role>
getRoles
() {
-
return roles;
-
}
-
-
public
void
setRoles
(List<Role> roles) {
-
this.roles = roles;
-
}
-
}
4.注册Dao编写
这里注意一下:
-
mapper的xml中, 不需要(也不能)给
insert,
update,
delete指定resultType, 如这里所解释
-
-
http:
/
/mybatis.github.io
/mybatis
-3
/sqlmap
-xml.html
-
-
insert,
update,
delete只支持这些Attributes: id, parameterType, parameterMap, flushCache, timeout, statementType, useGeneratedKeys, keyProperty, keyColumn, databaseId
5.注册Service编写
6.注册控制层编写
7.如果出现403的情况
暂时将csrf关闭