You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by "murali krishna (JIRA)" <ji...@apache.org> on 2011/05/19 14:36:47 UTC

[jira] [Commented] (CAY-801) Re-encode DB password on connection failure

    [ https://issues.apache.org/jira/browse/CAY-801?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13036153#comment-13036153 ] 

murali krishna commented on CAY-801:
------------------------------------

before establishing the connection to database compare the password with DB password,connecting to DB(on matching) else take password from the user through "joptionpanel"  and re-establish the database connection.

Note: This works only for MySql Database....:-(

> Re-encode DB password on connection failure
> -------------------------------------------
>
>                 Key: CAY-801
>                 URL: https://issues.apache.org/jira/browse/CAY-801
>             Project: Cayenne
>          Issue Type: Improvement
>          Components: Core Library
>    Affects Versions: 3.0
>         Environment: All
>            Reporter: Michael Gentry
>            Assignee: Michael Gentry
>            Priority: Minor
>             Fix For: Short term future
>
>
> If Cayenne tries to do a DB connection and fails (something like this):
> org.objectstyle.cayenne.access.QueryLogger  - --- will run 1 query.
> org.objectstyle.cayenne.access.QueryLogger  - Opening connection: jdbc:sybase:Tds:host:port/db
>         Login: xxxxx
>         Password: *******
> org.objectstyle.cayenne.access.QueryLogger  - *** Connecting: FAILURE.
> java.sql.SQLException: JZ00L: Login failed.  Examine the SQLWarnings chained to
> this exception for the reason(s).
>         at com.sybase.jdbc2.jdbc.ErrorMessage.raiseError(ErrorMessage.java:506)
>         at com.sybase.jdbc2.tds.Tds.processLoginAckToken(Tds.java:3248)
>         at com.sybase.jdbc2.tds.Tds.doLogin(Tds.java:483)
>         at com.sybase.jdbc2.tds.Tds.login(Tds.java:405)
>         at com.sybase.jdbc2.jdbc.SybConnection.tryLogin(SybConnection.java:218)
>         at com.sybase.jdbc2.jdbc.SybConnection.regularConnect(SybConnection.java:195)
> When Cayenne tries to reconnect, it should read and encode the DB password through the encoders again.  (Although this probably only makes sense if not stored in the model.)  The above example occurred when the DB password changed, and even though the password was stored outside the model (in an external file), Cayenne has the password cached and will not re-read it to obtain the new password.
> If Cayenne can re-read the password, then DB password changes can be done without bringing an application server down or doing migrations.  (This particular application was running from a WAR file.)

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira