SpringBoot之自定义注解和自定义验证器validation步骤一:创建实体类User@Data @Component public class User {private String userId; private String username; private String password; private int age;//下面会自定义一个验证最小年龄的注解类}步骤二
转载 2024-02-17 21:25:50
37阅读
一,为什么要给接口做签名验证?1,app客户端在与服务端通信时,通常都是以接口的形式实现,这种形式的安全方面有可能出现以下问题:被非法访问(例如:发短信的接口通常会被利用来垃圾短信)被重复访问  (例如:在提交订单时多点了几次提交按钮)而客户端存在的弱点是:对接口站的地址不能轻易修改,所以我们需要针对从app到接口接口做签名验证接口不能随便app之外的应用访问 2,要注意的
转载 2023-05-30 09:04:00
382阅读
唠嗑部分在我们设计接口时,参数验证是必不可少的一个环节,严格的参数验证能够保证数据的严谨,那么在SpringBoot项目中,你是如何验证参数的呢?首先我们来描述一下需求用户类,有用户名、用户头像、邮件地址、年龄、手机号、出生日期,要求:1、用户名不能为空且由字母数字下划线组成,不超过16个字符。2、用户头像不能为空且为一个网络图片。3、邮箱不能为空且必须为一个合法的邮件地址。4、年龄不能为空且大于
 一、介绍JSON Web Token(JWT)是一个非常轻巧的规范。这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息。一个JWT实际上就是一个字符串,它由三部分组成,头部、载荷与签名。1、头部(Header)头部用于描述关于该JWT的最基本的信息,例如其类型以及签名所用的算法等。这也可以被表示成一个JSON对象。{"typ":"JWT","alg":"HS256"}在头部
转载 2023-12-10 22:42:05
164阅读
一:简介手机网站支付常用于HTML5应用,常见于微信公众号上的应用。手机网站支付文档手机网站支付的流程图:用户点击H5应用中的支付按钮点击支付按钮会请求后台接口,后台接口请求支付宝的支付接口,支付接口会返回一段html代码其中包括一个form表单和一段js代码用于自动提交表单,表单提交后就会自动跳转到支付宝的支付页面(如果手机中装了支付App就去打开APP,如果没有就在网页版支付支付成功后会调用支
本文将通过AOP的方式实现一个相对更加简易灵活的API安全认证服务。我们先看实现,然后介绍和分析AOP基本原理和常用术语。一、Authorized实现1、定义注解package com.power.demo.common; import java.lang.annotation.*; /* * 安全认证 * */ @Target({ElementType.TYPE, ElementType
转载 2024-05-29 01:07:00
97阅读
SpringBoot 是构建SpringCloud技术生态的基础,所有的技术组件都是在SpringBoot上集成的,本文为作者学习SpringBoot过程中的总结,由于很多细节内容都需要结合代码讲解,本文先只简单概述下springboot的发展历程。1Spring Boot 的前世今生 Spring Boot是基于Spring的基础上进行的创新,核心还是Spring Famework框架,目的
前言对于初学者们,对于接口的参数判空多多少少都是有些膈应,因为每次写个接口,拿那几个参,就得if else。那么该篇教学,就可以一定程度解决这个问题。 正文该篇文章涉及到的:1.自定义注解 ,用于标注需要进行校验的参数2.AOP配合自定义注解使用3.实现公共的返回参4.实现全局异常捕获 先看整体我们需要做的东西有什么:  只要完成这两个文件夹里面的,那么到了
转载 2024-07-05 12:35:44
14阅读
第一章 简介1、概念Spring家族当中,一个安全管理框架。Shiro也是一个安全框架,提供了很多安全功能。Shiro比较老,旧的项目当中,可能还在使用。上手还挺简单。在新项目当中,一线互联网大型项目,都是使用SpringSecurity 。2、认证 鉴权一般的web项目当中,总会有登陆和鉴权的需求。但是大家一定要区分开。认证:验证当前访问的用户是不是本系统中的用户。确定是哪一个具体的用户。鉴权:
文章目录1.常规验证2.使用validation验证2.1.添加依赖2.2.常用注解2.3.在pojo类中添加需要使用的注解2.4.在接口入参处添加@Valid2.5.添加全局异常处理类返回校验错位提示信息3.项目配套代码 1.常规验证以下面的登录接口为例,需要手动去验证参数是否存在,这种写法繁琐且不太优雅。@RestController public class LoginController
转载 2023-11-08 21:49:37
114阅读
一.什么是JWT  JWT(JSON Web Token)是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准(RFC 7519)。该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可以直接被
转载 2023-07-19 21:36:40
285阅读
?作者主页:青花锁 ?简介:Java领域优质创作者?、Java微服务架构公号作者? Spring boot框架若依RouYi Cloud专栏回顾专栏导航描述Spring boot框架Rouyi Cloud- -rouyi-ui Node版本过大导致项目启动报错95% emitting CompressionPlugin ERROR Error: error:0308010C:digital e
什么是不优雅的参数校验后端对前端传过来的参数也是需要进行校验的,如果在controller中直接校验需要用大量的if else做判断以添加用户的接口为例,需要对前端传过来的参数进行校验, 如下的校验就是不优雅的:@RestController @RequestMapping("/user") public class UserController { @PostMapping("add"
转载 2024-02-20 11:36:40
36阅读
最开始未分前后端分离的时候,用户权限是通过session保存的。前后端分离以后需要一个媒介来标识用户状态,就产生了token。JWT技术主要封装了用于用户登录鉴权的基本功能session认证Session:在计算机中,尤其是在网络应用中,称为“会话控制”。Session对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,
转载 2024-07-03 10:19:00
184阅读
由于项目需要开发第三方接口给多个供应商,为保证Api接口的安全性,遂采用Api接口签名验证。Api接口签名验证主要防御措施为以下几个:请求发起时间得在限制范围内请求的用户是否真实存在是否存在重复请求请求参数是否被篡改实现思路:我们按照主要防御措施先后顺序来实现,首先已知我们得到以下四个参数: // 供应商的id,验证用户的真实性 String appid = request.getHeader(
转载 2024-03-17 10:19:32
280阅读
API接口签名验证,防止请求参数被篡改。 机制:前端利用请求参数+时间戳对参数进行加密,生成签名,将签名传给后端,后端通过同样的方式进行生成签名,判断签名是否一致。不一致则为非法请求。1.前端(VUE)实现1.1 前端生成签名工具类生成签名工具,signatureUtil.js// signatureUtil.js import md5 from "js-md5"; export function
文章目录1.简介2.实战应用2.1.引入相关依赖2.2.swagger配置2.2.1.application.yml配置文件2.2.2.swagger配置类2.3.注解描述2.3.1.API接口注解2.3.2.模型类注解3.查看API接口文档3.1.访问接口文档页面3.2.查看添加用户接口描述3.3.查看模型类描述4.解决ApiModel类作为属性返回没有显示类描述4.1.改造上面的HttpRe
转载 2024-03-21 09:45:44
81阅读
@SpringBootApplication@SpringBootApplication 是启动类上的注解,它组合了3个其他的注解。@SpringBootConfiguration:将该类声明为配置类,这个注解实际上是@Configuration注解的特殊形式。@EnableAutoConfiguration:启用Spring Boot的自动配置,这个注解会告诉SpringBoot自动配置它认为我
文章目录6. Spring Boot安全框架6.1 认识Spring Security6.1.1 入门项目6.1.2 角色访问控制6.2 基于数据库的认证6.2.1 Spring Security基于数据库认证6.2.2 角色访问控制6.2.3 密码加密保存6.2.4 用户角色多对多关系6.2.5 角色继承 6. Spring Boot安全框架6.1 认识Spring SecuritySprin
转载 2024-02-12 21:40:46
66阅读
自定义Filter及Token等工具类准备:/** * 仿写UsernamePasswordAuthenticationFilter * * @author zhaohaibin */ public class SmsCodeAuthenticationFilter extends AbstractAuthenticationProcessingFilter { public s
  • 1
  • 2
  • 3
  • 4
  • 5