怎么在Spring Security中使用数据库认证

  • 时间:
  • 浏览:51
  • 来源:恰卡网

导读今天就跟大家聊聊有关怎么在Spring Security中使用数据库认证,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 流程图: spri...

今天就跟大家聊聊有关怎么在Spring Security中使用数据库认证,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

流程图:

在创建一个UserServiceImpl去实现IUserService接口,覆盖loadUserByUsername方法:

@Service("userService")//这个名字必须与spring-security.xml中配置的认证器名字一样

publicclassUserServiceImplimplementsIUserService{
@Autowired
privateIUserDaouserDao;
@Autowired//当执行保存用户的时候对用户的密码进行加密
privateBCryptPasswordEncoderbCryptPasswordEncoder;
@Override
publicUserDetailsloadUserByUsername(Stringusername)throwsUsernameNotFoundException{
UserInfouserInfo=null;
try{
userInfo=userDao.findByUsername(username);//调用到层根据用户查找用户信息,返回值为UserInfo对象
}catch(Exceptione){
e.printStackTrace();
}
//处理自己的用户对象封装成UserDetails
//Useruser=newUser(userInfo.getUsername(),"{noop}"+userInfo.getPassword(),getAuthority(userInfo.getRoles()));//下面这个三元表达式代表该账户是否激活可用
Useruser=newUser(userInfo.getUsername(),userInfo.getPassword(),userInfo.getStatus()==0?false:true,true,true,true,getAuthority(userInfo.getRoles()));
returnuser;
}
//作用就是返回一个List集合,集合中装入的是角色描述
publicListgetAuthority(Listroles){
Listlist=newArrayList<>();
for(Rolerole:roles){
list.add(newSimpleGrantedAuthority("ROLE_"+role.getRoleName()));
}
returnlist;
}
/**
*用户的添加
*@paramuserInfo
*/
@Override
publicvoidsave(UserInfouserInfo)throwsException{
//对密码进行加密处理
userInfo.setPassword(bCryptPasswordEncoder.encode(userInfo.getPassword()));
userDao.save(userInfo);
}
}

4.启动项目进行测试添加用户,新添加的用户是否可以登录成功。

看完上述内容,你们对怎么在Spring Security中使用数据库认证有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注恰卡网行业资讯频道,感谢大家的支持。

猜你喜欢

飞利浦278E1显示器体验如何(飞利浦278E1显示器体验评测)

飞利浦278E1显示器体验如何,飞利浦278E1显示器体验评测 目前27寸显示器已经成为了市面上的主流产品。这样尺寸的显示器在桌面上,整体的观感更好,再搭配了更高的分辨率,让显示器可以显示

2021-06-22

Python(中的单分派泛函数你真的了解吗)

Python,中的单分派泛函数你真的了解吗 泛型,如果你学过Java ,应该对它不陌生吧。但你可能不知道在 Python 中(3.4+ ),也可以实现简单的泛型函数。 在Python中只能实现基于单个(第一个)参

2021-06-22

Java8新特性:函数式编程

Java8新特性:函数式编程 首先需要清楚一个概念:函数式接口;它指的是有且只有一个未实现的方法的接口,一般通过FunctionalInterface这个注解来表明某个接口是一个函数式接口。函数式接口是

2021-06-22

Python实现DBSCAN聚类算法并样例测试

Python实现DBSCAN聚类算法并样例测试 什么是聚类算法?聚类是一种机器学习技术,它涉及到数据点的分组。给定一组数据点,我们可以使用聚类算法将每个数据点划分为一个特定的组。理论上,

2021-06-22