spring data jpa 拦截 20C

spring boot项目,数据层spring data jpa
现在想在数据层把个人信息的敏感字段加密?因为项目过大,如何事项在查询语句执行之前增加拦截,将查询参数进行加密,及获取数据后将查询数据进行解密。

0

3个回答

简单的对方法进行aop方式的处理,还是有其他需要特别注意的地方?

1

建议将敏感字段置空,或者通过不同接口返回,对于数据安全上可以使用oauth、jwt等技术通过token来获取敏感,因为即使你数据进行了加密。前端仍然需要解密,不但浪费性能,还会加大工作量,望采纳!

0
tingyk
村西头最帅的仔 加这个功能,是甲方的需求,为了防止DB直接在数据库内获取数据。
9 个月之前 回复

可以了解下 AttributeConverter 看看是否满足需求哈,示例代码见下文,示例为将实体类中定义的 Instant 类型转换为 Date 类型以存入数据库。
(同理的,字符串转字符串也可以定义,此时,dbData 为加密后的数据,实体中属性为未加密数据即可)

定义 Converter

 public class InstantDateAttributeConverter implements AttributeConverter<Instant, Date> {
    @Override
    public Date convertToDatabaseColumn(Instant attribute) {
        return Optional.ofNullable(attribute)
                .map(Date::from)
                .orElse(null);
    }

    @Override
    public Instant convertToEntityAttribute(Date dbData) {
        return Optional.ofNullable(dbData)
                .map(Date::toInstant)
                .orElse(null);
    }
}

使用 Converter (当然要在 JPA 的实体类中使用哈)

@Convert(converter = InstantDateAttributeConverter.class)
private Instant modifiedTime;
0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
利用AOP为Spring Data Jpa的接口Repository添加全局自定义过滤
安子我最近在做一个权限控制模块,大抵是有权限的人能从数据库中查到的信息比权限低的人查的多一些。工程用的是JPA hibernate,想做一个过滤器来设置条件过滤。 一开始安子我想过直接用aspectj来做过滤,但是不知道为啥: @Around("this(net.risesoft.repository.DyGroupRepository)") 不太好使,也不知道为啥不好使比较尴尬,这个问题留
二十一、Spring boot中Jpa持久化监听器,拦截增删改查
  在JPA中,我们使用Java Persistence API进行数据的持久化(增删改查),相应的该API也提供了监听数据持久化生命周期中的回调方法,主要由以下几个注解来实现: * @PrePersist 保存前 * @PostPersist 保存后 * @PreRemove 删除前 * @PostRemove 删除后 * @PreUpdate 更新前 * @PostUpdate 更...
