在如今信息泛滥的数字时代中对产品安全性的要求越来越高了,就比如说今天要讨论的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. It is possible and safe to monitor a table DML history on sqlserver

      He is my test step: In a test enviroument, I make a table "test"/ demo table:create table ...

    2. GitHub新手教学(从新手安装到初步使用)

      版权声明:本文为博主原创文章,转载请标明出处! 博客地址:http://blog.csdn.net/qazwsxpcm https://blog.csdn.net/qazwsxpcm/article/ ...

    3. 12-Tomcat&Servlet:

      今日知识 1. web相关概念回顾 2. web服务器软件:tomcat 3. servletr入门学习 web相关概念回顾 1. 软件架构 1. C/S:客户端/服务器端 2. B/S:浏览器/服务 ...

    4. java方法参数传递方式只有----值传递!

      在通常的说法中,方法参数的传递分为两种,值传递和引用传递,值传递是指将实际参数复制一份传递到方法中, 在方法中的改动将不会影响到实际参数本身,而引用传递则是指传递的是实际参数本身,在方法中的改动将会影 ...

    5. 蓝桥杯ALGO-1,区间k大数查询

      #include<stdio.h> int devide(long a[], int low, int high) { long key = a[high]; while (low< ...

    6. centos7安装Elasticsearch及Es-head插件详细教程(图文)

      懒惰了很久,今天来写一下Elasticsearch在centos7上安装教程以及安装过程中可能出现的报错解决方式,有不对的地方,烦请各位看官多多指教! 一.ES安装 1.环境检查 确保有java环境, ...

    7. 聊聊GIS中的坐标系|再版 详细定义、计算及高程系统

      本篇讲坐标系统的详细定义,有关坐标系的变换公式,以及简单说说高程坐标系统. 本文约6000字,阅读时间建议45分钟.硬内容比较多,如有疏漏错误请指出,建议有兴趣的朋友进一步阅读. 作者:博客园/B站/ ...

    8. 在非NDK编译条件下使用Android Log函数

      解决的需求 有些时候不能在NDK环境编译,或者使用NDK编译会颇费周折,然后又想使用Android系统自带的Log类方法,那么我们就可以使用dlopen来实现我们的目的.比如在OpenCV中添加And ...

    9. Linux 用户、用户组管理

      Linux系统是一个多用户多任务的分时操作系统,每个用户都有用户名(唯一).口令,用户名唯一标识该用户账号. 用户管理主要涉及到用户添加.修改和删除. 切换用户 su  用户名     su即swit ...

    10. ELK学习005:Kibana 安装与运行

      下载安装Kibana 1. 下载地址:https://www.elastic.co/cn/downloads/kibana 2. 解压下载的压缩包 [root@localhost ~]# tar -z ...