首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

木字楠后台管理系统开发(1):SpringBoot项目初始化并引入基础文件

---- 1、新建一个SpringBoot项目 使用IDEA编辑器新建一个 SpringBoot 项目 项目名称自定义(eg:MuZiNan-Template) Jdk 版本使用 1.8 版本...项目中经常会返回一些统一结果(比如:操作成功,操作失败…),我们可以将这些信息定义常用枚举类中,方便后续使用。...我们常用结果枚举类也会结合结果集处理器、自定义异常类、全局异常处理类进行使用。 注意:枚举类中不需要setter方法,我们仅提供getter方法即可。...====================== /** * 验证错误 */ CAPTCHA_ERROR(300, "验证错误"), /** *...,首先我们引入Log4fj2依赖,因为我们父工程是springboot项目,不设置版本默认使用父工程版本(即:2.5.5版本) <!

17220

登录点经验之谈

一、逻辑问题 由于程序员设计出现逻辑性问题,导致我们暴力破解可以绕过逻辑来进行暴力破解,碰到实例有登录失败连续5次锁定账号、登录验证码机制错第3次之后才出现、错密码10次后页面锁定15分钟、爆破过程中多次返回...2、登录验证码机制错第3次之后才出现 这次测试也是一个突发奇想尝试,然后就发现了这个漏洞。...可能我还没形成固定渗透过程,导致我想会多一点,当时也是首先对登录点尝试弱密码登录,但是呢第三登录失败验证码才迟迟来到。...漏洞详细过程: 某次测试过程中,发现一个登陆点,刚登上去时候是没有验证码机制错第三次时候,验证码机制就出现在页面上。 ? ? 抓取数据包,发现密码使用base64加密 ?...当然了,要结合重放功能使用,就是如果自动识别失败会返回验证错误字样,重放功能添加返回包有验证错误字符串,pkav就会将自动识别验证失败进行再次识别爆破。

1.8K10
您找到你想要的搜索结果了吗?
是的
没有找到

Mybatis Plus 快速入门

: INSERT:插入时填充 INSERT_UPDATE:修改时填充,创建时也要填充; 需要实现接口:MetaObjectHandler @Component public class MyMetaObjectHandler...数据库增加 version 字段,默认值为 1; 实体类增加 version 成员变量,并添加 @version 注解; 乐观锁配置 @EnumValue 通用枚举类注解,将数据库字段映射成实体类枚举类型成员变量..."休息"), ; @EnumValue private Integer code; private String msg; } 主配置文件中新增枚举扫描...,只会更新数据库 deleted 字段数值为 1,表示已经删除,而不会真正删除数据,但是查询时候,被逻辑删除数据也查不出来。...name 而我们 VO 实体类中属性名为 username,会自动赋值失败;这里采取解决办法是,写数据库查询语句时候取别名,用到了 name as username。

61010

记一次失败Fastjson漏洞利用

0x01 前言 社区中,较少看到关于“失败”案例文章。本文将记录一次负载均衡场景下失败 fastjson 漏洞利用案例。...写入文件马(payload短,成功率高,验证快,springboot环境无效) 写入字节码 defineClass 注内存马(payload长,成功率较低,验证较耗时,适用springboot环境) 业务层面优先级...路由所对应应用不在一台服务器,这条路径宣告失败 目标极大概率为为 springboot 框架 2)bcel 内嵌文件写入 - 忽略 每次能写入内容太短,不考虑 3)远程加载 - 失败 目标不出网...2000左右,比 request header 方式写入次数少一倍(优先方案) 4、梳理利用思路 从以上枚举结果可以得到以下方案: tmp目录创建文件 从 request parameter 处获取字节码内容依次追加到文件...文件写入不完整 文件多次写入相同内容 创建文件时写入了长度为 2000 内容,后续追加内容时通过给定范围对文件大小进行判断,这样即使多次重放也不会带来其他干扰,以此保证不会出现同样内容多次写入

18810

SpringBoot开发常见技术整合【学习笔记整理】

自定义响应码[使用枚举类] 2 封装返回统一数据格式 1.2 jackson 1.JSONUtils 2.SpringBoot热部署 3.资源文件属性配置 4.SpringBoot整合thymeleaf...自定义响应码[使用枚举类] /** * 响应结果枚举,用于提供给GraceJSONResult返回给前端 * 本枚举类中包含了很多不同状态码供使用,可以自定义 * 便于更优雅对状态码进行管理,一目了然..., // 人脸识别错误代码 FACE_VERIFY_TYPE_ERROR(600, false, "人脸比对验证类型不正确!")...中包含了多条错误信息,可以用于表单验证,把错误统一全部返回出去 * @param map * @return */ public static GraceJSONResult errorMap...* 门户接受此类数据后需要使用本类方法转换成对于数据类型格式(类,或者list) * 其他自行处理 * 200:表示成功 * 500:表示错误错误信息msg字段中 * 501:bean验证错误