SpringBoot intercept拦截器中获取JPA数据库操作实例
使用“org.springframework.web.context.support.WebApplicationContextUtils;”类 这个工具类可以通过HttpServletRequest请求对象的上下文(ServetCotext)获取Spring管理的Bean private T getMapper(Class clazz,HttpServletRequest reques
spring整合spring-data-jpa出现aop方面的冲突
java.lang.ClassNotFoundException: org.springframework.cglib.transform.impl.MemorySafeUndeclaredThrowableStrategy的解决方法 org.springframework.data spring-data-jpa 1.6.0.RELEASE
Spring Boot下基于JPA抓取SQL运行时的参数值
引言: 在系统开发过程中,涉及到数据库操作都是SQL的天下,基于ORM的各类框架来简化开发;在JPA/Hibernate方案中,只提供了SQL的打印输出,但并未输入SQL的参数值是多少,这里将解决这个问题,告知具体如何来实现这个操作。
spring解决sql注入问题:自定义拦截器
近期刚做完的restful接口项目用安全软件扫描后,出现blind sql inject高危漏洞,查看,程序里已经使用了PreparedStatement预编译sql,却仍不好使,找不出原因,最后不得已,自定义了一个sql注入拦截器,对含有非法攻击字符的接口输入参数进行拦截,再次扫描后,漏洞消失。具体实现如下:       一、自定义拦截器类SqlInjectInterceptor,实现spri
spring data jpa 实例源码
spring data jpa 实例源码 spring data jpa 实例源码 spring data jpa 实例源码
Spring data jpa的高级查询的应用和底层原理分析
spring data jpa的查询 目前比较简单的查询: 三种查询方案 固定参数查询 interface XxxRepo implements JpaRepository&amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;T,Long&amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;{ EntityXxx findByNameAndSex(String name,String sex); } 这种方式是简单的,方法名表达自己想查询的方法。支
Spring Data JPA 工作原理 : 自定义JpaRespository接口却不用提供实现
概述 当我们使用 Spring Data JPA 的时候,典型的用法是这样的 : 将 spring-data-jpa 包,数据库驱动包等添加为项目依赖; 配置文件定义相应的数据源; 为应用添加注解@EnableJpaRepositories; 定义业务领域实体类,比如通过@Entity注解;定义业务领域实体类,比如通过@Entity注解; 定义自己业务相关的的JPA repository接口,这...
Spring Data JPA - 开发文档.pdf
Spring Data JPA - Reference Documentation Spring Data JPA 开发文档
Spring Data JPA中文文档[1.4.3]
Spring Data JPA中文文档[1.4.3] Spring Data JPA中文文档[1.4.3]
spring data jpa 中文文档
spring data jpa 中文文档,spring data中文文档,spring data jpa 中文文档
spring data jpa 通过方法名称查询、限制查询结果查询
2个javabeanpackage com.example.demo.entity; import javax.persistence.*; import java.io.Serializable; @Entity @Table(name = &quot;class_room&quot;) public class ClassRoom implements Serializable { @Id @G...
hibernate-jpa拦截器使用
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="persistenceProvider" r
SpringBoot 2.0 +spring-data-jpa 自定义注解完成数据库切库
1、pom中添加 &amp;amp;amp;lt;!--spring boot--&amp;amp;amp;gt; &amp;amp;amp;lt;dependency&amp;amp;amp;gt; &amp;amp;amp;lt;groupId&amp;amp;amp;gt;org.springframework.boot&amp;amp;amp;lt;/groupId&amp;amp;amp;gt; &amp;amp;amp
spring data jpa 深入浅出的理解
文章来源于 : https://www.cnblogs.com/cmfwm/p/8109433.html这是一篇写得很不错的关于spring-data-jpa的文章 , 转载到此 , 方便大家学习交流 .本篇进行Spring-data-jpa的介绍,几乎涵盖该框架的所有方面,在日常的开发当中,基本上能满足所有需求。这里不讲解JPA和Spring-data-jpa单独使用,所有的内容都是在和Spri...
Spring Data jpa搭建+配置详解
我们都知道Spring是一个非常优秀的JavaEE整合框架,它尽可能的减少我们开发的工作量和难度。   在持久层的业务逻辑方面,Spring开源组织又给我们带来了同样优秀的Spring Data JPA。   通常我们写持久层,都是先写一个接口,再写接口对应的实现类,在实现类中进行持久层的业务逻辑处理。   而现在,Spring Data JPA帮助我们自动完成了持久层的业务逻辑
spring data jpa 使用过程中出现的坑,请绕行
weLive spring data 的使用过程中出现的问题,以及解决方式 数据库使用的sqlserver 首先我们这里有manyToOne 和oneToMany,oneToOne三种表与表之间的映射方式 1.@ManyToOne(fetch = FetchType.LAZY, targetEntity = LessonInfo.class) @JoinColumn(name = &quot;ver...
spring data common
spring data jpa;spring data common
Spring Data Jpa系列教程(二)--------实体解析和关联关系
Spring Data Jpa是基于HIbernate开发的,所以建立实体建的实体和映射关系需要好好好的去了解一下,本文有以下内容,实体管理器介绍,实体与数据库表的映射介绍,关联关系(一对多,多对多)介绍,SpringDataJpa应用分析   ------实体管理器   实体管理器EntityManager是实体与数据库的桥梁(和事务一起发挥作用),相当于Hibenrtae中的session...
springboot,jpa,spring data,jdbc template使用代码
spring boot,持久层的使用实例,其中使用了JPA 、Hibernate、Spring Data、Spring Data JPA、JdbcTemplate
Spring Boot DATA JPA抓取SQL运行时的传递进去的参数信息
     在系统开发过程中,涉及到数据库操作都是SQL的天下,基于ORM的各类框架来简化开发;在JPA/Hibernate方案中,只提供了SQL的打印输出,但并未输入SQL的参数值是多少,这里将解决这个问题,告知具体如何来实现这个操作。 1.  技术栈的介绍    JDK 1.8,  Spring Boot 2.0.3.RELEASE, Mysql 5.7 2.  依赖包     Spri...
Spring Data JPA实战视频教程
JPA入门 Spring Data JPA入门 Repository的定义 查询方法的命名策略 JPQL查询,结果映射 Named Query,Named Native Query 排序,分页 JPA Criteria查询 Querydsl查询 Query by Example 一对一,一对多,多对一,多对多 @EnableJpaRepositories 注解 自定义、扩展
一个被行业低估的框架《Spring Data JPA》【《Spring Data JPA 实战》达人课】
“初衷”:随着Java技术和微服务技术逐渐的广泛的应用,Spring Cloud、Spring Boot逐渐统一Java的框架江湖。市场上的ORM框架也逐渐被人重视起来。Spring Data逐渐走入Java开发者的视野,被很多架构师作为ORM框架的技术选型。市场上没有对Spring Data JPA的完整介绍。资料比较零散,很难一下子全面的、深入的掌握Spring Data JPA。本书注重从实...
spring data jpa视频教程
spring data jpa视频教程百度云盘下载地址
Spring Data Jpa 学习——偷懒一定要做到极致
项目中用到了Spring Data Jpa,确实比之前用Hibernate sessionFactory顺手很多,大部分的Sql语句都由Spring帮我们自动生成。 之前的应用局限于Spring Data Jpa的基础,比如Crud操作,分页查询、排序之类。正好今天有空,对其文档仔仔细细的看了一遍,发现还有很多之前遗漏的瑰宝。SpEl Expression官方文档中是这样的:@Entity pub
2018 Spring Data Jpa 和mybatis的 动态条件查询比较 研究。
jpa, spring data jpa, hibernate ,和mybatis的基础知识,此处不说了,想要了解可以自行百度。 spring data jpa 和mybatis的单表查询和多表关联查询也不做描述。 主要想说下 spring data jpa和mybatis在动态条件查询时候的优劣。 前者主要是面向对象的查询,后者面向关系的查询。 前者不用写sql语句,直接上代码,在多条件...
spring data jpa遇到的一些琐碎问题
jpa是几年前就已经接触过了,不过中间隔了好久没使用过,忘了不少细节上的问题。今天就来分享下在项目中遇到的一些坑吧,应该都比较基础,注意就好。 1.对象与表的映射。 全程采用注解形式,对象中的字段可以根据数据表的字段进行定义,但是在建数据表的时候要保证数据表字段都要是大写,否则在关联关系(如:一对多,多对一,多对多等)上一直会出错,说找不到对应的列。对于对象的get、set方法,可以直接采用简
Spring Data JPA 查询方法那些事
Spring Data 提供了几个接口供继承使用,如 JpaRepository,另外还规定了方法查询中的关键字,即你命名的查询方法需要符合规范。 详情参考:SpringBoot整合Spring Data JPA、SpringDataJPA入门。 本篇博文详细记录Spring Data JPA查询中的那些事。 【1】方法查询 ① 只要符号命名规范的接口都可以被正常解析使用 如下所示:...
Spring Data Jpa 中文翻译文档
Spring Data Jpa 中文翻译文档 标签(空格分隔): JPA Spring Spring Data JPA - 参考文档 Oliver Gierke Thomas Darimont Christoph Strobl Mark Paluch 杰伊布莱恩特 版本 2.1.0.M3,2018-05-17 ©2008-2018原作者。 本文件副本可供您自行使用并分发给其...
SpringData Jpa 入门(基本配置)
Spring Data是什么 Spring Data是一个用于简化数据库访问,并支持云服务的开源框架。其主要目标是使得对数据的访问变得方便快捷,并支持map-reduce框架和云计算数据服务。 Spring Data 包含多个子项目: Commons - 提供共享的基础框架,适合各个子项目使用,支持跨数据库持久化 JPA - 简化创建 JPA 数据访问层和跨存储的持久层功能
Spring Data Jpa 查询操作的基本实现(Spring Data Jpa 2)
基于方法名解析的概念  JpaRepository支持接口规范方法名查询。意思是如果在接口中定义的查询方法符合它的命名规则,就可以不用写实现。  例如: findByName这个方法表示从数据库中查询Name这个属性等于XXX的所有记录,类似于SQL语句: select* from xxTable where name=xxx 这种形式  这段话有两个重点: 方法名需要在接口中设定 必须符合一定的命
Spring Data JPA中常用的注解详解
好吧!今天就来讲下Spring Data JAP中的常用注解~~!先附上昨天的实体类代码!我们先看看类前面的两个注解~!@Entity标识这个实体类是一个JPA实体,告诉JPA在程序运行的时候记得生成这个实体类所对应的表~!@Table(name = &quot;自定义的表名&quot;)自定义设置这个实体类在数据库所对应的表名!@Id把这个类里面所在的变量设置为主键Id。@GeneratedValue设置主键的生成...
spring boot 开发—第四篇SpringDataJPA使用druid数据源
对SpringDataJPA项目进行改造,增加durid数据源支持。 1、Druid 简介 Druid是一个高效的数据查询系统,主要解决的是对于大量的基于时序的数据进行聚合查询。数据可以实时摄入,进入到Druid后立即可查,同时数据是几乎是不可变。通常是基于时序的事实事件,事实发生后进入Druid,外部系统就可以对该事实进行查询。 2、构建项目 修改pom文件,增加对druid的依...
Spring Data JPA 实战(一)-体系结构及基本配置
Spring Data JPA原理与应用(一) 一.Spring DataJPA介绍 使用Spring Data Repository将程序员从大量重复繁杂的数据库层操作中解放啊出来。 二.Repository:遍历的数据访问层 1.  Repository的体系结构   2.  Repository接口介绍 2.1 Repository Spring-Data-Commons
Spring Data JPA - 如何创建查询(12)投影
作者简介 陈喆,现就职于中科院某研究所担任副研究员,专注于工业云平台、MES系统的设计与研发。 内容来源:https://docs.spring.io/spring-data/jpa/docs/2.0.9.RELEASE/reference/html/#projections Spring Data的查询方法可以返回repository管理的聚合根类的一个或多个实体。然而,有时候需要根据...
SpringDataJPA学习记录(一)--环境配置
SpringDataJPA学习记录(一)–环境配置标签(空格分隔): springJPA1.maven配置首先需要spring相关架包,其实spring-data-jpa里面已经依赖了,如果你想用自己的版本则需要额外引入spring相关包.JPA实现还都是hibernate去实现的,所以还需要hibernate相关包.mysql就更不用说了. <!--JPA start--> <d
spring data的jpa查询方法规范
  除了已经给了的方法,我们可以根据具体业务来自定义,下面的自定义的一些规范 基本:find…By, read…By, query…By, count…By, get…By,and,or。 属性:例子 School.findByClassStudent(Student student),如果school类有一个属性叫classStudent则把student赋给这个属性,如果没有就把Clas...
spring data jpa 快速入门上手
spring data jpa介绍 首先了解JPA是什么? JPA(Java Persistence API)是Sun官方提出的Java持久化规范。它为Java开发人员提供了一种对象/关联映射工具来管理Java应用中的关系数据。他的出现主要是为了简化现有的持久化开发工作和整合ORM技术,结束现在Hibernate,TopLink,JDO等ORM框架各自为营的局面。值得注意的是,JPA是
Spring Data Jpa系列教程(一)--------入门
大渣好,我是小小书生,现在开始,我们来学习船新的一门技术,SpringDataJpa,它是一个。。额。。(我百度一下)   JPA(Java Persistence API)是Sun官方提出的Java持久化规范。它为Java开发人员提供了一种对象/关联映射工具来管理Java应用中的关系数据。他的出现主要是为了简化现有的持久化开发工作和整合ORM技术,结束现在Hibernate,TopLink,...
文章热词 设计制作学习 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java 用学习jpa吗 长江师范学院大数据