外键加密W / Jasypt和GORM ORM

时间:2016-08-08 09:28:39

标签: grails encryption gorm jasypt

我实际上处理的是一个在我的数据库上处理敏感数据的项目,所以我需要加密它们。

我的技术环境是这样的:

  • Web框架:Grails(v2.4.4)
  • ORM:GORM(基于Hibernate 4)
  • 加密库:Jasypt(v1.3.1)

在我需要加密的所有数据中,我可以找出2个案例:

  1. 简单属性(例如,名字,姓氏等)。我已经知道如何处理这个问题(Hibernate类型转换:http://www.jasypt.org/hibernate.html)。所以没问题。

  2. 两个对象之间的链接(例如,Person对象和Job对象)。我想打破数据库中这两个表之间的链接,因此无法在" where"中找到Person和Job之间的链接。请求DB。这是我的实际问题。

  3. 以下是用于启动案例#2的代码示例示例:

    ParentClass.groovy:

    class ParentClass extends …  implements ...{
    
        String id
    
        static mapping = {
            id generator: 'my.package.CustomGeneratorUtils'
    
        }   
    }
    

    ChildClass.groovy:

    class ChildClass extends ... implements ...{
    
        static belongsTo = [parentClass : ParentClass]
    
        ...   
    
        static mapping = {
    
            parentClass column: 'parentClass_id', insertable: false, updateable: false
    
            parentClass type: GormEncryptedStringType
    
        }
    
        ...
    
    }
    

    以下是有关我的问题的元素列表:

    • GORM会自动在数据库中创建与业务对象相对应的表
    • GORM会自动在ChildClass表中创建一个parentClass_id列,以便建立链接
    • 我的ParentClass有一个技术主键,与ChildClass有一个0..n的关系
    • 我需要通过String typed id,因为加密值是一个字母数字值。这就是我使用自定义id生成器的原因,它允许我在数据库中构建一个带有经典序列的String类型id。
    • 我希望将ParentClass Id保持清除,但要加密引用parentClass表的ChildClass的外键。

    感谢您的帮助!

0 个答案:

没有答案