このようなユーザーモデルがあります
@Entity
@Table(name="SHOPPER")
public class User extends GenericModel {
@Id
@Column(name="SHRFNBR")
@GeneratedValue(generator="SEQ_SHP", strategy=GenerationType.SEQUENCE)
@SequenceGenerator(name="SEQ_SHP", sequenceName="SEQ_SHP", allocationSize=1)
public Long id;
@Column(name="SHLOGID")
public String email;
@Column(name="SHLPSWD")
public String password;
public static User isUser(String user, String pass){
return User.find("byEmailAndPassword", user, pass).first();
}
}
DB パスワードでは RAW タイプで、コントローラーでは RSA でエンコードされています。
主なことは、DB に入るバイナリがフィールドにあるものとは異なるように見えるため、結果が見つからないことです。
最初は、アプリケーションの文字エンコーディングの問題である可能性があると考えていましたが、同じDBを本番環境で指摘したところ、うまくいきました。そこで、Devel DB を調べたところ、ISO-8859-1 (prod) の代わりに別の Characterset がISO-8859-15 (devel) であることがわかりました。
devel 文字セットを更新した後、状況は同じです。DBでRSA文字列が間違ってエンコードされている場所は他にありますか?
過程説明:
このプロセスは、ユーザーが電子メールとパスワードを挿入するログイン プロセスであり、最後のものは RSA でエンコードされ、結果は比較のために DB に送信されます。
DB のフィールドには、次のような値が含まれます。
CB4F3ECB7763C98EF67CA761700D1FB255F90E4473B1BB594B2238756307DF2D155D57A2CBA2930C162CB0634765D48EA111F743F6825F2457340148F680E300
より詳しい情報:
- DB オラクル 10g
- プレイ フレームワーク 1.2.4