使用spring security修改密码例子

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情
@RequestMapping(value = "/account/changePassword", method = RequestMethod.POST)
    public String submitChangePasswordPage(
            @RequestParam("oldpassword") String oldPassword,
            @RequestParam("password") String newPassword,
            HttpServletRequest request) {
        System.out.println("change password.............");
        try{
            jdbcUserDetailsManager.changePassword(oldPassword, newPassword);
        }
        catch( AuthenticationException e )
        {
            System.out.println( "Old password is incorrect!please rechange" );
            //e.printStackTrace();
            return "redirect:/account/change";
        }

        Authentication auth = SecurityContextHolder.getContext().getAuthentication();
        User user = (User)auth.getPrincipal();
        String userName = user.getUsername();

        SecurityContextHolder.clearContext();
        
        
        UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(userName, newPassword);
        try {
            token.setDetails(new WebAuthenticationDetails(request));
            Authentication authenticatedUser = authenticationManager
                    .authenticate(token);
            
            request.getSession();

            SecurityContextHolder.getContext().setAuthentication(
                    authenticatedUser);
            request.getSession()
                    .setAttribute(
                            HttpSessionSecurityContextRepository.SPRING_SECURITY_CONTEXT_KEY,
                            SecurityContextHolder.getContext());
        } catch (AuthenticationException e) {
            System.out.println("Authentication failed: " + e.getMessage());
            return "redirect:/account/change";
        }
        
        return "redirect:/";
    }
SpringSecurity-用户认证-设置用户名密码 SpringSecurity-用户认证-设置用户名密码,以及实现数据库认证来完成用户登录 阅读详情

相关推荐

spring security 一个验证码登录例子

看完shiro,在看spring security感觉快了很多,最开始看spring security的时候,非常晕,看完我觉得spring security做了太多事,以至于程序员都不知道,是怎么实现的,这样的 后果就是 当出现错误,或者需要修改的时候感觉无从下手。 个人理解,若有错误,请指正。 spring security跟shiro类似,都是使用过滤器来认证和授权,不同的

ry的专栏 2万+

Spring Security 重置密码

在本教程中—看看基本的我忘记了我的密码功能—以便用户可以在需要时安全地重置自己的密码

白石的专栏 2876

spring security5使用jdbcAuthentication()验证

