|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.springframework.jdbc.datasource.UserCredentialsDataSourceAdapter
An adapter for a target DataSource, applying the given user credentials to
every standard getConnection()
call, that is, implicitly
invoking getConnection(username, password)
on the target.
All other methods simply delegate to the corresponding methods of the
target DataSource.
Can be used to proxy a target JNDI DataSource that does not have user
credentials configured. Client code can work with the DataSource without
passing in username and password on every getConnection()
call.
In the following example, client code can simply transparently work with the preconfigured "myDataSource", implicitly accessing "myTargetDataSource" with the specified user credentials.
<bean id="myTargetDataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName"><value>java:comp/env/jdbc/myds</value></property> </bean> <bean id="myDataSource" class="org.springframework.jdbc.datasource.UserCredentialsDataSourceAdapter"> <property name="targetDataSource"><ref bean="myTargetDataSource"/></property> <property name="username"><value>myusername</value></property> <property name="password"><value>mypassword</value></property> </bean>
If the "username" is empty, this proxy will simply delegate to the
standard getConnection()
method of the target DataSource.
This can be used to keep a UserCredentialsDataSourceAdapter bean definition
just for the option of implicitly passing in user credentials if
a particular target DataSource requires it.
getConnection()
Constructor Summary | |
UserCredentialsDataSourceAdapter()
|
Method Summary | |
void |
afterPropertiesSet()
Invoked by a BeanFactory after it has set all bean properties supplied (and satisfied BeanFactoryAware and ApplicationContextAware). |
protected java.sql.Connection |
doGetConnection(java.lang.String username,
java.lang.String password)
This implementation delegates to the getConnection(username, password)
method of the target DataSource, passing in the specified user credentials.
|
java.sql.Connection |
getConnection()
Determine whether there are currently thread-bound credentials, using them if available, falling back to the statically specified username and password (i.e. values of the bean properties) else. |
java.sql.Connection |
getConnection(java.lang.String username,
java.lang.String password)
|
int |
getLoginTimeout()
|
java.io.PrintWriter |
getLogWriter()
|
void |
removeCredentialsFromCurrentThread()
Remove any user credentials for this proxy from the current thread. |
void |
setCredentialsForCurrentThread(java.lang.String username,
java.lang.String password)
Set user credententials for this proxy and the current thread. |
void |
setLoginTimeout(int seconds)
|
void |
setLogWriter(java.io.PrintWriter out)
|
void |
setPassword(java.lang.String password)
Set the password that this adapter should use for retrieving Connections. |
void |
setTargetDataSource(javax.sql.DataSource targetDataSource)
Set the target DataSource that this adapter should delegate to. |
void |
setUsername(java.lang.String username)
Set the username that this adapter should use for retrieving Connections. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public UserCredentialsDataSourceAdapter()
Method Detail |
public void setTargetDataSource(javax.sql.DataSource targetDataSource)
public void setUsername(java.lang.String username)
public void setPassword(java.lang.String password)
public void afterPropertiesSet()
InitializingBean
This method allows the bean instance to perform initialization only possible when all bean properties have been set and to throw an exception in the event of misconfiguration.
afterPropertiesSet
in interface InitializingBean
public void setCredentialsForCurrentThread(java.lang.String username, java.lang.String password)
getConnection()
calls on this DataSource proxy.
This will override any statically specified user credentials, that is, values of the "username" and "password" bean properties.
username
- the username to applypassword
- the password to applyremoveCredentialsFromCurrentThread()
public void removeCredentialsFromCurrentThread()
setCredentialsForCurrentThread(java.lang.String, java.lang.String)
public final java.sql.Connection getConnection() throws java.sql.SQLException
getConnection
in interface javax.sql.DataSource
java.sql.SQLException
doGetConnection(java.lang.String, java.lang.String)
protected java.sql.Connection doGetConnection(java.lang.String username, java.lang.String password) throws java.sql.SQLException
getConnection(username, password)
method of the target DataSource, passing in the specified user credentials.
If the specified username is empty, it will simply delegate to the standard
getConnection()
method of the target DataSource.
username
- the username to usepassword
- the password to use
java.sql.SQLException
DataSource.getConnection(String, String)
,
DataSource.getConnection()
public java.sql.Connection getConnection(java.lang.String username, java.lang.String password) throws java.sql.SQLException
getConnection
in interface javax.sql.DataSource
java.sql.SQLException
public int getLoginTimeout() throws java.sql.SQLException
getLoginTimeout
in interface javax.sql.DataSource
java.sql.SQLException
public void setLoginTimeout(int seconds) throws java.sql.SQLException
setLoginTimeout
in interface javax.sql.DataSource
java.sql.SQLException
public java.io.PrintWriter getLogWriter() throws java.sql.SQLException
getLogWriter
in interface javax.sql.DataSource
java.sql.SQLException
public void setLogWriter(java.io.PrintWriter out) throws java.sql.SQLException
setLogWriter
in interface javax.sql.DataSource
java.sql.SQLException
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |