在如今信息泛滥的数字时代中对产品安全性的要求越来越高了,就比如说今天要讨论的Java后端API调用的安全性,在你提供服务的接口中一定要保证调用方身份的有效性和合法性,不能让非法的用户进行调用,避免数据泄露。那如何有效地进行身份验证呢?你会立马想法采用拦截器,没错,采用拦截器是肯定的,但是如何校验呢?也许你又会说拿调用方的相关参数去认证中心进行验证,验证通过了就说明是合法用户,可放行;验证失败的话那就是非法用户了,必须要拦截在安全门之外;没错,思路是这样的,但是同一个用户在一段时间内反复调用接口的话,若每次都要去认证中心对该用户验证,那么会增加认证中心的负担,并且还有可能会造成对认证中心的恶意攻击;那么我们该如何处理才比较合适呢?此时就需要缓存技术了,在拦截器中利用本地缓存可以提高对同一用户的验证速度。可以参考以下几种,但不限于它们,还有其它的方案。

  • HashMap:它可以很好地保证用户的合法性,但在处理有效性时可能就需要自己去实现逻辑代码了,比如用户信息存在缓存中的有效时长为30分钟,等有效时长过期后就需要从HashMap对象中删除还用户的信息。
  • Redis缓存:比较流行的缓存解决方案,暂时还没应用到,惭愧

    Java后端API调用身份验证的思考的更多相关文章

    1. WebAPI接口调用身份验证

      Common public interface ICacheWriter { void AddCache(string key, object value, DateTime expDate); vo ...

    2. .NETcore中使用jwt来对api进行身份验证

      对于 登陆,身份,授权这之类的操作,我们最常用的几种方法无非就是 cookie session token 这三者的差别 https://www.cnblogs.com/moyand/p/904797 ...

    3. JAVA客户端API调用memcached两种方式

      1. memcached client for java客户端API:memcached client for java 引入jar包:java-memcached-2.6.2.jar package ...

    4. [Java] - Google API调用

      由于Google已经完成被墙,要上Google必需使用代理或VPN. 这里使用的是Google的GoAgent代理做开发.(如何使用GoAgent,这里不写了,忽略500字.....) 本地测试的Go ...

    5. [翻译] API测试最佳实践 - 身份验证(Authentication)

      API测试最佳实践 - 身份验证 适用等级:高级 1. 概况 身份验证通常被定义为是对某个资源的身份的确认的活动,这里面资源的身份指代的是API的消费者(或者说是调用者).一旦一个用户的身份验证通过了 ...

    6. API测试最佳实践 - 身份验证

      适用等级:高级 1. 概况 身份验证通常被定义为是对某个资源的身份的确认的活动,这里面资源的身份指代的是API的消费者(或者说是调用者).一旦一个用户的身份验证通过了,他将被授权访问那些期待访问的资源 ...

    7. .net core web API使用Identity Server4 身份验证

      一.新建一个.net core web项目作为Identity server 4验证服务. 选择更改身份验证,然后再弹出的对话框里面选择个人用户账户. nuget 安装Identity server相 ...

    8. Asp.Net Core 5 REST API 使用 JWT 身份验证 - Step by Step

      翻译自 Mohamad Lawand 2021年1月22日的文章 <Asp Net Core 5 Rest API Authentication with JWT Step by Step> ...

    9. 跟开涛老师学shiro -- 身份验证

      身份验证,即在应用中谁能证明他就是他本人.一般提供如他们的身份ID一些标识信息来表明他就是他本人,如提供身份证,用户名/密码来证明. 在shiro中,用户需要提供principals (身份)和cre ...

    随机推荐

    1. 题解【[HNOI2010]弹飞绵羊】

      \[ \texttt{Description} \] 有 \(n\) 个弹力装置排成一排,第 \(i\) 个弹力装置的弹力系数是 \(k_i\) ,绵羊到第 \(i\) 个装置时,会被弹到第 \(i+ ...

    2. 【题解】P3373 【模板】线段树 2

      线段树解法 好丢脸,这个题做了一下午,调试了三个多小时...... 先讲讲解题思路 既然这里是线段树,就要用到lazy-tag.又有加法又有乘法的话,就要用到两个lazy-tag,分别用数组jia[] ...

    3. 03(a)多元有约束优化问题(准备知识)

      转成Latex上传太麻烦,直接截图上传了,需要电子版的可以关注一下,微信公众号:“实干小海豹”,回复:”优化01a“,”优化01b“,”优化02a“,”优化02b“,”优化02c“,”优化02c“.. ...

    4. k8s系列----一个简单的例子

      本实验来自k8s权威指南 解决访问demo出错,关键是靠https://www.cnblogs.com/neutronman/p/8047547.html此链接下面的某个大神的评论 主要yaml文件 ...

    5. 51nod 1002 数塔取值问题 dp

      动态规划 1002 数塔取数问题 1.0 秒 131,072.0 KB 5 分 1级题   一个高度为N的由正整数组成的三角形,从上走到下,求经过的数字和的最大值. 每次只能走到下一层相邻的数上,例如 ...

    6. Webpack中hash、chunkhash和contenthash三者的区别

      在webpack中有三种的方式生成哈希值,分别为hash.chunkhash和contenthash.这三种方式有着不同的用处,或者说在webpack的不同环境中,会使用不同的方式生成哈希值.那为什么 ...

    7. 远程连接Linux下mysql报10061

      最近接到一个新活,四台Linux服务器配置MySQL热机双备+IP隧道LVS集群服务,尽管好想使个眼神杀死老大,但特么心里是感激的.不多说一口气装了n个Ubuntu-server. 每次在虚拟机装完M ...

    8. 普通版js运动框架

      //获取样式 function getStyle(obj){ if(obj.currentStyle){ return obj.currentStyle[attr]; }else{ return ge ...

    9. 一招教你轻松使用数据可视化BI软件创建旅游消费数据可视化大屏

      灯果数据可视化BI软件是新一代人工智能数据可视化大屏软件,内置丰富的大屏模板,可视化编辑操作,无需任何经验就可以创建属于你自己的大屏.大家可以在他们的官网下载软件.   本文以旅游消费数据可视化大屏为 ...

    10. Linux内存管理解析(二) : 关于Linux内存管理的大体框架

      什么是内存管理 ? 首先内存管理管理的主要对象是虚拟内存,但是虚拟内存对应的映射主要为物理内存,其次也可能通过交换空间把虚拟内存与硬盘映射起来,既然如此,那我们先了解物理内存的管理. 对于物理内存而言 ...