Spring Security 简单认证与授权

本文介绍了如何在Spring Boot项目中使用Spring Security进行简单的内存用户认证与授权,以及如何自定义错误页面。同时,文章还详细讲解了如何配置Spring Security以实现从数据库中读取用户信息进行身份验证和授权。通过逐步配置,读者将理解Spring Security的认证授权流程,并学会处理登录后的特定问题。
摘要由CSDN通过智能技术生成

Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC、DI和AOP功能,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作。

Spring Security 是一个当今非常流行的安全框架。

环境

Spring Boot2.3.0.RELEASE
Spring Security5.3.2
IntelliJ IDEA 2020.1 x64

内存用户认证与授权

首先创建一个 SpringBoot 项目,引入 Spring Security 的依赖,在没有写 Spring Security 的相关配置时,启动项目。访问自己写的一个页面,会发现也是需要进行登录的,虽然自己并没有用户密码的验证,这时 Spring Security 默认提供了一个 user 账号,密码在启动时随机生成,登录之后才能访问到自己写的页面。
1)引入 Spring Security 依赖

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

2)写一些 html 页面(如:主页、自定义登录页、其他一些功能页)
在这里插入图片描述
3)Controller 处理请求

@Controller
public class MainController {
   
    @RequestMapping("/index")
    public String index(){
   
        return "index";
    }

    @RequestMapping("/login")
    public String mainPage(){
   
        System.out.println("/login....");
        return "normal/success";
    }

    @RequestMapping("/fail")
    public String failPage(){
   
        return "fail";
    }

    @RequestMapping("/add")
    public String addPage(){
   
        return "normal/resadd";
    }
	....
}

4)配置认证与授权规则

@Configuration
@EnableWebSecurity
public class SpringsecurityConfig extends WebSecurityConfigurerAdapter {
   
    //@Autowired
    //private SysUserService userService;

    //配置加密
    //@Bean  //这里注释掉不启用加密
    public PasswordEncoder passwordEncoder() {
   
        return new BCryptPasswordEncoder(); //spring security 内置加密算法
    }

    //认证用户的来源
    public void configure(AuthenticationManagerBuilder auth) throws Exception {
   
        //auth.userDetailsService(userService).passwordEncoder(passwordEncoder());
		//下面定义了两个内存用户
        auth.inMemoryAuthentication().withUser("xiao")
                                    .password(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值