This adds the ability to encrypt passwords using a database's built-in encryption functions. @sqlfunction could be added to any of the authenticating elements of the configuration. I can't think of another application, but i didn't want to hardcode "password('')" into the action.
Tim
Index: DatabaseAuthenticatorAction.java =================================================================== RCS file: /home/cvspublic/xml-cocoon2/src/org/apache/cocoon/acting/DatabaseAuthenticatorAction.java,v retrieving revision 1.3.2.13 diff -u -r1.3.2.13 DatabaseAuthenticatorAction.java --- DatabaseAuthenticatorAction.java 2001/12/02 19:26:56 1.3.2.13 +++ DatabaseAuthenticatorAction.java 2001/12/03 01:37:23 @@ -53,6 +53,14 @@ * "false". No values are then propagated to the sesion and session object is * not verified. * + * If your RDBMS can do one way encrypted passwords (note this only encrypts the + * password in the database itself and often trivially at that) pass the name + * of the function as "sqlfunction". + * <pre> + * <select dbcol="password" request-param="password" + * nullable="yes" sqlfunction="encrypt" /> + * </pre> + * * @author Martin Man <[EMAIL PROTECTED]> * @version CVS $Revision: 1.3.2.13 $ $Date: 2001/12/02 19:26:56 $ */ @@ -164,7 +173,7 @@ boolean first_constraint = true; StringBuffer queryBuffer = new StringBuffer ("SELECT "); StringBuffer queryBufferEnd = new StringBuffer (""); - String dbcol, request_param, request_value, nullstr; + String dbcol, request_param, request_value, sqlfunction, nullstr; boolean nullable = false; Configuration table = conf.getChild ("table"); Configuration[] select = table.getChildren ("select"); @@ -175,6 +184,11 @@ dbcol = select[i].getAttribute ("dbcol"); queryBuffer.append (dbcol); try { + sqlfunction = select[i].getAttribute ("sqlfunction"); + } catch (Exception e) { + sqlfunction = null; + } + try { request_param = select[i].getAttribute ("request-param"); if (request_param == null || request_param.trim().equals ("")) { @@ -206,7 +220,10 @@ } else { if (!first_constraint) queryBufferEnd.append (" AND "); - queryBufferEnd.append (dbcol).append("='").append(request_value).append("'"); + if (sqlfunction ==null) + queryBufferEnd.append (dbcol + "='" + request_value + "'"); + else + queryBufferEnd.append(dbcol + "=" + sqlfunction + "('" + +request_value + "')"); first_constraint = false; } }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]