2017-04-10 9 views
0

JPAとしてHibernateを使用してJAX-RS(Resteasy)アプリケーションを開発しています。バックエンドデータベースはOracleです。現在、WildFlyでOracleデータソースを定義しており、JPAクエリはデータソースで設定されたOracleユーザーに対して実行されます。JPA - 特定のデータベースユーザーに対してクエリを実行

今、私はWeb APIの周りにセキュリティを実装する必要があります。このために、JWTトークンを使用します。 OracleデータベースのApp_Usersテーブルにはユーザーが含まれています(これらのユーザーは実際にはOracleデータベースユーザーとして定義されています)。

ここでは2つの要件がありますユーザーがユーザーのためにJWT を生成する前に、彼のログイン資格情報を送信すると

  1. が、私は、Oracleデータベースに対して 資格情報を検証する必要があります。

  2. ユーザーがポスト/ PUTリクエストを送信し

    は、監査の目的のために、私は にデータを送信しているユーザーに対して、挿入/更新クエリを実行したくない WildFlyデータソースに設定されている1。

上記の2つの要件をHibernate JPAで達成できますか?

答えて

1

Wildflyが提供するDataSourceを使用する場合は、トランザクションごとにOracleユーザーを動的に変更することはできません。これは、DataSourceが提供するJNDIのアプリケーションサーバー構成の一部です。

実行時にアプリケーションで使用するための最小限の権限を持つOracleユーザーを作成することをお勧めします。次に、データベースレベルではなく、アプリケーション自体で監査を実装します。

+0

問題は、既にデータベースレベルでトリガを使用して実装されているため、アプリケーションに監査機能を追加できないことです。これは従来のデータベースです。 –

関連する問題