首先数据库格式要和规则差不多 IDEA的请按ctrl+shift+R搜索 users.ddl里面就是jdbcAuthentication()验证要使用的具体规则,下面代码就是 create table users(username varchar_ignorecase(50) not null primary key,password varchar_ignorecase(500) not nu...

qq_41754409的博客 5982

Spring Security(五)密码加密与更新密码

密码加密 方法1.securityconfig中加入代理方法passwordEncoder 方法2.数据库中加入前缀 密码的自动更新: 步骤1.前置需要代理方法 步骤2.实现service继承类UserDetailsPasswordService 步骤3.覆写更新密码的方法updatePassword...

weixin_43189971的博客 2790

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

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

cy364328541的博客 5926

springsecurity第四章——security基于数据库后台的修改密码

之前有讨论过security空间基于内存修改密码的,因为绝大部分应用的用户及其用户信息都是存到数据库当中的,所以,修改密码肯定也是基于数据库操作的。   其实基于内存的修改密码和基于数据库的修改密码原理基本上是一样的,只不过UserDetailService的实现类已经ChangePassword()方法的实现方式不同而已。在这里重新提一遍修改密码的原理(基于数据库): 我们知道基于内存...

ws_zhh的专栏 738

spring security 密码过期强制修改密码

定义认证失败处理器处理CredentialsExpiredException密码过期异常 public class AuthenticationFailureHandler extends SimpleUrlAuthenticationFailureHandler { protected Logger logger = LoggerFactory.getLogger(this.getClass()); public AuthenticationFailureHandler() { .

路过君的博客 2623

使用security框架后如何修改用户密码

使用security框架后如何修改用户密码 BCryptPasswordEncoder bc = new BCryptPasswordEncoder(); //修改密码要求输入原密码password(未加密),paaword2为数据库取出的该用户加密后的密码,对两者进行对比 //这个核心代码 boolean matches = bc.matches(password,password2 ...

Mr_Li的博客 3192

Spring-security密码验证正与修改

1.需要的jar包 <!--安全框架 2020.09.24 add by lm --> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-web</artifactId> </dependency> &

qq_45597674的博客 1170

基于security框架的修改密码功能,如何进行前端输入的密码与数据库的密码比对

因为使用security,一般都是使用 bCryptPasswordEncoder.encode() 方法对密码加密保存到数据库,而登陆时,也是由security框架帮助我们判断我们输入的密码和后台数据库密文是否匹配,所以在做修改密码的功能时有点小绕, 怎么比对 前台输入的密码和后台数据库由security生成的密文,是解决这个问题的关键点,在security中BCryptPasswordEnco...

qq_43390895的博客 2705

Spring Security - 06 修改默认的用户名和密码

文章目录环境项目结构测试参考 环境 操作系统: Windows 10 x64 集成开发环境: Spring Tool Suite 4 Version: 4.12.1.RELEASE Build Id: 202110260750 浏览器(客户端): Google Chrome 版本 97.0.4692.71(正式版本) (64 位) 项目结构 参考:Spring Security - 05 原生的退出登录 从 Web > 4. Spring Security 文中可知,默认的用户名是 user

qq_29761395的博客 3239

SpringBoot集成Spring Security(二)注册 、密码加密、修改密码

SpringBoot集成Spring Security(一)登录注销 写在前面 上一节创建了项目并且利用Spring Security完成了登录注销功能,这里继续说一下注册和找回密码,代码注释较清晰。 一、web层 控制 StudentController.java package com.jxnu.os.controller; import com.jxnu.os.model.RespBean...

tsundere_x的博客 5035

Spring Security 基本使用

一、Spring Security是什么? Spring Security is a powerful and highly customizable authentication and access-control framework. It is the de-facto standard for securing Spring-based applications. Spring Security是一个功能强大且高度可定制的身份验证和访问控制框架。它是用于保护基于Spring的应用程序的实际标准。

qq_36700462的博客 2805

Spring Security使用

上面登录认证流程实现了用户会话访问接口,但是SessionId存储在cookie中,这样会导致csrf攻击,所以前端还需要把SessionId存储到其他位置,比如localStorage,在请求时,把它放到Header中,避免csrf攻击,或者直接生成一个新的csrf token,在每次请求时把它放到header或parameter中,在后端服务进行验证。一般来说,filterChain是我们需要重写的,我们的应用是无法直接使用默认filter的配置。数据库查询到的用户对应的密码。请求中的用户名/密码

CASER_HDMI的博客 1151

关于spring security的简单使用—自定义账号密码校验

下图所展示的是SpringSecurity的默认的认证流程。Authentication接口: 它的实现类,表示当前访问系统的用户,封装了用户相关信息。AuthenticationManager接口:定义了认证Authentication的方法UserDetailsService接口:加载用户特定数据的核心接口。里面定义了一个根据用户名查询用户信息的 方法。UserDetails接口:提供核心用户信息。

m0_71144252的博客 2535

spring security安装以及查看或修改默认登录的账号密码

spring security一、安装spring security二、简单配置spring security修改默认表单的值)1)、spring Boot Auto Configuration2)、Spring Security Configuration(编程方式)3)、Spring Security Configuration(xml方式) 一、安装spring security spri...

qq_40913192的博客 6212

springboot + spring security + spring data jpa + jwt + readis实现权限登录退出及密码修改

springboot + spring security + spring data jpa + jwt + readis实现权限登录 引入jar包 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-securi...

w1316022737的博客 1692

Spring Security- PasswordEncoder 密码加密器详解与使用

Spring Security PasswordEncoder 密码加密器详解 摘要 本文深入讲解Spring Security中的PasswordEncoder密码加密机制。PasswordEncoder是Spring Security提供的接口,用于对用户密码进行单向哈希处理,核心方法包括encode()和matches()。文章分析了密码加密的必要性,并详细介绍了三种主流实现: BCryptPasswordEncoder - 基于bcrypt算法,内置随机盐值,计算成本可调,是生产环境首选 SCryp

千淘万漉虽辛苦,吹尽狂沙始到金 1万+

Spring Security密码编码与加密

直接抄这套代码,全国 99.9% 项目(包括银行、支付、政务)都能通过安全审计!基于(当前最强版本)

m0_57545130的博客 1460
上一篇: Spring Security redirecting to "/favicon.ico"
下一篇: spring security前进后退失效处理
softwarehe
博客等级 码龄25年 66粉丝 165原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值