Play Framework,RAW字段无法正常工作

时间:2012-07-26 07:04:25

标签: oracle playframework playframework-1.x

我有一个像这样的用户模型

@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();
    }
}

在数据库密码上,其RAW类型和在控制器上使用RSA进行编码。

主要的是它没有找到任何结果,因为进入数据库的二进制文件似乎与该字段上的二进制文件不同。

起初我认为它可能是应用程序上的一些字符编码问题,但后来我指向相同的数据库,但在生产和它工作。所以我检查了Devel DB并发现另一个Characterset而不是 ISO-8859-1 (prod) ISO-8859-15 (devel)似乎没什么不同。

更新devel characterset之后,情况就是一样的。是否有其他地方RSA字符串在DB上编码错误?

流程说明:

该过程是一个登录过程,用户在该过程中插入电子邮件和密码,最后一个过程使用RSA进行编码,并将结果发送给DB进行比较。
DB上的字段包含类似这样的值:

CB4F3ECB7763C98EF67CA761700D1FB255F90E4473B1BB594B2238756307DF2D155D57A2CBA2930C162CB0634765D48EA111F743F6825F2457340148F680E300

更多信息:

  • DB Oracle 10g
  • Play Framework 1.2.4

1 个答案:

答案 0 :(得分:0)

不要将二进制数据映射到String,而是使用byte [],这样就不会出现任何字符编码问题。