2011-12-14 6 views
3

私はGrailsドメインクラスの特定の列を暗号化/復号化することが可能かどうか疑問に思っていたデータセキュリティを導入したいのですが、もしそうなら、最も簡単な方法は何ですか?Grailsドメインクラスの列を暗号化/復号化する方法は?

私はUserクラスを持っていて、ssn番号または銀行口座番号を暗号化したいので、DBにプレーンテキストとして格納されていません。何が最善のアプローチですか?

答えて

3

私はこれを正確に行うためにjasypt encryption pluginを作成しました。ドキュメントはリンクされたbitbucket wikiにあり、その上に私が与えたslides from a presentationもあります。

保護するフィールド(デフォルトではBouncy Castle AES暗号化プロバイダ)でフィールドレベルの暗号化を行うために、ドメインクラスに注釈を付けるのが簡単です。

1

ドメインプロパティのget/setメソッドをオーバーライドして、暗号化して復号化します。適切な暗号アルゴリズムを選択するだけで済みます。明らかに、双方向のものを選択してください。

+0

を、それはもう少し複雑だ...それはまた、休止状態と思われますgetterとsetterを使用するため、暗号化されていないデータが書き込まれます。しかし、シャドウプロパティを作成した場合(それが一時的であることを確認してください)、それは非常にうまくいきます! – rdmueller

+0

シャドウプロパティーとはどういう意味ですか? – Marco