在如今信息泛滥的数字时代中对产品安全性的要求越来越高了,就比如说今天要讨论的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. 5G为人工智能与工业互联网赋能 高清79页PPT

      人工智能和5G是时下最热门的科技领域之一,两者都是能改变社会,推进下一代工业革命的颠覆性技术. 工业互联网是利用基础科学.工业.信息技术.互联网等领域的综合优势,从大数据应用等软服务切入,注重软件.网 ...

    2. CAS 分析

      CAS是什么 (1) CAS(Compare and Swap) 比较并交换, 比较并交换是在多线程并发时用到的一种技术 (2) CAS是原子操作, 保证并发安全性, 而不是保证并发同步. (3) C ...

    3. Window10和Ubuntu 18.04双系统安装的引导问题解决

      作为码农 首先,建议了解下grub2的启动顺序和逻辑.可以参考这篇文章,grub.cfg详解. 从执行顺序倒推,如下如果全部执行成功,则会进入grub的启动菜单:如果最后一步,没有找到grub.cfg ...

    4. Force removing ActivityRecord no saved state问题的原因分析

      关键字,crash Force removing ActivityRecord,app died, no saved state的原因 相机拍摄的过程中断电,拍了一张黑图 I/ActivityMana ...

    5. Linux学习小记(1)---nm*ip

      注意在CentOS7中ifconfig等命令已经被ip取代,ip的功能很强大,而NetworkManager系列命令(nmcli nmtui等)可以用于配置网络连接

    6. toj 4353 Estimation(树状数组+二分查找)

      Estimation 时间限制(普通/Java):5000MS/15000MS     运行内存限制:65536KByte总提交: 6            测试通过: 1 描述 “There are ...

    7. 04.JS逻辑结构

      前言:  学习一门编程语言的基本步骤(01)了解背景知识(02)搭建开发环境(03)语法规范(04)常量和变量(05)数据类型(06)数据类型转换(07)运算符(08)逻辑结构8.逻辑结构——logi ...

    8. leaflet结合geoserver利用WFS服务实现图层删除功能(附源码下载)

      前言 leaflet 入门开发系列环境知识点了解: leaflet api文档介绍,详细介绍 leaflet 每个类的函数以及属性等等 leaflet 在线例子 leaflet 插件,leaflet ...

    9. C# WPF 一个设计界面

      微信公众号:Dotnet9,网站:Dotnet9,问题或建议:请网站留言, 如果对您有所帮助:欢迎赞赏. C# WPF 一个设计界面 今天正月初三,大家在家呆着挺好,不要忘了自我充电. 武汉人民加油, ...

    10. C#在屏幕画点

      Graphics类没有提供直接画点的方法,最开始想使用填充圆形区域來实现,结果发现点很大,占据了4个像素.使用起点和终点一样来划线什么也没画出.画矩形,画椭圆都没实现.最后试到填充矩形,这次成功了. ...