Author: jaz
Date: Fri Apr 13 17:36:42 2007
New Revision: 528719
URL:
http://svn.apache.org/viewvc?view=rev&rev=528719Log:
changed x509 code to looked certs in the database by serialnumber instead of trying to query the clob
Modified:
ofbiz/trunk/framework/security/entitydef/entitymodel.xml
ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/control/LoginWorker.java
Modified: ofbiz/trunk/framework/security/entitydef/entitymodel.xml
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/framework/security/entitydef/entitymodel.xml?view=diff&rev=528719&r1=528718&r2=528719==============================================================================
--- ofbiz/trunk/framework/security/entitydef/entitymodel.xml (original)
+++ ofbiz/trunk/framework/security/entitydef/entitymodel.xml Fri Apr 13 17:36:42 2007
@@ -54,7 +54,8 @@
<field name="lastLocale" type="very-short"></field>
<field name="disabledDateTime" type="date-time"></field>
<field name="successiveFailedLogins" type="numeric"></field>
- <field name="x509Cert" type="very-long"></field>
+ <field name="x509CertKey" type="very-long"></field>
+ <field name="x509CertSn" type="long-varchar"></field>
<prim-key field="userLoginId"/>
</entity>
<entity entity-name="UserLoginHistory"
Modified: ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/control/LoginWorker.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/control/LoginWorker.java?view=diff&rev=528719&r1=528718&r2=528719==============================================================================
--- ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/control/LoginWorker.java (original)
+++ ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/control/LoginWorker.java Fri Apr 13 17:36:42 2007
@@ -533,10 +533,11 @@
if (clientCerts != null) {
for (int i = 0; i < clientCerts.length; i++) {
- String certHex = StringUtil.toHexString(clientCerts[i].getPublicKey().getEncoded());
+ String certKeyHex = StringUtil.toHexString(clientCerts[i].getPublicKey().getEncoded());
+ String certSn = clientCerts[i].getSerialNumber().toString(16);
List userLogins = null;
try {
- userLogins = delegator.findByAnd("UserLogin", UtilMisc.toMap("x509Cert", certHex));
+ userLogins = delegator.findByAnd("UserLogin", UtilMisc.toMap("x509CertSn", certSn));
} catch (GenericEntityException e) {
Debug.logError(e, module);
}
@@ -545,9 +546,10 @@
Iterator it = userLogins.iterator();
while (it.hasNext()) {
GenericValue ul = (GenericValue) it.next();
+ String certKey = ul.getString("x509CertKey");
String enabled = ul.getString("enabled");
- if (enabled == null || "Y".equals(enabled)) {
+ if ((enabled == null || "Y".equals(enabled)) && certKey.equals(certKeyHex)) {
ul.set("hasLoggedOut", "N");
try {
ul.store();