springboot与安全

本文详细介绍使用Spring Security进行Web应用的安全配置,包括定制请求授权规则、实现登录与注销功能、开启记住我功能,以及定义用户认证规则。通过具体代码示例,展示如何设置不同级别的访问权限,并为特定角色提供相应的资源访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

代码部分:`package com.atguigu.security.config;

import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

@EnableWebSecurity
public class MySecurityConfig extends WebSecurityConfigurerAdapter {

@Override
protected void configure(HttpSecurity http) throws Exception {
    //super.configure(http);
    //定制请求的授权规则
    http.authorizeRequests().antMatchers("/").permitAll()
            .antMatchers("/level1/**").hasRole("VIP1")
            .antMatchers("/level2/**").hasRole("VIP2")
            .antMatchers("/level3/**").hasRole("VIP3");

    //开启自动配置的登陆功能,效果,如果没有登陆,没有权限就会来到登陆页面
    http.formLogin().usernameParameter("user").passwordParameter("pwd")
            .loginPage("/userlogin");
    //1、/login来到登陆页
    //2、重定向到/login?error表示登陆失败
    //3、更多详细规定
    //4、默认post形式的 /login代表处理登陆
    //5、一但定制loginPage;那么 loginPage的post请求就是登陆


    //开启自动配置的注销功能。
    http.logout().logoutSuccessUrl("/");//注销成功以后来到首页
    //1、访问 /logout 表示用户注销,清空session
    //2、注销成功会返回 /login?logout 页面;

    //开启记住我功能
    http.rememberMe().rememberMeParameter("remeber");
    //登陆成功以后,将cookie发给浏览器保存,以后访问页面带上这个cookie,只要通过检查就可以免登录
    //点击注销会删除cookie

}

//定义认证规则
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
    //super.configure(auth);
    auth.inMemoryAuthentication()
            .withUser("zhangsan").password("123456").roles("VIP1","VIP2")
            .and()
            .withUser("lisi").password("123456").roles("VIP2","VIP3")
            .and()
            .withUser("wangwu").password("123456").roles("VIP1","VIP3");

}

}
`

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值