【发布时间】:2015-02-13 03:09:09
【问题描述】:
我成功地将我的 Spring Hibernate 后端与 Jasypt 集成。 根据以下实体类,我已经加密了它的 name 字段,由于加密过程现在发生,数据库学生表的 name 列包含加密数据。
我需要知道,
1) 当我编写一些 DAO 查询以通过他的名字搜索某个学生时,我是否必须将该 搜索文本 作为纯文本传递,或者我也必须加密该值?
2) 使用 DAO 查询,当我列出所有学生按姓名排序时,它应该根据数据库级别的加密值或解密(真实)值进行排序(这意味着 Jasypt 将为我解密这些值)?
谢谢。
实体类
@Entity
@Table(name = "student")
public class Student implements Serializable {
@Id
@GeneratedValue
@Column(name = "ID")
private Integer id;
@Type(type="encryptedString")
@Column(name = "name")
private String name;
}
DAO 类
public interface StudentRepository extends CrudRepository<Student, Integer> JpaSpecificationExecutor<Student> {
public List<Student> findByName(String searchText);
public List<Student> findAll(null, (new Sort(Direction.ASC, "name")));
}
【问题讨论】:
标签: java spring hibernate encryption jasypt