1K20

聊聊springboot项目全局异常处理那些事儿

之前团队业务错误码定义是:业务服务前缀 + 业务模块 + 错误码,如果是识别不了异常,则使用业务前缀 + 固定模块码 + 固定错误码。...弊端二: 如果新上线了业务服务模块,这个枚举类还得改动 后面我们全局异常jar中增加了自定义业务码配置,业务人员仅需springboot配置文件配置,形如下 lybgeek: bizcode:...因此我们也列出常用可以预知系统异常,示例如下 /** *参数验证失败 * @param e * @return */ @ExceptionHandler...", e); return AjaxResult.error("参数验证失败", HttpStatus.BAD_REQUEST.value()); } /**...但真的开发微服务时候,如果公司原来就就没运维平台,有时候为了成本考量,测试、开发环境都不会分布式链路追踪,甚至线上项目初期也不会上分布式链路追踪。

56910

WebFlux 全局异常处理实战

前后端分离开发,一般提供 REST API,正常返回会有响应体,异常情况下会有对应错误码响应。...全局异常处理好处: 异常错误码等统一维护 避免一些重复代码 二、WebFlux REST 全局异常处理实战 下面介绍如何统一拦截异常,进行响应处理。...ServerResponse 是对响应封装,可以设置响应状态,响应头,响应正文。比如 ok 代表是 200 响应码、MediaType 枚举是代表这文本内容类型、返回是 String 对象。...Spring Boot MVC 错误码如何实战,参考地址:https://www.bysocket.com/archives/1692 2.5 运行验证 IDEA 中执行 Application 类启动...city=WenLing 正常界面如下: 三、小结 Spring 框架中没有代表错误响应类,只是返回响应对象,一个 Map。

2.2K10

spring cloud

分库切表:表数据大,切完后,表放在一个新mysql中。 数据库压力不大,只是为了查询方便,可以使用库内切表;数据库压力大,写入时形成竞争,可以使用分库切表。...(不会因为环境而导致无法运行)。...Springcloud组件: Fegin(接口调用):微服务之间通过rest接口通讯,springcloud提供fegin框架来支持rest调用,fegin使得不同进程rest接口调用得以用优雅方式进行...Hsyrix是由netflix开源一个延迟和容错库,用于隔离访问远程系统、服务或者第三方库,防止级联失败,从而提升系统可用性与容错性。...,一定场景下处理相对复杂 认证复杂,每个服务都需要独立验证 某些微服务可能使用了对防火墙/浏览器不友好协议,直接访问时会有一定困难 以上问题可借助微服务网关解决 微服务网关是介于客户端和服务器之间中间层

61020

spring cloud

分库切表:表数据大,切完后,表放在一个新mysql中。 数据库压力不大,只是为了查询方便,可以使用库内切表;数据库压力大,写入时形成竞争,可以使用分库切表。...(不会因为环境而导致无法运行)。...Springcloud组件: Fegin(接口调用):微服务之间通过rest接口通讯,springcloud提供fegin框架来支持rest调用,fegin使得不同进程rest接口调用得以用优雅方式进行...Hsyrix是由netflix开源一个延迟和容错库,用于隔离访问远程系统、服务或者第三方库,防止级联失败,从而提升系统可用性与容错性。...,一定场景下处理相对复杂 认证复杂,每个服务都需要独立验证 某些微服务可能使用了对防火墙/浏览器不友好协议,直接访问时会有一定困难 以上问题可借助微服务网关解决 微服务网关是介于客户端和服务器之间中间层

37830

sbc(一)SpringBoot+SpringCloud初探

