日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

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

發布時間:2024/7/19 javascript 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringBoot集成Spring Security(二)注册 、密码加密、修改密码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

SpringBoot集成Spring Security(一)登錄注銷
寫在前面
上一節創建了項目并且利用Spring Security完成了登錄注銷功能,這里繼續說一下注冊、密碼加密和找回密碼,代碼注釋較清晰。
一、web層
控制
StudentController.java

package com.jxnu.os.controller;import com.jxnu.os.model.RespBean; import com.jxnu.os.model.Student; import com.jxnu.os.service.StudentService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*;import java.util.List;/*** @author xiao*/ @RestController @RequestMapping("/student") public class StudentController {@AutowiredStudentService studentService;/*** 注冊* @param student* @return*/@PostMapping("/register")public RespBean register(Student student) {if(studentService.register(student)){return RespBean.ok("注冊成功",student);}else{return RespBean.error("注冊失敗,用戶名已存在");}}/*** 修改密碼* @param sno* @param password* @param rePassword* @return*/@PutMapping("/modifyPass")public RespBean modifyPass(String sno,String password,String rePassword) {if(studentService.modifyPass(sno,password,rePassword)){return RespBean.ok("修改成功");}else{return RespBean.error("修改失敗,原密碼錯誤");}}}

二、service層
注冊時對密碼進行加密,修改密碼時則需先解密后驗證
StudentService.java

package com.jxnu.os.service;import com.jxnu.os.mapper.StudentMapper; import com.jxnu.os.model.Student; import com.jxnu.os.utils.StudentUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.stereotype.Service;import java.util.List;/*** @author xiao*/ @Service public class StudentService implements UserDetailsService {@AutowiredStudentMapper studentMapper;/*** 注冊* @param student* @return*/public boolean register(Student student) {Student existUser = studentMapper.loadUserBySno(student.getUsername());if (existUser != null) {//如果用戶名已存在return false;} else {BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();String encode = encoder.encode(student.getPassword());student.setPassword(encode);studentMapper.insert(student);return true;}}/*** 修改密碼* @param sno* @param password* @param rePassword* @return*/public boolean modifyPass(String sno,String password,String rePassword) {Student student = studentMapper.loadUserBySno(sno);BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();if(encoder.matches(password,student.getPassword())) {String encode = encoder.encode(rePassword);rePassword = encode;studentMapper.modifyPass(sno,rePassword);return true;}else {return false;}}}

三、mapper層
StudentMapper.java

package com.jxnu.os.mapper;import com.jxnu.os.model.Student; import org.apache.ibatis.annotations.Param;import java.util.List;/*** @author xiao*/ public interface StudentMapper {int insert(Student student);int modifyPass(String sno,String rePassword); }

StudentMapper.xml

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespace="com.jxnu.os.mapper.StudentMapper"><resultMap id="BaseResultMap" type="com.jxnu.os.model.Student"><id column="id" property="id" jdbcType="INTEGER"/><result column="username" property="username" jdbcType="VARCHAR"/><result column="sno" property="sno" jdbcType="VARCHAR"/><result column="s_sex" property="s_sex" jdbcType="CHAR"/><result column="t_id" property="t_id" jdbcType="INTEGER"/><result column="password" property="password" jdbcType="VARCHAR"/></resultMap><update id="modifyPass" parameterType="com.jxnu.os.model.Student">update student set password = #{rePassword} where sno=#{sno}</update><insert id="insert" parameterType="com.jxnu.os.model.Student">insert into student (username,password)values (#{username,jdbcType=VARCHAR},#{password,jdbcType=VARCHAR})</insert></mapper>

總結

以上是生活随笔為你收集整理的SpringBoot集成Spring Security(二)注册 、密码加密、修改密码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。