配置Spring Security的登录用户密码的三种方式

Spring Security配置用户密码的几种方式 Spring Security作为Spring Cloud生态的安全组件,又火热了起来,很有必要再回过头来好好学习下Spring Security安全框架了。 SpringBoot傻瓜式集成Security 引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security&l 阅读详情

在这之前所需要的依赖以及其他配置
maven依赖

        <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>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
            <version>2.0.4.RELEASE</version>
        </dependency>

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

其他配置

server.port=8081

spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html

index页面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    hello security
</body>
</html>

控制器

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

方式一:通过配置文件配置用户和密码

#方式一:配置配置文件
spring.security.user.name=zhangsan
spring.security.user.password=zhangsan

运行效果:
在这里插入图片描述

方式二:通过配置类继承WebSecurityConfigurerAdapter重写其中configure(WebSecurity web)方法

注意:在配置密码时要加密需要使用PasswordEncoder来对密码进行加密,否则会报错,错误如下
java.lang.IllegalArgumentException: There is no PasswordEncoder mapped for the id "null"

配置类:

/**
 * 方式二:通过配置类继承WebSecurityConfigurerAdapter重写其中configure(WebSecurity web)方法
 * 注意:在配置密码时要加密需要使用PasswordEncoder来对密码进行加密,否则会报错,错误如下
 *      java.lang.IllegalArgumentException: There is no PasswordEncoder mapped for the id "null"
 */
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    public void configure(AuthenticationManagerBuilder auth) throws Exception {
        BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
        String passw = passwordEncoder.encode("123");
        auth.inMemoryAuthentication().withUser("lisi").password("123").roles("admin");
        //也可通过jdbc获取用户密码
        //auth.jdbcAuthentication()
    }
    @Bean
    public PasswordEncoder encoder(){
        return new BCryptPasswordEncoder();
    }
}

运行结果
在这里插入图片描述

方式三:通过UserDetailsService自定义实现类设置(比较经常使用)

**第一步:创建配置类,配置使用那个UserDetailsService **

/**
 * 方式三:通过UserDetailsService自定义实现类设置
 */
@Configuration
public class SecurityConfigTest extends WebSecurityConfigurerAdapter {

    @Autowired
    private UserDetailsService userDetailsService;

    public void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.userDetailsService(userDetailsService).passwordEncoder(encoder());
    }
    @Bean
    public PasswordEncoder encoder(){
        return new BCryptPasswordEncoder();
    }
}

第二步:实现UserDetailsService类

