项目小结二()

一.个人信息的界面

这里可以进行用户信息的修改,并渲染数据上去

二.这两天,出现的问题:

1.mybatis中 字段取别名 (还没验证,是否正确)

问题描述:由于实体类中的变量名,与数据库中的字段名不相同,导致mybatis框架执行错误。

2.在前端js代码出现问题

问题描述:因为方式如果不是异步的,就会出现问题,这个原理还不是很了解

这里的异步函数,如果不使用这个异步就会出现问题

3.在样式方面

有时候这个样式 active不同成功加上去,目前也还没发现哪里出现了问题。后面有时间再回来解决。

三. 后端过滤器(检测token是否过期)

复制代码
package com.csdn.controller;


import com.csdn.util.TokenUtil;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;

// 过滤器,过滤掉accessToke过期的
@WebFilter("/token/*")
public class AuthFilter implements Filter {
    private static final List<String> WHITE_LIST_URLS = Arrays.asList(

                                        // 可以根据需要添加更多URL
    );

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {


        HttpServletRequest httpRequest = (HttpServletRequest) servletRequest;
        HttpServletResponse httpResponse = (HttpServletResponse) servletResponse;
        httpResponse.setContentType("application/json;charset=utf-8");
        httpRequest.setCharacterEncoding("utf-8");

        String accessToken = httpRequest.getHeader("Authorization");
        String requestURI = httpRequest.getRequestURI();
        if (WHITE_LIST_URLS.contains(requestURI)) {
            // 如果在白名单中,则不进行Token验证,直接放行
            filterChain.doFilter(servletRequest, servletResponse);
            return;
        }
        if (accessToken != null && accessToken.startsWith("Bearer ")) {
            accessToken = accessToken.substring(7); // 提取Token值
            try {
                // 验证Token
                if (TokenUtil.verifyToken(accessToken)) {
                    // Token验证通过,继续执行
                    System.out.println("\n\nToken验证通过,继续执行\n|||||||||||||||||||||||||||||||\n");
                    filterChain.doFilter(servletRequest, servletResponse);
                } else {
                    // Token验证失败,返回401
                    httpResponse.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
                    httpResponse.getWriter().write("Unauthorized");
                }
            } catch (Exception e) {
                // Token验证异常处理
                e.printStackTrace();
                httpResponse.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
                httpResponse.getWriter().write("Internal Server Error");
            }
        } else {
            // 如果没有Token或者格式不正确,返回401
            httpResponse.setStatus(HttpServletResponse.SC_UNAUTHORIZED);


            httpResponse.getWriter().write("没有被允许访问!");
        }
    }
}
相关推荐
砍材农夫1 小时前
spring|spring web|拦截器、过滤器、aop
java·spring boot·spring·spring cloud
mldong8 小时前
一个 App,十三套后端:手机审批端 uni-jeeflow-app 开源了
java·架构
tqs_123459 小时前
MySQL RR隔离级别死锁|Gap间隙锁、临键锁,订单并发范围查询死锁根因方案
java
逆境不可逃9 小时前
Pi Agent 学习笔记:多个工具怎样并行执行
java
Flynt10 小时前
Java 27 升级实测:默认值动得比新特性多,有个老参数会让 JVM 直接起不来
java·jvm·后端
Bs_MoneyMagnet10 小时前
基于springboot+vue的个人健康管理系统的设计与实现 源码+文档
java·vue.js·spring boot·后端·vue3·springboot3·计算机毕业设计
星云API技术支持10 小时前
企业微信二次开发:群权限设置、成员管理与群资料维护的接口组合实践
java·前端·企业微信
niucloud-admin11 小时前
JAVA V6 多商户商城 开发文档——job 计划任务开发
java·python·github
海宇AI12 小时前
零信任架构实战:基于海宇柠檬查出险-登记证构建自动化车抵贷核保网关
java·人工智能·架构·自动化
cfm_291413 小时前
单例模式详解
java