首页 > 其他分享 >spring boot security

spring boot security

时间:2024-11-15 16:46:32浏览次数:1  
标签:spring boot springframework User import org security UserDetails

1.这里面安装这个

 2.跑起来发现,给了我们一个密码

 3.我们直接访问本地的localhost:8080/login,默认用户名是user

 4. 这里设置默认的账号密码

 

5.我们新建一个security文件夹,DemoSecurityConfig类

package com.example18.example_18.security;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.provisioning.InMemoryUserDetailsManager;

@Configuration
public class DemoSecurityConfig {
    @Bean
    public InMemoryUserDetailsManager userDetailsManager(){
        UserDetails join= User.builder()
                .username("john")
                .password("{noop}test123")
                .roles("EMPLOYEE")
                .build();
        UserDetails mary= User.builder()
                .username("mary")
                .password("{noop}test123")
                .roles("EMPLOYEE","MANAGER")
                .build();

        UserDetails susan= User.builder()
                .username("susan")
                .password("{noop}test123")
                .roles("EMPLOYEE","MANAGER","ADMIN")
                .build();

        return new InMemoryUserDetailsManager(join,mary,susan);
    }
}

 

6.我们访问发现没授权

 把上面的账号密码输入,成功了

 

7.通过角色来分批管理,DemoSecurityConfig 类

package com.example18.example_18.security;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpMethod;
import org.springframework.security.config.Customizer;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.provisioning.InMemoryUserDetailsManager;
import org.springframework.security.web.SecurityFilterChain;

@Configuration
public class DemoSecurityConfig {
    @Bean
    public InMemoryUserDetailsManager userDetailsManager(){
        UserDetails join= User.builder()
                .username("john")
                .password("{noop}test123")
                .roles("EMPLOYEE")
                .build();
        UserDetails mary= User.builder()
                .username("mary")
                .password("{noop}test123")
                .roles("EMPLOYEE","MANAGER")
                .build();

        UserDetails susan= User.builder()
                .username("susan")
                .password("{noop}test123")
                .roles("EMPLOYEE","MANAGER","ADMIN")
                .build();

        return new InMemoryUserDetailsManager(join,mary,susan);
    }

    @Bean
    public SecurityFilterChain filterChain(HttpSecurity http) throws Exception{
        http.authorizeHttpRequests(configurer ->
                configurer
                        .requestMatchers(HttpMethod.GET,"/students").hasRole("MANAGER")
                );
//        use HTTP Basic authentication
        http.httpBasic(Customizer.withDefaults());
        //disable Cross site Request Forgery
        http.csrf(csrf -> csrf.disable());
        return http.build();
    }

}

 

8.如何利用支持数据库的来查询

 

标签:spring,boot,springframework,User,import,org,security,UserDetails
From: https://www.cnblogs.com/hechunfeng/p/18548146

相关文章

  • 163邮箱发送邮件通知异常 org.springframework.mail.MailAuthenticationException: Au
    从腾讯企业邮箱切换成163邮箱,邮箱配置经过检查未作调整,网络检查均是正常,但发送邮件时一直报错org.springframework.mail.MailAuthenticationException:Authenticationfailed。解决办法:1.检查smtp服务是否打开(若未打开需要开启)2.客户端授权码需打开3.检查邮箱配置 ......
  • SpringBoot 3.3.5 集成 mybatis-plus-boot-starter 3.4.2报错
    一、环境JDK:17SpringBoot:3.3.5Mybatis-Plus:3.4.2二、报错信息Considerthefollowing: Ifyouwantanembeddeddatabase(H2,HSQLorDerby),pleaseputitontheclasspath. Ifyouhavedatabasesettingstobeloadedfromaparticularprofileyoumayneed......
  • springboot整合ES及其基本使用
    Springboot整合ElasticSearch导入依赖<dependency><groupId>org.elasticsearch</groupId><artifactId>elasticsearch</artifactId><version>${elasticsearch.version}</version>......
  • 基于Java+SpringBoot的校园资产管理
    关注底部领取源码源码编号:S324源码名称:基于SpringBoot的校园资产管理用户类型:双角色,用户、管理员主要技术:Java、Vue、ElementUl、SpringBoot运行环境:Windows/Mac、JDK1.8及以上运行工具:IDEA/Eclipse数 据 库:MySQL5.7及以上版本数据库表数量:11张表是否有毕业论文......
  • 基于Java+SpringBoot的人事管理系统
    关注底部领取源码源码编号:S323源码名称:基于SpringBoot的人事管理系统用户类型:双角色,员工、管理员主要技术:Java、Vue、ElementUl、SpringBoot运行环境:Windows/Mac、JDK1.8及以上运行工具:IDEA/Eclipse数 据 库:MySQL5.7及以上版本数据库表数量:13张表是否有毕业论文......
  • 基于Java+SpringBoot的老年一站式服务平台
    关注底部领取源码源码编号:S322源码名称:基于SpringBoot的老年一站式服务平台用户类型:多角色,用户、商家、员工、管理员主要技术:Java、Vue、ElementUl、SpringBoot运行环境:Windows/Mac、JDK1.8及以上运行工具:IDEA/Eclipse数 据 库:MySQL5.7及以上版本数据库表数量:18......
  • 4. Spring Cloud Ribbon 实现“负载均衡”的详细配置说明
    4.SpringCloudRibbon实现“负载均衡”的详细配置说明@目录4.SpringCloudRibbon实现“负载均衡”的详细配置说明前言1.Ribbon介绍1.1LB(LoadBalance负载均衡)2.Ribbon原理2.2Ribbon机制3.SpringCloudRibbon实现负载均衡算法-应用实例4.总结:5.最后:前言......
  • 关于Spring生命周期控制的接口:SmartLifecycle
    在Spring框架中,SmartLifecycle接口和StopWatch类都是用来管理和监测应用行为的强大工具。SmartLifecycle提供了对Springbeans生命周期的细粒度控制,而StopWatch用于精确测量代码段的执行时间,对于性能分析和优化非常有用。下面,我们将结合SmartLifecycle和StopWatch......
  • 如何深度学习SpringBoot?
    SpringBoot对于SpringBoot,我们都知道他的设计初衷是解决Spring各版本配置工作过于繁重的问题,简化初始搭建流程、降低开发难度而出现的。可以说用SpringBoot开发,我们在配置上是不用花费太多时间的。我们常常看到这样一种现象:面对Spring繁重配置工作,要是一位初学者仅仅掌握......
  • springBoot-RabbitMQ 高级特性(保姆级教程,一步一步带你熟悉RabbitMQ 相关高级特性)
    话不多说,看项目整体架构RabbitMQ高级特性保姆级教程好了,下面县开始贴生产者代码:publisher父依赖:<parent><artifactId>spring-boot-starter-parent</artifactId><groupId>org.springframework.boot</groupId><version>2.7.18</versi......