You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by bl...@apache.org on 2001/07/19 21:07:47 UTC
cvs commit: xml-cocoon2/src/org/apache/cocoon/acting DatabaseAuthenticatorAction.java
bloritsch 01/07/19 12:07:47
Modified: src/org/apache/cocoon/acting Tag: cocoon_20_branch
DatabaseAuthenticatorAction.java
Log:
Fix incorrect connection handling by DBauthenticatorAction
Revision Changes Path
No revision
No revision
1.3.2.2 +58 -40 xml-cocoon2/src/org/apache/cocoon/acting/DatabaseAuthenticatorAction.java
Index: DatabaseAuthenticatorAction.java
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/acting/DatabaseAuthenticatorAction.java,v
retrieving revision 1.3.2.1
retrieving revision 1.3.2.2
diff -u -r1.3.2.1 -r1.3.2.2
--- DatabaseAuthenticatorAction.java 2001/07/13 13:37:28 1.3.2.1
+++ DatabaseAuthenticatorAction.java 2001/07/19 19:07:47 1.3.2.2
@@ -1,4 +1,4 @@
-// $Id: DatabaseAuthenticatorAction.java,v 1.3.2.1 2001/07/13 13:37:28 dims Exp $
+// $Id: DatabaseAuthenticatorAction.java,v 1.3.2.2 2001/07/19 19:07:47 bloritsch Exp $
package org.apache.cocoon.acting;
import java.sql.Connection;
@@ -51,7 +51,7 @@
* not verified.
*
* @author Martin Man <Martin.Man@seznam.cz>
- * @version CVS $Revision: 1.3.2.1 $ $Date: 2001/07/13 13:37:28 $
+ * @version CVS $Revision: 1.3.2.2 $ $Date: 2001/07/19 19:07:47 $
*/
public class DatabaseAuthenticatorAction extends AbstractDatabaseAction
{
@@ -62,19 +62,24 @@
Parameters parameters) throws Exception {
DataSourceComponent datasource = null;
Connection conn = null;
+ Statement st = null;
+ ResultSet rs = null;
- // read global parameter settings
- boolean reloadable = Constants.DESCRIPTOR_RELOADABLE_DEFAULT;
- if (this.settings.containsKey("reloadable"))
- reloadable = Boolean.getBoolean((String) this.settings.get("reloadable"));
- // read local settings
+ // read global parameter settings
+ boolean reloadable = Constants.DESCRIPTOR_RELOADABLE_DEFAULT;
+
+ if (this.settings.containsKey("reloadable")) {
+ reloadable = Boolean.getBoolean((String) this.settings.get("reloadable"));
+ }
+
+ // read local settings
try {
Configuration conf = this.getConfiguration (
- parameters.getParameter ("descriptor", (String) this.settings.get("descriptor")),
- parameters.getParameterAsBoolean("reloadable",reloadable));
+ parameters.getParameter ("descriptor", (String) this.settings.get("descriptor")),
+ parameters.getParameterAsBoolean("reloadable",reloadable));
boolean cs = true;
- String create_session = parameters.getParameter ("create-session",
- (String) this.settings.get("create-session"));
+ String create_session = parameters.getParameter ("create-session",
+ (String) this.settings.get("create-session"));
if (create_session != null &&
("no".equals (create_session.trim ()) || "false".equals (create_session.trim ()))) {
cs = false;
@@ -90,44 +95,57 @@
return null;
}
-
String query = this.getAuthQuery (conf, req);
if (query == null) {
getLogger ().debug ("DBAUTH: have not got query");
return null;
}
- try {
- getLogger ().debug ("DBAUTH: quuery is: " + query);
- Statement st = conn.createStatement ();
- ResultSet rs = st.executeQuery (query);
- if (rs.next ()) {
- getLogger ().debug ("DBAUTH: authorized successfully");
- Session session = null;
- if (cs) {
- session = req.getSession (false);
- if (session != null)
- session.invalidate ();
- session = req.getSession (true);
- if (session == null)
- return null;
- getLogger ().debug ("DBAUTH: session created");
- } else {
- getLogger ().debug ("DBAUTH: leaving session untouched");
- }
- HashMap actionMap = this.propagateParameters (conf, rs,
- session);
- rs.close ();
- st.close ();
- return Collections.unmodifiableMap (actionMap);
+ getLogger ().debug ("DBAUTH: quuery is: " + query);
+ Statement st = conn.createStatement ();
+ ResultSet rs = st.executeQuery (query);
+
+ if (rs.next ()) {
+ getLogger ().debug ("DBAUTH: authorized successfully");
+ Session session = null;
+
+ if (cs) {
+ session = req.getSession (false);
+ if (session != null)
+ session.invalidate ();
+ session = req.getSession (true);
+ if (session == null)
+ return null;
+ getLogger ().debug ("DBAUTH: session created");
+ } else {
+ getLogger ().debug ("DBAUTH: leaving session untouched");
}
- getLogger ().debug ("DBAUTH: no results for query");
- } catch (Exception e) {
- getLogger ().debug ("exception: ", e);
- return null;
+
+ HashMap actionMap = this.propagateParameters (conf, rs,
+ session);
+
+ conn.commit();
+ return Collections.unmodifiableMap (actionMap);
}
+
+ conn.rollback();
+ getLogger ().debug ("DBAUTH: no results for query");
} catch (Exception e) {
+ if (conn != null) {
+ try {
+ conn.rollback();
+ } catch (Exception e) {/* ignore */}
+ }
getLogger().debug ("exception: ", e);
+ return null;
+ } finally {
+ if (rs != null) rs.close();
+ if (st != null) st.close();
+ if (conn != null) {
+ try {
+ conn.close();
+ } catch (Exception e) {/* ignore */}
+ }
}
return null;
}
@@ -231,5 +249,5 @@
}
}
-// $Id: DatabaseAuthenticatorAction.java,v 1.3.2.1 2001/07/13 13:37:28 dims Exp $
+// $Id: DatabaseAuthenticatorAction.java,v 1.3.2.2 2001/07/19 19:07:47 bloritsch Exp $
// vim: set et ts=4 sw=4:
----------------------------------------------------------------------
In case of troubles, e-mail: webmaster@xml.apache.org
To unsubscribe, e-mail: cocoon-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: cocoon-cvs-help@xml.apache.org