One thing that might be helpful is abstracting away the implementation
from EGL code.
For our Java programs, we have database connection pools of two sorts.
The first sort (for read-only queries) is the built in JDBC connection
pool, which allows us to tie in a generic user id/password. The other
is a J2C resource adapter that leverages the identity token resource
adapter to provide an id token-authenticated JDBC connection.
If we want to switch a program from using a connection from the
generic pool to using a connection from the JDBC-id token pool, all
we have to do is switch the resource reference in WebSphere to point
to the right pool. No code changes are required.
If EGL could be similarly indifferent to the implementation, that will
keep the developer's code cleaner.
From: egl-i-bounces@xxxxxxxxxxxx [mailto:egl-i-bounces@xxxxxxxxxxxx] On
Behalf Of Joe Pluta
Sent: Wednesday, August 27, 2008 12:07 PM
To: EGL on and around the IBM i
Subject: Re: [EGL-i] EGL & EIM?
Justin Taylor wrote:
The saga continues...
I have WAS configured for EIM, verified with the testIdentityToken
application. I have incorporated portions of the testIdentityToken
source into my EGL code. It appears to obtain an IdentityToken
correctly, but the actual iSeries connection,
"AS400.connectService(AS400.RECORDACCESS)", returns a
"com.ibm.as400.access.AS400SecurityException: User ID is not known."
As I noted in EGL Cafe, are you trying to get the EGL connection to
work, or are you trying to get the testIdentityToken Java code to work
when invoked as a native class from EGL?
The EGL connection won't work yet because it doesn't have support for
the setIdentityToken method. But if you can get the testIdentityToken
code to work from within an EGL session, then we ought to be able to
find out what needs to be added to the EGL code to get the token.
One possibility is for IBM to expose the AS400 object to a native method
so that you can set that value yourself. The cleaner way is to have a
method SysLib.setRemoteUser("*TOKEN") which will cause the EGL code to
get the token from the HTTP session.