首页 > 系统相关 >springsecurity配置内存中账号密码的配置(方便复制)。

springsecurity配置内存中账号密码的配置(方便复制)。

时间:2023-05-31 23:05:08浏览次数:49  
标签:配置 springframework springsecurity passwordEncoder import org security annotation

pom.xml的依赖:

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

 



springsecurity的配置文件:WebSecurityConfig.java

import org.aspectj.weaver.ast.And;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.builders.WebSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.config.http.SessionCreationPolicy;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;

@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

	@Autowired
	private PasswordEncoder passwordEncoder;



	@Override
	protected void configure(AuthenticationManagerBuilder auth) throws Exception {
		// auth.userDetailsService(userDetailsService).passwordEncoder(passwordEncoder);

		//这里的roles这个角色完全没有意义,就是个lable标签。实际意义在后面的ROLE_user这个上。
		auth.inMemoryAuthentication()
.withUser("user1").password(passwordEncoder.encode("123")).roles("user").authorities("perms1").and()
.withUser("user2").password(passwordEncoder.encode("123")).roles("user").authorities("perms2","ROLE_user").and()
.withUser("admin").password(passwordEncoder.encode("123")).roles("admin").authorities("adminperms1","adminperms2","ROLE_admin").and()
.withUser("supper").password(passwordEncoder.encode("123")).roles("admin","user").authorities("adminperms1","adminperms2","perms1","perms2","ROLE_admin","ROLE_user").and()
		.passwordEncoder(passwordEncoder);
		//配置auth的加密方式为passwordEncoder

	}

	@Override
	public void configure(WebSecurity web) throws Exception {
		//这个是用来忽略一些url地址,对其不进行校验,通常用在一些静态文件中。
		web.ignoring().antMatchers("/js/**","/css/**","/images/**");
	}

	@Override
	protected void configure(HttpSecurity http) throws Exception {
		//以下五步是表单登录进行身份认证最简单的登陆环境
        http.authorizeRequests().antMatchers("/domylogin","/mylogin.html","/login").permitAll().and()
        
        //表单登陆 1
        .formLogin()
        .loginPage("/mylogin.html")
        .loginProcessingUrl("/domylogin")
        .defaultSuccessUrl("/home.html")
        .failureUrl("/mylogin.html")
        .and() //2
            .authorizeRequests() //下面的都是授权的配置 3
            .anyRequest() //任何请求 4
            .authenticated() //访问任何资源都需要身份认证 5
        .and().csrf().disable();
	}

}

 



使用了PasswordEncoder,添加PasswordEncoder的注入配置:PasswordEncoderConfig.java

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;

@Configuration
public class PasswordEncoderConfig {

	@Bean
	public PasswordEncoder passwordEncoder() {
		return new BCryptPasswordEncoder();
	}
	
}

 

 

标签:配置,springframework,springsecurity,passwordEncoder,import,org,security,annotation
From: https://blog.51cto.com/lenglingx/6390792

相关文章

  • Spring Boot 定时任务单线程和多线程配置
    第一种:把参数配置到.properties文件中:代码:packagecom.accord.task;importjava.text.SimpleDateFormat;importjava.util.Date;importorg.springframework.scheduling.annotation.Scheduled;importorg.springframework.stereotype.Component;/***从配置文件加载......
  • Redis 配置文件的详解
    1.Redis配置文件的位置在linux操作系统中,安装了Redis后,Redis的配置文件位于Redis安装目录下,文件名为redis.conf(例如:Ubuntuapt命令安装,则配置文件位于/etc/redis/redis.conf)。Redis启动时会加载这个配置文件,在运行时按照配置进行工作。网络上的redis.conf配置文......
  • 【Java】线程池配置
     先看JUC包自带的一个资源线程池执行器:初始化参数如下ThreadPoolExecutorthreadPoolExecutor=newThreadPoolExecutor(corePoolSize,//核心线程数量maximumPoolSize,//峰值线程数量keepAliveTime,//保留时限,当线程数量超出峰值数量时,保......
  • Vagrant编排虚拟机安装与配置
    1.安装VirtualBox与VagrantVirtualBox与Vagrant是支持不通过操作系统的;根据具体操作系统下载对应版本即可。(这里使用windows操作系统搭建)VirtualBoxhttps://www.virtualbox.org/wiki/DownloadsVagranthttps://developer.hashicorp.com/vagrant/downloadsVagrant是没有图形界面的......
  • Redis配置文件
    一、Units单位配置大小单位,开头定义了一些基本度量单位,只支持byte,不支持bit,大小写不敏感二、网络配置默认情况下bind=127.0.0.1只能接收本机的访问请求,不写的情况下,无限制接受任何ip地址的访问生产环境肯定要写你应用服务器的地址;服务器是需要远程访问的,所以需要将其注释掉如......
  • 会声会影2023新功能有哪些呢?会声会影2023中文旗舰版最低配置要求
    本文转载于:https://blog.csdn.net/weixin_55412152/article/details/130976196会声会影是一款广受欢迎的视频编辑软件,它的最新版本,会声会影2023,已经发布。在这篇文章中,我们将探讨会声会影2023的新功能以及它对视频制作人员的影响。会声会影2023下载地址:https://souurl.cn/3LSPir......
  • Windows 配置 Hadoop and Spark
    一JDK环境配置由于项目用的JDK17,所以单独给Hadoop配了JDK11,建议直接配置JAVA_HOME环境变量为JDK11,因为后面Spark需要用到JAVA_HOME下载JDK11链接:https://www.oracle.com/java/technologies/javase/jdk11-archive-downloads.html目前Hadoop和Spark兼容JDK11和JDK8单独修改Had......
  • AI实战营第二期 | 环境配置及安装
    AI实战营第二期|环境配置及安装强烈推荐使用mim来管理OpenMMLabrepoOpenMMLabrepo不要mim和pip混用OpenMMLab1.0和OpenMMLab2.0环境分离,不要耦合在一个环境里面以下是比较推荐的初学者配置方式,进阶之后推荐使用软链接模式,详见:OpenMMLab2.0源码阅读和调......
  • Miniconda+Pycharm中虚拟环境配置
    在安装完Miniconda后,win+r打开命令提示符,输入cmd在命令提示符输入conda,出现以下则安装成功;如果输入conda出现“不是内部或外部命令,也不是可运行的程序或批处理文件”,这样的提示说明要手动配置系统环境变量。操作:找到Miniconda的安装路径,找到Scripts,复制文件路径添加到系统path......
  • 在 nginx 服务器上发布vue项目 步骤与配置
    1.在vscode中使用yarnbuild:prod进行vue项目的发布2.进入发布文件3.下载nginx的windows版https://nginx.org/en/download.html4.将发布好的文件放入nginx解压后的html文件夹中5.修改nginx的配置文件打开nginx的配置文件配置完成使用命令打开nginx至此发布......