SpringBoot开发的在线演示项目这么防止有人恶意删除数据?

目录

事发现场

解决方案

效果


不要慌

事发现场

原本好好的网站,现在打开一看,好家伙!!,我东西去哪里了,呃呃呃,看看日志发现了,被小调皮给删了

SpringBoot开发的在线演示项目这么防止有人恶意删除数据?_第1张图片

解决方案

对于这种情况,我想加个AOP是非常合理的吧,于是乎:

package com.scm.myblog.aop;

import com.scm.myblog.entity.StatusMes;
import com.scm.myblog.entity.VO.Result;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;

/**
 * 假装修改切面
 * 防止有人恶意破坏演示网站
 *
 * @author Lancer
 * @date 2023/03/27
 */
@Aspect
@Component
public class PretendModifyAspect {
    //假装删除方法的切点,
    @Pointcut("execution(public * com.scm.myblog.service.impl.*Impl.remove*(..))")
    public void modifyRemove(){}
    //更新方法切点
    @Pointcut("execution(public * com.scm.myblog.service.impl.*Impl.update*(..))")
    public void modifyUpdate(){}

    @Around("modifyRemove()")
    public Result MyModifyRemove(ProceedingJoinPoint pjp){
        // 拦截并直接返回成功信息,实则并没有删除
        Result result = new Result();
        result.setData(StatusMes.Pretend_delete.getModifyIds());
        result.setCode(StatusMes.DELETE_OK.getCode());
        result.setMessage(StatusMes.Pretend_delete.getMes());
        return result;
    }
    @Around("modifyUpdate()")
    public Result MyModifyUpdate(ProceedingJoinPoint pjp){
        // 拦截并直接返回成功信息
        Result result = new Result();
        result.setData(StatusMes.Pretend_update.getModifyIds());
        result.setCode(StatusMes.UPDATE_OK.getCode());
        result.setMessage(StatusMes.Pretend_update.getMes());
        return result;
    }
}

效果

SpringBoot开发的在线演示项目这么防止有人恶意删除数据?_第2张图片

 SpringBoot开发的在线演示项目这么防止有人恶意删除数据?_第3张图片

这里提供下示例网站:
www.forevergtt.love,通过

admin

abc123456

就可以登录后台了

你可能感兴趣的:(java,Spring,spring,boot,java,spring)