其中有很多可能就是刚开始整合时候需要配置,之后压根就不会再动了。 鉴于此, Spring又推出了又一神器SpringBoot. 它可以让我们更加快速开发 Spring应用,甚至做到了开箱即用。...由于实际开发中我们使用 SpringBoot+ SpringCloud进行了一段时间持续交付,并在生产环境得到了验证,其中也有不少踩坑地方,借此机会和大家分享交流一下。...本篇我们首先会用利用 SpringBoot构建出一个简单 REST API. 接着会创建另一个 SpringBoot项目,基于 SpringCloud部署,并在两个应用之间进行调用。...使用 SpringBoot构建 REST API 我们可以使用 Spring官方提供初始化工具帮我们生成一个基础项目:http://start.spring.io/,如下图所示: 填入相应信息即可。...为了方便之后代码复用,我将 common包中一些枚举值、工具类单独提到 sbc-common应用中了,这样有其他应用要使用这些基础类直接引入这个依赖即可。

16530

spring boot + mybatis + layui + shiro搭建后台权限管理系统

shiro功能之密码错误次数限制 针对用户登录时用户名和密码输入错误进行次数限制,并锁定; Shiro中用户名密码验证交给了CredentialsMatcher; CredentialsMatcher...验证用户名密码之前先验证登录失败次数,如果超过5次就抛出尝试过多异常,否则验证用户名密码,验证成功把尝试次数清零,不成功则直接退出。...5次现象,因为AtomicInteger只能保证单节点并发 //解决方案,利用ehcache、redis(记录错误次数)和mysql数据库(锁定)方式处理:密码错次数限制; 或两者结合使用...if(retryNum>0 && retryNum<6){ responseResult.setMessage("用户名或密码错误"+retryNum+"次,再错"+(6-retryNum...20180422版本更新内容 优化更新用户时,记录操作用户id; 优化用户列表默认排序; 优化开通用户后,再次添加用户,上次操作数据未清除问题; 优化多设备同时登陆时,有效时间内验证码冲突问题; 优化登录失败时停止短信验证码倒计时功能

4.2K20

SpringCloud开发框架入门知识

(原理为某个微服务出现问题,返回定义好错误信息,而不是报错或无返回) Feign-robbon-Eureka-Hystrix熔断处理机制 7.Zuul代理机制: 客户端-调用微服务X(RPC前端/springBoot...11.1Rest提供者安全访问: 所有Rest服务最终都是暴露在公网,Rest访问,安全性是首要因素。 11.1配置安全验证 如果要想进行安全验证处理,那么首先一定要先在服务提供方进行处理。...11.2SpringSecurity安全访问介绍 安全开发之中,对于Rest服务提供者不可能被用户直接访问,所以肯定需要一个rest客户端springboot进行调用,可是现在Rest提供者服务上有了认证信息...如果这个时候Rest客户端上直接使用用户名和密码做加密处理,那么根本无法访问,此时会出现有401错误代码,因为认证出现了错误。是因为所有的认证处理操作,应该以头信息模式进行处理。...配置类,进行Rest访问时候设置好这个头部信息。

70110

SpringBoot三招组合拳,手把手教你打出优雅后端接口

不过事情还没有完,异常是引发了,可我们并没有编写返回错误信息代码呀,那参数校验失败了会响应什么数据给前端呢?...return objectError.getDefaultMessage(); } } 我们再来看下这次校验失败响应数据: 没错,这次返回就是我们制定错误提示信息!...以后我们再想写接口参数校验,就只需要在入参成员变量上加上Validator校验规则注解,然后参数上加上@Valid注解即可完成校验,校验失败会自动返回错误提示信息,无需任何其他代码!...更多校验思路:SpringBoot实现通用接口参数校验 自定义异常 全局处理当然不会只能处理一种异常,用途也不仅仅是对一个参数校验方式进行优化。实际开发中,如何对异常处理其实是一个很麻烦事情。...福利彩蛋 最近整理一份很全Java学习资料,感兴趣老铁可以微信搜索【猿芯】,后台回复以下关键字,即可免费获取。 回复“sb”,免费获取 SpringBoot 全套视频教程。

74830

ES6语法

