Se você não consegue mexer no código do aplicativo e o próprio aplicativo ainda não passa essa informação para o banco de dados, você está em um impasse. A única maneira de disponibilizar essas informações para o código de back-end é que a camada intermediária as transmita.
A Oracle oferece várias maneiras de os aplicativos passarem informações da camada intermediária para o back-end, mas o aplicativo precisa ser construído para aproveitá-las. O
DBMS_APPLICATION_INFO
pacote, por exemplo, tem um set_client_info
procedimento que permite que a camada intermediária passe o nome do usuário da camada intermediária que seu gatilho de back-end pode consultar. Você também pode usar Contextos Oracle se você quiser um mecanismo mais geral. No entanto, qualquer uma dessas abordagens requer de forma realista que o aplicativo Java seja gravado para transmitir essas informações ao back-end quando as conexões forem recuperadas do conjunto de conexões.