SpringBoot——Security简单的登录和前端权限认证

一、登录权限认证
1、在pom.xml导入security依赖包,以及thymeleaf security拓展包

<dependency>
         <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
        <dependency>
            <groupId>org.thymeleaf.extras</groupId>
            <artifactId>thymeleaf-extras-springsecurity5</artifactId>
        </dependency>

2、在application中修改官方的用户名和密码

spring:
  security:
    user:
      name: admin
      password: admin

此刻,运行会跳转到官方的登录页面,此刻的用户名为admin密码为admin(PS:官方默认的为user,密码为后端打印的密码)

在这里插入图片描述
如果发现登录不进去,那么应该看一下自己的项目有没有添加拦截器哟~
在这里插入图片描述

登录进来会显示是404页面,那是因为没有重定向路径
在这里插入图片描述
此刻我们只需+上自己的方法路径即可
在这里插入图片描述
二、前端授权
以登录为例,想要login表的用户进行登录并进行验证,此刻,需要我们自己自定义接口啦~
1、创建以下的目录结构
在这里插入图片描述
2、重写UserDetailService方法
在这里插入图片描述

@Configuration
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class CBUserDetailService implements UserDetailsService{

	@Autowired
	private UserInfoService us;
	
	@Override
	public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
		
		UserInfo user = us.queryByName(username);
		System.out.println(user);
		List<GrantedAuthority> auths = new ArrayList<>();
		System.out.println(auths);
		String prems = user.getPrems();
		if (!prems.isEmpty()) {
			for(String prem : prems.split(",")) {
				auths.add(new SimpleGrantedAuthority(prem));
			}
		}
		return new User(username,user.getUserPassword(),auths);
	}

}

3、spring security 在数据库中使用noop密码加密
在这里插入图片描述
4、controller中添加
在这里插入图片描述

@PreAuthorize("hasAuthority('userinfo:add')")

5、在前端引用
首先引入<html lang="en" xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity5">
其次使用sec:authorize="hasAuthority('userinfo:add')"在这里插入图片描述
6、测试,在登录不同的用户时,用户的权限就不同
在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值