Spring security中的系统的User只有username,password,enabled等几个属性,但是我们实际应用中对应的User肯定需要很多自定义的字段,比如说年龄,真实姓名,部门等字段,下面我们针对spring security的user进行自定义操作:
说明:为了简便,我们就只建立一个表,表中包括权限和用户信息,按正常情况应该要建立一个用户表,一个权限表以及一个中间表。
一,自定义User,继承
public class MyUser extends User {
private static final long serialVersionUID = -814031798199130344L;
/**
* 自定义扩展userbean
*/
private Object extendUserBean;
public Object getExtendUserBean() {
return extendUserBean;
}
public void setExtendUserBean(Object extendUserBean) {
this.extendUserBean = extendUserBean;
}
public MyUser(String username, String password,
boolean enabled,
boolean accountNonExpired, boolean credentialsNonExpired,
boolean accountNonLocked,
Collection<? extends GrantedAuthority> authorities) {
super(username, password, enabled, accountNonExpired, credentialsNonExpired,
accountNonLocked, authorities);
}
}
二,重写JdbcDaoImpl
public class UserDetailsDAO extends JdbcDaoImpl {
//需要注入自定义的userbean的全名
private String beanName;