是否可以在没有javaEbean的情况下使用play-authenticate?

时间:2013-12-26 07:04:51

标签: java jpa playframework play-authenticate

我已经跟进了this sample code并尝试使用简单的JPA来实现它。但是,当我尝试使用Google帐户注册或使用现有用户帐户登录时,它会给我这个错误。

  

[RuntimeException:没有EntityManager绑定到此线程。尝试使用@ play.db.jpa.Transactional]

注释您的操作方法
private static List<User> getAuthUserFind(final AuthUserIdentity identity) 
{
  -> List<User> query = JPA.em().createQuery(

在谷歌搜索一段时间后,许多解决方案建议在调用播放操作中添加@Transactional注释,但该操作在播放验证代码中。

是否有针对此问题的解决方案,或者我是否必须将其与Ebeans一起使用?

我正在使用Play Framework 2.2.1并在Java中实现我的程序。

2 个答案:

答案 0 :(得分:0)

没有必要使用Ebean, 我使用mybatis作为持久性提供程序,但为了保存用户和登录没有问题,你应该使用相同的散列算法。

哈希算法用于存储密码。

要使用JPA或您想要的自定义持久性提供程序,您应该实现Authentication Provider接口,请参阅示例项目中的UsernamePasswordAuthProvider以获取更多详细信息。

特别关注&#34; signupUser&#34;和&#34; loginUser&#34;方法

我修改了play-authenticate以支持登录/密码而不是电子邮件/密码identityId。

请参阅Modified version of Play-Authenticate

干杯。

答案 1 :(得分:0)

您可以使用JPA.withTransaction(回调)。如果你不能将@Transactional放在一个方法中,或者你不想这样做,这是更好的方法。

干杯,

阿尔贝托