SpringSecurity之权限方案——用户认证
倪大野
共 4948字,需浏览 10分钟
·
2023-05-09 02:45
点击上方“蓝字”,发现更多精彩。
0 1 设置用户名密码
开篇点睛——Elasticsearch 工欲善其事必先利其器——Elasticsearch安装 如何将网站全部变成灰色的素装效果,瞧过来 宇讯代码生成器开源了 微信支付系列之——统一下单 springboot自动装配原理 如何优雅的实现接口防刷 系统日志规范
前面我们讲解了一些关于Security的基础知识及基本原理。我们今天看一下如何通过它实现一个简单的web权限认证方案!
0 1 设置用户名密码
1、通过配置文件设置用户名密码
在application.yml文件中配置
spring.security.user.name: admin
spring.security.user.password: admin
2、编写代码实现接口
package com.yuxuntoo.config;
public class SecurityConfig {
// 注入 PasswordEncoder 类到 spring 容器中
public PasswordEncoder passwordEncoder(){
return new BCryptPasswordEncoder();
}
}
package com.yuxuntoo.service;
public class LoginService implements User Details Service {
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
// TODO判断用户名是否存在
if (!"admin".equals(username)){
throw new UsernameNotFoundException("用户名不存在!");
}
// 从数据库中获取的密码 atguigu 的密文 String pwd = "$2a$10$2R/M6iU3mCZt3ByGXXXXXEEER23UqdeXrb27zkBIizBvAven0/na";
// 第三个参数表示权限
return new User(username,pwd, AuthorityUtils.commaSeparatedStringToAuthorityList("admin,"));
}
}
上面loadUserByUsername中TODO处是需要我们自己编写代码,实现数据库查询操作,具体代码实现此处省略了,可以使用Mybatis也可以使用Mybatis plus来完成具体的代码!
0 2 放行登录页面及静态文件我们可以通过配置类来实现登录页面以及静态资源的过滤,使其无需通过认证,即能访问。
public class SecurityConfig extends WebSecurityConfigurerAdapter {
// 注入 PasswordEncoder 类到 spring 容器中
public PasswordEncoder passwordEncoder(){
return new BCryptPasswordEncoder();
}
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests() .antMatchers("/layui/**","/index") //表示配置请求路径
.permitAll() // 指定 URL 无需保护。
.anyRequest() // 其他请求
.authenticated(); //需要认证
}
}
开篇点睛——Elasticsearch 工欲善其事必先利其器——Elasticsearch安装 如何将网站全部变成灰色的素装效果,瞧过来 宇讯代码生成器开源了 微信支付系列之——统一下单 springboot自动装配原理 如何优雅的实现接口防刷 系统日志规范
评论