栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringSecurity实现数据库认证,Java开发还不会这些

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringSecurity实现数据库认证,Java开发还不会这些

和spring的整合文件

destroy-method=“close”>

3.pojo文件


package com.dpb.security;

public class UserPojo{

private Integer id;

private String username;

private String password;

private String salt;

private String nickname;

public Integer getId() {

return id;

}

public void setId(Integer id) {

this.id = id;

}

public String getUsername() {

return username;

}

public void setUsername(String username) {

this.username = username;

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password;

}

public String getSalt() {

return salt;

}

public void setSalt(String salt) {

this.salt = salt;

}

public String getNickname() {

return nickname;

}

public void setNickname(String nickname) {

this.nickname = nickname;

}

}

4.dao接口


定义一个根据账号查询的方法即可

5.映射文件


select * from t_user where username = #{userName}

6.service


接口定义

接口实现

二、service修改

==========================================================================

接下来我们看看如何将SpringSecurity引入进来

1.UserService 继承 UserDetailService接口


2.重写loadUserByusername方法


@Override

public UserDetails loadUserByUsername(String s) throws UsernameNotFoundException {

// 根据账号去数据库中查询

UserPojo userPojo = this.queryByUserName(s);

if(userPojo != null){

List authorities = new ArrayList<>();

// 设置登录账号的角色

authorities.add(new SimpleGrantedAuthority(“ROLE_USER”));

UserDetails user = new User(userPojo.getUsername(),"{noop}"+userPojo.getPassword(),authorities);

return user;

}

// 返回null 默认表示账号不存在

return null;

}

}

三、配置文件修改

=======================================================================

既然使用自定义的认证方法,那么原来设置的内存中的账号就不需要了

四、登录测试

=====================================================================

启动系统,登录测试即可

搞定~

五、加密处理

=====================================================================

显然在实际项目中,对密码加密是必须的,所以我们就来看看SpringSecurity中是怎么做加密的。我们在此处通过BCryptPasswordEncoder来加密,动态加盐的方式

配置文件中设置加密规则

去掉{noop}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/667335.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号