• 微头条项目实战:通过postman测试登录验证请求


    1、CrosFilter

    1. package com.csdn.headline.filters;
    2. import jakarta.servlet.*;
    3. import jakarta.servlet.http.HttpServletResponse;
    4. import java.io.IOException;
    5. public class CrosFilter implements Filter {
    6. /**
    7. * 过滤器方法,用于处理HTTP请求
    8. * @param servletRequest Servlet请求对象
    9. * @param servletResponse Servlet响应对象
    10. * @param filterChain 过滤器链
    11. * @throws IOException 如果发生IO异常
    12. * @throws ServletException 如果发生Servlet异常
    13. */
    14. @Override
    15. public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
    16. // 将响应对象转换为HttpServletResponse类型
    17. HttpServletResponse response = (HttpServletResponse) servletResponse;
    18. // 设置Access-Control-Allow-Origin头部字段为"*",表示允许所有来源访问
    19. response.setHeader("Access-Control-Allow-Origin", "*");
    20. // 设置Access-Control-Allow-Methods头部字段为"POST, GET, OPTIONS, DELETE, HEAD",表示支持的请求方法
    21. response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE, HEAD");
    22. // 设置Access-Control-Max-Age头部字段为"3600",表示预检请求的最大缓存时间
    23. response.setHeader("Access-Control-Max-Age", "3600");
    24. // 设置Access-Control-Allow-Headers头部字段为"access-control-allow-origin, authority, content-type, version-info, X-Requested-With",表示支持的请求头
    25. response.setHeader("Access-Control-Allow-Headers", "access-control-allow-origin, authority, content-type, version-info, X-Requested-With");
    26. // 调用过滤器链的doFilter方法,将请求和响应对象传入
    27. filterChain.doFilter(servletRequest, servletResponse);
    28. }
    29. }

    2、NewsUserController

    1. package com.csdn.headline.controller;
    2. import com.csdn.headline.common.Result;
    3. import com.csdn.headline.common.ResultCodeEnum;
    4. import com.csdn.headline.pojo.NewsUser;
    5. import com.csdn.headline.service.NewsUserService;
    6. import com.csdn.headline.util.MD5Util;
    7. import com.csdn.mymvc.annotation.*;
    8. @Controller
    9. @RequestMapping("/user")
    10. public class NewsUserController {
    11. @Autowire
    12. private NewsUserService newsUserService;
    13. /**
    14. * 登录方法
    15. * @param newsUser 用户信息
    16. * @return 登录结果
    17. */
    18. @PostMapping("/login")
    19. public Result login(@RequestBody NewsUser newsUser) {
    20. // 根据用户名从数据库中获取用户信息
    21. NewsUser newsUserFromDB = newsUserService.getNewsUserByUserName(newsUser.getUsername());
    22. // 如果数据库中没有找到对应用户名的用户信息,则返回登录失败的结果
    23. if (newsUserFromDB == null) {
    24. return Result.build(null, ResultCodeEnum.USERNAME_ERROR);
    25. } else {
    26. // 获取数据库中用户密码
    27. String pwdFromDB = newsUserFromDB.getUserPwd();
    28. // 对输入的密码进行加密
    29. String yourPwd = MD5Util.encrypt(newsUser.getUserPwd());
    30. // 如果加密后的密码与数据库中的密码不一致,则返回登录失败的结果
    31. if (!yourPwd.equals(pwdFromDB)) {
    32. return Result.build(null, ResultCodeEnum.PASSWORD_ERROR);
    33. } else {
    34. // 清空数据库中用户的密码,完成登录并返回用户信息
    35. newsUserFromDB.setUserPwd(null);
    36. return Result.ok(newsUserFromDB);
    37. }
    38. }
    39. }
    40. }

    3、NewsUserServiceImpl

    1. package com.csdn.headline.service.impl;
    2. import com.csdn.headline.dao.NewsUserDao;
    3. import com.csdn.headline.pojo.NewsUser;
    4. import com.csdn.headline.service.NewsUserService;
    5. import com.csdn.mymvc.annotation.Autowire;
    6. import com.csdn.mymvc.annotation.Service;
    7. @Service
    8. public class NewsUserServiceImpl implements NewsUserService {
    9. @Autowire
    10. private NewsUserDao newsUserDao;
    11. /**
    12. * 根据用户名获取对应的NewsUser对象
    13. * @param userName 用户名
    14. * @return 对应的NewsUser对象
    15. */
    16. @Override
    17. public NewsUser getNewsUserByUserName(String userName) {
    18. return newsUserDao.getNewsUserByUserName(userName);
    19. }
    20. }

    4、NewsUserDaoImpl

    1. package com.csdn.headline.dao.impl;
    2. import com.csdn.headline.dao.NewsUserDao;
    3. import com.csdn.headline.pojo.NewsUser;
    4. import com.csdn.mymvc.annotation.Repository;
    5. import com.csdn.mymvc.dao.BaseDao;
    6. @Repository
    7. public class NewsUserDaoImpl extends BaseDao implements NewsUserDao {
    8. @Override
    9. public NewsUser getNewsUserByUserName(String userName) {
    10. // 根据用户名查询对应的NewsUser对象
    11. String sql = "select uid,username,user_pwd as userPwd,nick_name as nickName from news_user where username =?";
    12. return load(sql, userName);
    13. }
    14. }

     

  • 相关阅读:
    信息检索与数据挖掘 | (五)文档评分、词项权重计算及向量空间模型
    得一微冲刺科创板上市:拟募资约12亿元,2021年营收同比增长260%
    d3.js 的使用
    【雅思阅读】王希伟阅读P4(matching2段落信息配对题【困难】)
    Python3.11教程6:标准库简介1——os、shutil、sys、random、time、datetime、 threading
    使用 Prometheus 监控 eKuiper 规则运行状态
    金仓数据库 KingbaseGIS 使用手册(6.18. 线性参考函数)
    【微信小程序】数字化会议OA系统之首页搭建(附源码)
    1.1 大数据简介-hadoop-最全最完整的保姆级的java大数据学习资料
    投影仪怎么安装小容量软件?5款小体积应用下载搞定内存不足
  • 原文地址:https://blog.csdn.net/m0_65152767/article/details/134319322