@Service("userDetailsService")
public class MyUserDetailsService implements Use![在这里插入图片描述](https://img-blog.csdnimg.cn/20210113095204779.gif#pic_center)
rDetailsService {
    @Override
    public UserDetails loadUserByUsername(String s) throws UsernameNotFoundException {
        List<GrantedAuthority> auths = AuthorityUtils.commaSeparatedStringToAuthorityList("role");
        //权限不能为空,一般是从数据库中读取
        return new User("zhaoliu",new BCryptPasswordEncoder().encode("abcde"),auths);
    }
}

运行效果:
在这里插入图片描述

security实现账密、手机号和微信三种方式登陆 :security实现多种方式登陆 spring security 的核心功能主要包括 认证 授权 攻击防护 其核心就是一组过滤器链,项目启动后将会自动配置。最核心的就是 Basic Authentication Filter 用来认证用户的身份,一个在spring security中一种过滤器处理一种认证方式。 在说多种认证方式之前,咱们先简单过下单认证方式是如何配置的,也说下Spring Security的各个配置类的作用。 1、UsernamePasswordAuthenticationFilte 阅读详情

相关推荐

spring-boot:使用spring security实现用户登录注册(一)

项目地址:https://github.com/lizhibin205/simple_web_v2 一、数据库表 CREATE TABLE `users` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '用户ID', `name` varchar(45) COLLATE utf8mb4_unicode_ci ...

zhibin的程序日记 9148

Security详解一 配置账号密码的方式(2)

SpringBoot Security 默认的用户名是user,密码就是日志打印的字符。

myli92的博客 3091

SpringBoot + Spring Security 实现用户登录认证鉴权

参考文档:          https://www.jb51.net/article/140429.htm 必须的依赖: &lt;dependency&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt; &lt;artifactId&gt;spring-boot-starter-security&lt;/art...

青青河边草 8353

SpringSecurity设置登录账号密码的三种方式

SpringSecurity设置登录账号密码的三种方式

cy364328541的博客 5941

CAS+Spring security实现单点登录之配置篇

CAS+Spring security实现单点登录之配置篇分清Spring security和CAS的职责CAS做了个啥 单点认证(自己YY的名词,懂就行):在CAS Server认证后,各Client都认 对不起,没其他的了,其他都是Spring security干的事情! Spring security的默默奉献 认证各个请求,认证不过,就去做身份认证 此处占两个灰常灰常重要的坑:

石权的博客 1万+

手把手教你解决Kernel panic报错:init找不到的5种排查方法(附NFS挂载实战)

本文深入解析了Linux系统启动时出现“Kernel panic - not syncing: No working init found”报错的根本原因,并提供了五种系统性的排查方法。文章结合NFS挂载根文件系统的实战场景,详细阐述了从动态链接库依赖、内核引导参数、NFS权限配置、文件系统完整性到内核配置干扰的完整排查路径,帮助开发者快速定位并解决这一常见的系统启动故障。

weixin_29159995的博客 196

Spring Mvc 拦截器不起作用的问题 - 同时使用了WebMvcConfigurer和WebMvcConfigurationSupport导致

今天在

Fyf_010316的博客 1711

国产信创服务器软硬件兼容情况1 --- ARM架构

信创,即信息技术应用创新产业,它是数据安全、网络安全的基础,也是新基建的重要组成部分...

一只猿的自我修养 4742

Spring Security加密解密

我们开发时进行密码加密,可用的加密手段有很多,比如对称加密、非对称加密、信息摘要等。在一般的项目里,常用的就是信息摘要算法,也可以被称为散列加密函数,或者称为散列算法、哈希函数。这是一种可以从任何数据中创建数字“指纹”的方法,常用的散列函数有 MD5 消息摘要算法、安全散列算法(Secure Hash Algorithm)等。散列函数通过把消息或数据压缩成摘要信息,使得数据量变小,将数据的格式固定下来,然后将数据打乱混合,再重新创建成一个散列值,从而达到加密的目的。散列值通常用一个短的随机字母和数字组成的字

程序员一博 8831

机器视觉中的特征提取【0】:什么是特征提取,特征提取有什么作用?

1.什么是特征提取? 特征提取的英文叫做feature extractor,它是将一些原始的输入的数据维度减少或者将原始的特征进行重新组合以便于后续的使用。简单来说有两个作用:减少数据维度,整理已有的数据特征。 这里我给一个例子来解释特征提取的第二个作用。那就是我们很熟悉的奖学金评定,我们知道学生的文化课成绩,道德分数,以及各种其他竞赛的成绩。摆在奖学金评定委员会面前的任务就是如何知道一个学生是否...

月下花弄影 5万+

scratch绘制旋转彩球 2023年9月电子学会图形化编程scratch编程等级考试四级真题和答案解析

​ scratch绘制旋转彩球 2023年9月电子学会图形化编程Scratch等级考试四级真题 一、题目要求 1、准备工作 (1)删除小猫角色,从角色库选择Ball角色; (2)默认空白背景。 ​

青少年编程学习指导 1369

SpringSecurity Web设置登录系统的账号、密码方式

设置登录系统的账号、密码三种方式 方式一:在 application.properties spring.security.user.name=cxy spring.security.user.password=cxy 方式二:编写类实现接口 //@Configuration public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(Authen

weixin_45067832的博客 701

34、Text2KGBench与GeoQuestions1089:知识图谱生成与地理空间问答的新进展

本文介绍了Text2KGBench和GeoQuestions1089在知识图谱生成与地理空间问答领域的最新进展。Text2KGBench提供了一个开放且可复现的基准,用于从文本生成知识图谱,并结合多个LLM模型和评估工具推动研究。GeoQuestions1089是目前最大的地理空间问答数据集,与GeoQA2系统结合,推动了地理空间问答系统的发展。文章还探讨了技术挑战和未来研究方向,包括多模态知识图谱生成和深度学习优化的地理空间问答系统。

css33的专栏 116

【Spring Security】003-Spring Security web权限方案(1):用户认证

目录 一、用户认证 1、设置登录系统的账号、密码 方式一:通过配置文件 方式二:通过配置类 方式三:自定义编写实现类(常用) 2、通过查询数据库完成登录认证 技术点: 第一步:引入MybatisPlus相关依赖 第二步:创建数据库和数据库表 第三步:创建实体类 第四步:创建mapper,并创建UsersMapper接口 第五步:在MyUserDetailsService中调用mapper里面的方法,通过查询数据库进行用户认证 第六步:在启动类(或者配置类)添加@MapperScan

訾博(ZiBo)的博客 342

主流反爬虫、反作弊防护与风控对抗手段

主流反爬虫、反作弊风控防护中的核心设计点与对抗策略

吴秋霖的博客 2555

ESP-SPARKBOT AI 智能机器人:v1.2 全流程复刻指南

本文介绍 ESP-SPARKBOT AI 智能机器人 v1.2 版本的全流程复刻,包含 PCB 、3D 打印、固件烧录、常见问题解决、参考资料等

举世誉之而不加劝,举世非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。 9258

【Spring Security OAuth2】- Spring Social第三方登录 - 单机session管理

作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!

smart_an的专栏 1030

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Spring Security入门案例

Spring Security入门案例一、spring security 简介二、入门案例(demo) 一、spring security 简介 Spring Security是一个功能强大且高度可定制的身份验证和访问控制框架。它是用于保护基于Spring的应用程序的实际标准。 Spring Security是一个框架,致力于为Java应用程序提供身份验证和授权。与所有Spring项目一样,Spring Security的真正强大之处在于可以轻松扩展以满足自定义要求 巴拉巴拉…(详情看官方文档) 二、入门案

alteza的博客 326

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

9.SpringSecurity-web权限方案-用户认证(设置用户名密码)

方式一,在 application.properties spring.security.user.name=user spring.security.user.password=123321 方式二,编写实现类继承WebSecurityConfigurerAdapter   类图如下:   简单案例(不实用,只是举个例子): @Configuration public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

自能生羽翼,何必仰云梯 554

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Spring Security 实现用户名密码登录

Spring Security提供了一个UserDetailsService接口,我们需要实现这个接口的loadUserByUsername方法,用于用户信息的获取,如果存在用户,则把用户的密码获取出来,如果不存在这个用户,直接抛异常。SQL脚本在resouces/db目录下,项目启动后会自动初始化脚本,无需手动执行。以上便完成了所有后端代码的编写,接下来,完成controller和前端页面的编写。显示登录页面,输入用户名密码,点击登录,即可看到效果。准备好建表语句后,完成实体类的编写。

Practitioner 4122

【springboot+security】1、spring security配置用户名和密码

spring securit引入依赖就保护接口 spring security是一个安全管理框架,只要在工程中引入了spring security的依赖,我们的接口就会被保护起来, <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifac

江南雨敲窗的博客 6841

【第三章】Spring Security自动配置之登录用户

spring security配置登录用户

单纯的小孩的博客 1643

史上最简单的Spring Security教程(二十八):CA登录与默认用户名密码登录共存详细实现及配置

​在前面的文章中,我们自定义了一些CA登录相关的类,如CertificateAuthorityAuthenticationToken、CertificateAuthorityAuthenticationFilter、CertificateAuthorityDaoAuthenticationProvider等。但是,由于诸多条件的不具备,也就没有办法演示。 不过,目前一个新登录方式所需要的逻辑基本都介绍过了,下面,就利用这些已经自定义的类,来尝试如何自定义个新的登录方式-CA登录。并且,CA登录需要与默认.

银河架构师的博客 3767

SSM Web项目整合 Spring Security & Spring Security的配置方式

ssm的web项目整合就不过多哔哔了,直接整合Spring Security,接下来将通过xml的方式和Java 代码配置方式来实现 本篇博文使用的Spring Security版本为:4.2.4.RELEASE 目录 环境准备: 配置: 1.使用xml方式: 2.使用java类来配置: 环境准备: sql: -- ---------------------------- ...

掉了根毛的博客 4583

Spring Security 之用户名/密码 认证

验证用户身份的最常见方法之一是验证用户名和密码,Spring Security提供了很多内置机制来从HttpServletReques读取用户名和密码:

console的博客 2715
上一篇: Redis五大数据类型常用的指令
下一篇: Spring Security登录注销配置
magicproblem
博客等级 码龄7年 22粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值