JPA - 针对特定数据库用户执行查询

时间:2017-04-10 15:03:43

标签: java hibernate jpa

我正在使用Hibernate作为JPA开发JAX-RS(Resteasy)应用程序。后端数据库是Oracle。目前,我已在WildFly中定义了Oracle数据源,并且针对在数据源中配置的Oracle用户执行了JPA查询。

现在我要围绕web api实现安全性。为此,我将使用JWT令牌。我的Oracle数据库中的App_Users表包含用户(请注意,这些用户实际上被定义为Oracle数据库用户)。

这里有两个要求:

  1. 当用户发送其登录凭据时,在生成JWT之前 对于用户,我必须针对oracle验证凭据 数据库中。

  2. 当用户发送post / put请求时,出于审计目的,我想执行 针对发送数据的用户的插入/更新查询不是 在WildFly数据源中配置的人。

  3. 我可以使用Hibernate JPA实现上述两个要求吗?

1 个答案:

答案 0 :(得分:1)

如果您想使用Wildfly提供的DataSource,我认为您无法动态更改每个交易的Oracle用户。这是JNDI提供的DataSource的应用程序服务器配置的一部分。

我建议创建一个Oracle用户,该用户具有应用程序在运行时使用的最小权限集。然后,我将在应用程序本身而不是在数据库级别实现审计。