【问题标题】:JPA - Execute query against specific database userJPA - 对特定数据库用户执行查询
【发布时间】:2017-04-10 15:03:42
【问题描述】:

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

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

这里有两个要求:

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

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

我可以用 Hibernate JPA 实现以上两个要求吗?

【问题讨论】:

    标签: java hibernate jpa


    【解决方案1】:

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

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

    【讨论】:

    • 问题是我无法在应用程序中添加审计功能,因为它已经使用触发器在数据库级别实现。这是一个遗留数据库。
    猜你喜欢
    • 2012-11-18
    • 1970-01-01
    • 2011-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-01
    • 2017-08-19
    相关资源
    最近更新 更多