浅谈访问接口的数据安全性

2022-01-28  本文已影响0人  嘻洋洋

数据接口的访问有时常常和和身份唯一合法验证有关。

1.通过session来控制

1.1 控制方式

传统做法通过session识别身份,具体步骤

以上两种方法适合简单早期的应用,如遇到应用系统集群,需要解决session共享的问题。又如接口同时提供对外访问。总不能特殊处理再重写一下吧?

1.2 session共享方式

spring boot项目使用tomcat服务器实现session共享的方式,使用redis存储session对象值
(1)添加依赖

        <!--使用redis -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <!--session 共享 -->
        <dependency>
            <groupId>org.springframework.session</groupId>
            <artifactId>spring-session-data-redis</artifactId>
        </dependency>

(2)在yml中配置redis

spring:
    redis:
        password: 123456
        pool:
            max-active: 21
            max-idle: 8
            max-wait: -1
            min-idle: 0
        sentinel:
            master: sentinel-name
            nodes: 192.168.1.2:6389,192.168.1.3:6390,192.168.1.4:6387
        timeout: 1000

此处配置完全是spring-boot-starter-data-redis相关配置参数,跟spring-session-data-redis无关。后者依赖前者
(3)在项目启动类上添加如下注解@EnableRedisHttpSession
通过@EnableRedisHttpSession注解开启Session共享功能

@Configuration
@EnableRedisHttpSession(maxInactiveIntervalInSeconds= 3600, flushMode  = FlushMode.ON_SAVE)
public class RedisCacheConfig
{
}

注解的主要作用是注册一个SessionRepositoryFilter,这个Filter会拦截到所有的请求,对Session进行操作

2.通过请求中携带cookie或者head身份信息

思路一:

思路二:

上一篇 下一篇

猜你喜欢

热点阅读