凡是声明之前就使用这些变量就会报错 简单来说暂时性死区就是let本作用域中 let之前引用了let变量 let不允许重复声明斜体样式 允许块级作用域内声明函数 函数声明类似于var ,...Object.keys():返回数组,包含对象自身所有可枚举属性键名 JSON.stringify():只串行化对象自身枚举属性 Object.assign():忽略enumerable为...arr.concat()浅拷贝 Object.defineProperty 扩展属性 for..in循环:只遍历对象自身和继承枚举属性 Object.keys(obj):返回数组,包含对象自身所有可枚举属性...,按照数值升序排列 其次遍历所有字符串键,按照加入时间升序排列 最后遍历所有的symbol键,按照加入时间升序排列 数据劫持 let obj={} Object.defineProperty(obj...(3)不存在arguments对象,用rest代替该对象函数体内不存在。如果要用,可以用 rest 参数代替。 (4)不可以使用yield命令,因此箭头函数不能用作 Generator 函数。

6110

【项目实践】后端接口统一规范同时,如何优雅得扩展规范?

后端响应给前端数据一共分为三个部分: code:响应码,比如1000代表响应成功,1001代表响应失败等等 msg:响应信息,用来说明/描述响应情况 data:响应具体数据 我们通过响应码枚举做到了...code和msg统一,无论怎样我们只会响应枚举规定好code和msg。...Controller层里对BindingResult进行了处理自然就不会被我们之前写全局异常处理给捕获到,也就不会响应那统一错误码了,从而达到了每个字段有自己响应码和响应信息: @PostMapping...(user)); } 我们故意错参数,来看下效果: ?...比如,我们可以让注解直接加在整个类上,让某个类都参数用一个错误码;也可以让注解值设置为枚举类,这样能够进一步统一规范…… 绕过数据统一响应 上面演示了如何让错误码变得灵活,我们继续进一步扩展。

87921

微服务 面试

通信,采用是基于HTTPREST方式。     ...面临微服务基础框架选型时Dubbo与SpringCloud只能二选一。 4、SpringBoot和SpringCloud,请你谈谈对他们理解?    ...熔断机制是应对雪崩效应一种微服务链路保护机制。当扇出链路某个微服务不可用或者响应时间太长时,会进行服务降级,进而熔断该节点微服务调用,快速返回“错误响应信息。...SpringCloud框架里熔断机制通过Hystrix实现,Hystrix会监控微服务间调用状况,当失败调用到一定阈值,缺省是5秒内调用20次,如果失败,就会启动熔断机制。...因此,Eureka可以很好应对因网络故障导致部分节点失去联系情况,而不会像Zookeeper那样使整个微服务瘫痪。

53930

SpringBoot 2.x 进阶 之 Web

1.1、简介 步骤: 创建SpringBoot应用,选择相应Starter 配置文件中指定必要少量配置 编写业务代码 Web开发自动配置类:WebMvcAutoConfiguration 二、静态资源映射...: 请求结果失败返回情形: 四、AOP 使用 使用AOP统一处理请求日志。...Pointcut:声明需要处理切点 spring aop 通知(advice)分成五类: @Before:前置通知[Before advice]:连接点前面执行,前置通知不会影响连接点执行,除非此处抛出异常...@AfterReturning:正常返回通知[After returning advice]:连接点正常执行完成后执行,如果连接点抛出异常,则不会执行。...,我们都统一定义定义枚举类中,这样看起来会比较清爽!

41820

快速学习Shiro-ShiroSpringBoot工程应用

1 ShiroSpringBoot工程应用 Apache Shiro是一个功能强大、灵活,开源安全框架。它可以干净利落地处理身份验证、授权、企业会话管理和加密。...之前讲解中只是单独使用shiro,方便对shiro有一个直观且清晰认知,我们今天就来看一下shirospringBoot工程中如何使用以及其他特性 1.1 案例说明 使用springBoot构建应用程序...code=2"); //授权失败跳转页面 //4.配置过滤器集合 /** * key :访问连接 * 支持通配符形式...; 设置 url ) 1.5 授权 授权:即权限验证验证某个已认证用户是否拥有某个权限;即判断用户是否能做事情shiro支持基于过滤器授权方式也支持注解授权方式 1.5.1 基于配置授权...,一旦操作用户不具备操作权限,目标地址不会被执行。

59420

SpringBoot 集成 MybatisPlus 十——数据自动填充

之前学习了逻辑删除字段,向数据库插入数据时,都需要设置 isDeleted=0,这在进行频繁地数据插入时就显得有些繁琐,于是 MybatisPlus 就为我们提供了自动填充功能。...修改实体类,为需要自动填充字段注解 @TableField 中添加 fill 属性。...,这样进行数据插入时,我们就必须要为该列设置数据。...注意:之前是将 version 及 isDeleted 两个属性类型设置为了 int 型,插入数据时,程序会将 int 型自动初始化为数值0,就会失去对数据自动填充验证效果。...这里可以理解成将 User 对象中 isDeleted 字段填充为 0。同时为了能让 SpringBoot 识别该处理类,需要在类上增加注解 @Component。

48310
领券