Issue 18077: Added suppor for OpenID
authorIván Perdomo <ivan.perdomo@openbravo.com>
Mon, 01 Aug 2011 19:44:15 +0200
changeset 13376 db596e1cae07
parent 13375 00a5ffa92ae2
child 13377 061e041754e6
Issue 18077: Added suppor for OpenID
modules/org.openbravo.service.integration.openid/lib/runtime/guice-2.0.jar
modules/org.openbravo.service.integration.openid/lib/runtime/httpclient-4.0.jar
modules/org.openbravo.service.integration.openid/lib/runtime/httpcore-4.0.1.jar
modules/org.openbravo.service.integration.openid/lib/runtime/openid4java-0.9.6.jar
modules/org.openbravo.service.integration.openid/src-db/database/model/tables/OBSOID_USER_IDENTIFIER.xml
modules/org.openbravo.service.integration.openid/src-db/database/sourcedata/AD_COLUMN.xml
modules/org.openbravo.service.integration.openid/src-db/database/sourcedata/AD_ELEMENT.xml
modules/org.openbravo.service.integration.openid/src-db/database/sourcedata/AD_FIELD.xml
modules/org.openbravo.service.integration.openid/src-db/database/sourcedata/AD_MODULE.xml
modules/org.openbravo.service.integration.openid/src-db/database/sourcedata/AD_MODULE_DBPREFIX.xml
modules/org.openbravo.service.integration.openid/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
modules/org.openbravo.service.integration.openid/src-db/database/sourcedata/AD_PACKAGE.xml
modules/org.openbravo.service.integration.openid/src-db/database/sourcedata/AD_TAB.xml
modules/org.openbravo.service.integration.openid/src-db/database/sourcedata/AD_TABLE.xml
modules/org.openbravo.service.integration.openid/src/org/openbravo/service/integration/openid/OpenIDManager.java
Binary file modules/org.openbravo.service.integration.openid/lib/runtime/guice-2.0.jar has changed
Binary file modules/org.openbravo.service.integration.openid/lib/runtime/httpclient-4.0.jar has changed
Binary file modules/org.openbravo.service.integration.openid/lib/runtime/httpcore-4.0.1.jar has changed
Binary file modules/org.openbravo.service.integration.openid/lib/runtime/openid4java-0.9.6.jar has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/org.openbravo.service.integration.openid/src-db/database/model/tables/OBSOID_USER_IDENTIFIER.xml	Mon Aug 01 19:44:15 2011 +0200
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+  <database name="TABLE OBSOID_USER_IDENTIFIER">
+    <table name="OBSOID_USER_IDENTIFIER" primaryKey="OBSOID_USER_OID_KEY">
+      <column name="OBSOID_USER_IDENTIFIER_ID" primaryKey="true" required="true" type="VARCHAR" size="32" autoIncrement="false">
+        <default/>
+        <onCreateDefault/>
+      </column>
+      <column name="AD_CLIENT_ID" primaryKey="false" required="true" type="VARCHAR" size="32" autoIncrement="false">
+        <default/>
+        <onCreateDefault/>
+      </column>
+      <column name="AD_ORG_ID" primaryKey="false" required="true" type="VARCHAR" size="32" autoIncrement="false">
+        <default/>
+        <onCreateDefault/>
+      </column>
+      <column name="ISACTIVE" primaryKey="false" required="true" type="CHAR" size="1" autoIncrement="false">
+        <default><![CDATA[Y]]></default>
+        <onCreateDefault/>
+      </column>
+      <column name="CREATED" primaryKey="false" required="true" type="TIMESTAMP" size="7" autoIncrement="false">
+        <default><![CDATA[SYSDATE]]></default>
+        <onCreateDefault/>
+      </column>
+      <column name="CREATEDBY" primaryKey="false" required="true" type="VARCHAR" size="32" autoIncrement="false">
+        <default/>
+        <onCreateDefault/>
+      </column>
+      <column name="UPDATED" primaryKey="false" required="true" type="TIMESTAMP" size="7" autoIncrement="false">
+        <default><![CDATA[SYSDATE]]></default>
+        <onCreateDefault/>
+      </column>
+      <column name="UPDATEDBY" primaryKey="false" required="true" type="VARCHAR" size="32" autoIncrement="false">
+        <default/>
+        <onCreateDefault/>
+      </column>
+      <column name="AD_USER_ID" primaryKey="false" required="true" type="VARCHAR" size="32" autoIncrement="false">
+        <default/>
+        <onCreateDefault/>
+      </column>
+      <column name="OPENID_IDENTIFIER" primaryKey="false" required="true" type="VARCHAR" size="255" autoIncrement="false">
+        <default/>
+        <onCreateDefault/>
+      </column>
+      <foreign-key foreignTable="AD_CLIENT" name="OBSOID_USER_OID_AD_CLIENT">
+        <reference local="AD_CLIENT_ID" foreign="AD_CLIENT_ID"/>
+      </foreign-key>
+      <foreign-key foreignTable="AD_ORG" name="OBSOID_USER_OID_AD_ORG">
+        <reference local="AD_ORG_ID" foreign="AD_ORG_ID"/>
+      </foreign-key>
+      <foreign-key foreignTable="AD_USER" name="OBSOID_USER_OID_AD_USER">
+        <reference local="AD_USER_ID" foreign="AD_USER_ID"/>
+      </foreign-key>
+      <check name="OBSOID_USER_OID_ISACTIVE_CHECK"><![CDATA[ISACTIVE IN ('Y', 'N')]]></check>
+    </table>
+  </database>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/org.openbravo.service.integration.openid/src-db/database/sourcedata/AD_COLUMN.xml	Mon Aug 01 19:44:15 2011 +0200
@@ -0,0 +1,336 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<data>
+<!--2D72B29B9A2942F9A4832ACCC571C026--><AD_COLUMN>
+<!--2D72B29B9A2942F9A4832ACCC571C026-->  <AD_COLUMN_ID><![CDATA[2D72B29B9A2942F9A4832ACCC571C026]]></AD_COLUMN_ID>
+<!--2D72B29B9A2942F9A4832ACCC571C026-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--2D72B29B9A2942F9A4832ACCC571C026-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--2D72B29B9A2942F9A4832ACCC571C026-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--2D72B29B9A2942F9A4832ACCC571C026-->  <NAME><![CDATA[Creation Date]]></NAME>
+<!--2D72B29B9A2942F9A4832ACCC571C026-->  <DESCRIPTION><![CDATA[The date that this record is completed.]]></DESCRIPTION>
+<!--2D72B29B9A2942F9A4832ACCC571C026-->  <HELP><![CDATA[The Created field indicates the date that this record was created.]]></HELP>
+<!--2D72B29B9A2942F9A4832ACCC571C026-->  <COLUMNNAME><![CDATA[Created]]></COLUMNNAME>
+<!--2D72B29B9A2942F9A4832ACCC571C026-->  <AD_TABLE_ID><![CDATA[FF808081314B80C001314B976A49000C]]></AD_TABLE_ID>
+<!--2D72B29B9A2942F9A4832ACCC571C026-->  <AD_REFERENCE_ID><![CDATA[16]]></AD_REFERENCE_ID>
+<!--2D72B29B9A2942F9A4832ACCC571C026-->  <FIELDLENGTH><![CDATA[19]]></FIELDLENGTH>
+<!--2D72B29B9A2942F9A4832ACCC571C026-->  <DEFAULTVALUE><![CDATA[@#Date@]]></DEFAULTVALUE>
+<!--2D72B29B9A2942F9A4832ACCC571C026-->  <ISKEY><![CDATA[N]]></ISKEY>
+<!--2D72B29B9A2942F9A4832ACCC571C026-->  <ISPARENT><![CDATA[N]]></ISPARENT>
+<!--2D72B29B9A2942F9A4832ACCC571C026-->  <ISMANDATORY><![CDATA[Y]]></ISMANDATORY>
+<!--2D72B29B9A2942F9A4832ACCC571C026-->  <ISUPDATEABLE><![CDATA[N]]></ISUPDATEABLE>
+<!--2D72B29B9A2942F9A4832ACCC571C026-->  <ISIDENTIFIER><![CDATA[N]]></ISIDENTIFIER>
+<!--2D72B29B9A2942F9A4832ACCC571C026-->  <SEQNO><![CDATA[50]]></SEQNO>
+<!--2D72B29B9A2942F9A4832ACCC571C026-->  <ISTRANSLATED><![CDATA[N]]></ISTRANSLATED>
+<!--2D72B29B9A2942F9A4832ACCC571C026-->  <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--2D72B29B9A2942F9A4832ACCC571C026-->  <ISSELECTIONCOLUMN><![CDATA[N]]></ISSELECTIONCOLUMN>
+<!--2D72B29B9A2942F9A4832ACCC571C026-->  <AD_ELEMENT_ID><![CDATA[245]]></AD_ELEMENT_ID>
+<!--2D72B29B9A2942F9A4832ACCC571C026-->  <ISSESSIONATTR><![CDATA[N]]></ISSESSIONATTR>
+<!--2D72B29B9A2942F9A4832ACCC571C026-->  <ISSECONDARYKEY><![CDATA[N]]></ISSECONDARYKEY>
+<!--2D72B29B9A2942F9A4832ACCC571C026-->  <ISDESENCRYPTABLE><![CDATA[N]]></ISDESENCRYPTABLE>
+<!--2D72B29B9A2942F9A4832ACCC571C026-->  <DEVELOPMENTSTATUS><![CDATA[RE]]></DEVELOPMENTSTATUS>
+<!--2D72B29B9A2942F9A4832ACCC571C026-->  <AD_MODULE_ID><![CDATA[FF8080813141B198013141B86DD70003]]></AD_MODULE_ID>
+<!--2D72B29B9A2942F9A4832ACCC571C026-->  <POSITION><![CDATA[5]]></POSITION>
+<!--2D72B29B9A2942F9A4832ACCC571C026-->  <ISTRANSIENT><![CDATA[N]]></ISTRANSIENT>
+<!--2D72B29B9A2942F9A4832ACCC571C026-->  <ISAUTOSAVE><![CDATA[Y]]></ISAUTOSAVE>
+<!--2D72B29B9A2942F9A4832ACCC571C026-->  <VALIDATEONNEW><![CDATA[Y]]></VALIDATEONNEW>
+<!--2D72B29B9A2942F9A4832ACCC571C026--></AD_COLUMN>
+
+<!--2F7C8DD6C697415ABA1B3EE701BC2C4A--><AD_COLUMN>
+<!--2F7C8DD6C697415ABA1B3EE701BC2C4A-->  <AD_COLUMN_ID><![CDATA[2F7C8DD6C697415ABA1B3EE701BC2C4A]]></AD_COLUMN_ID>
+<!--2F7C8DD6C697415ABA1B3EE701BC2C4A-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--2F7C8DD6C697415ABA1B3EE701BC2C4A-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--2F7C8DD6C697415ABA1B3EE701BC2C4A-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--2F7C8DD6C697415ABA1B3EE701BC2C4A-->  <NAME><![CDATA[Organization]]></NAME>
+<!--2F7C8DD6C697415ABA1B3EE701BC2C4A-->  <DESCRIPTION><![CDATA[Organizational entity within client]]></DESCRIPTION>
+<!--2F7C8DD6C697415ABA1B3EE701BC2C4A-->  <HELP><![CDATA[An organization is a unit of your client or legal entity - examples are store, department. You can share data between organizations.]]></HELP>
+<!--2F7C8DD6C697415ABA1B3EE701BC2C4A-->  <COLUMNNAME><![CDATA[AD_Org_ID]]></COLUMNNAME>
+<!--2F7C8DD6C697415ABA1B3EE701BC2C4A-->  <AD_TABLE_ID><![CDATA[FF808081314B80C001314B976A49000C]]></AD_TABLE_ID>
+<!--2F7C8DD6C697415ABA1B3EE701BC2C4A-->  <AD_REFERENCE_ID><![CDATA[19]]></AD_REFERENCE_ID>
+<!--2F7C8DD6C697415ABA1B3EE701BC2C4A-->  <FIELDLENGTH><![CDATA[32]]></FIELDLENGTH>
+<!--2F7C8DD6C697415ABA1B3EE701BC2C4A-->  <DEFAULTVALUE><![CDATA[@AD_ORG_ID@]]></DEFAULTVALUE>
+<!--2F7C8DD6C697415ABA1B3EE701BC2C4A-->  <ISKEY><![CDATA[N]]></ISKEY>
+<!--2F7C8DD6C697415ABA1B3EE701BC2C4A-->  <ISPARENT><![CDATA[N]]></ISPARENT>
+<!--2F7C8DD6C697415ABA1B3EE701BC2C4A-->  <ISMANDATORY><![CDATA[Y]]></ISMANDATORY>
+<!--2F7C8DD6C697415ABA1B3EE701BC2C4A-->  <ISUPDATEABLE><![CDATA[N]]></ISUPDATEABLE>
+<!--2F7C8DD6C697415ABA1B3EE701BC2C4A-->  <ISIDENTIFIER><![CDATA[N]]></ISIDENTIFIER>
+<!--2F7C8DD6C697415ABA1B3EE701BC2C4A-->  <SEQNO><![CDATA[30]]></SEQNO>
+<!--2F7C8DD6C697415ABA1B3EE701BC2C4A-->  <ISTRANSLATED><![CDATA[N]]></ISTRANSLATED>
+<!--2F7C8DD6C697415ABA1B3EE701BC2C4A-->  <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--2F7C8DD6C697415ABA1B3EE701BC2C4A-->  <ISSELECTIONCOLUMN><![CDATA[N]]></ISSELECTIONCOLUMN>
+<!--2F7C8DD6C697415ABA1B3EE701BC2C4A-->  <AD_ELEMENT_ID><![CDATA[113]]></AD_ELEMENT_ID>
+<!--2F7C8DD6C697415ABA1B3EE701BC2C4A-->  <ISSESSIONATTR><![CDATA[Y]]></ISSESSIONATTR>
+<!--2F7C8DD6C697415ABA1B3EE701BC2C4A-->  <ISSECONDARYKEY><![CDATA[N]]></ISSECONDARYKEY>
+<!--2F7C8DD6C697415ABA1B3EE701BC2C4A-->  <ISDESENCRYPTABLE><![CDATA[N]]></ISDESENCRYPTABLE>
+<!--2F7C8DD6C697415ABA1B3EE701BC2C4A-->  <DEVELOPMENTSTATUS><![CDATA[RE]]></DEVELOPMENTSTATUS>
+<!--2F7C8DD6C697415ABA1B3EE701BC2C4A-->  <AD_MODULE_ID><![CDATA[FF8080813141B198013141B86DD70003]]></AD_MODULE_ID>
+<!--2F7C8DD6C697415ABA1B3EE701BC2C4A-->  <POSITION><![CDATA[3]]></POSITION>
+<!--2F7C8DD6C697415ABA1B3EE701BC2C4A-->  <ISTRANSIENT><![CDATA[N]]></ISTRANSIENT>
+<!--2F7C8DD6C697415ABA1B3EE701BC2C4A-->  <ISAUTOSAVE><![CDATA[Y]]></ISAUTOSAVE>
+<!--2F7C8DD6C697415ABA1B3EE701BC2C4A-->  <VALIDATEONNEW><![CDATA[Y]]></VALIDATEONNEW>
+<!--2F7C8DD6C697415ABA1B3EE701BC2C4A--></AD_COLUMN>
+
+<!--31878640A2FE4C128F50DF1A4CE42C66--><AD_COLUMN>
+<!--31878640A2FE4C128F50DF1A4CE42C66-->  <AD_COLUMN_ID><![CDATA[31878640A2FE4C128F50DF1A4CE42C66]]></AD_COLUMN_ID>
+<!--31878640A2FE4C128F50DF1A4CE42C66-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--31878640A2FE4C128F50DF1A4CE42C66-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--31878640A2FE4C128F50DF1A4CE42C66-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--31878640A2FE4C128F50DF1A4CE42C66-->  <NAME><![CDATA[OpenID Identifier]]></NAME>
+<!--31878640A2FE4C128F50DF1A4CE42C66-->  <COLUMNNAME><![CDATA[Openid_Identifier]]></COLUMNNAME>
+<!--31878640A2FE4C128F50DF1A4CE42C66-->  <AD_TABLE_ID><![CDATA[FF808081314B80C001314B976A49000C]]></AD_TABLE_ID>
+<!--31878640A2FE4C128F50DF1A4CE42C66-->  <AD_REFERENCE_ID><![CDATA[10]]></AD_REFERENCE_ID>
+<!--31878640A2FE4C128F50DF1A4CE42C66-->  <FIELDLENGTH><![CDATA[255]]></FIELDLENGTH>
+<!--31878640A2FE4C128F50DF1A4CE42C66-->  <ISKEY><![CDATA[N]]></ISKEY>
+<!--31878640A2FE4C128F50DF1A4CE42C66-->  <ISPARENT><![CDATA[N]]></ISPARENT>
+<!--31878640A2FE4C128F50DF1A4CE42C66-->  <ISMANDATORY><![CDATA[Y]]></ISMANDATORY>
+<!--31878640A2FE4C128F50DF1A4CE42C66-->  <ISUPDATEABLE><![CDATA[Y]]></ISUPDATEABLE>
+<!--31878640A2FE4C128F50DF1A4CE42C66-->  <ISIDENTIFIER><![CDATA[Y]]></ISIDENTIFIER>
+<!--31878640A2FE4C128F50DF1A4CE42C66-->  <SEQNO><![CDATA[100]]></SEQNO>
+<!--31878640A2FE4C128F50DF1A4CE42C66-->  <ISTRANSLATED><![CDATA[N]]></ISTRANSLATED>
+<!--31878640A2FE4C128F50DF1A4CE42C66-->  <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--31878640A2FE4C128F50DF1A4CE42C66-->  <ISSELECTIONCOLUMN><![CDATA[N]]></ISSELECTIONCOLUMN>
+<!--31878640A2FE4C128F50DF1A4CE42C66-->  <AD_ELEMENT_ID><![CDATA[031552634F9146CFB0C6140B8955DF1D]]></AD_ELEMENT_ID>
+<!--31878640A2FE4C128F50DF1A4CE42C66-->  <ISSESSIONATTR><![CDATA[N]]></ISSESSIONATTR>
+<!--31878640A2FE4C128F50DF1A4CE42C66-->  <ISSECONDARYKEY><![CDATA[N]]></ISSECONDARYKEY>
+<!--31878640A2FE4C128F50DF1A4CE42C66-->  <ISDESENCRYPTABLE><![CDATA[N]]></ISDESENCRYPTABLE>
+<!--31878640A2FE4C128F50DF1A4CE42C66-->  <DEVELOPMENTSTATUS><![CDATA[RE]]></DEVELOPMENTSTATUS>
+<!--31878640A2FE4C128F50DF1A4CE42C66-->  <AD_MODULE_ID><![CDATA[FF8080813141B198013141B86DD70003]]></AD_MODULE_ID>
+<!--31878640A2FE4C128F50DF1A4CE42C66-->  <POSITION><![CDATA[10]]></POSITION>
+<!--31878640A2FE4C128F50DF1A4CE42C66-->  <ISTRANSIENT><![CDATA[N]]></ISTRANSIENT>
+<!--31878640A2FE4C128F50DF1A4CE42C66-->  <ISAUTOSAVE><![CDATA[Y]]></ISAUTOSAVE>
+<!--31878640A2FE4C128F50DF1A4CE42C66-->  <VALIDATEONNEW><![CDATA[Y]]></VALIDATEONNEW>
+<!--31878640A2FE4C128F50DF1A4CE42C66--></AD_COLUMN>
+
+<!--369AB06834A643D0A737EB8082D9E21D--><AD_COLUMN>
+<!--369AB06834A643D0A737EB8082D9E21D-->  <AD_COLUMN_ID><![CDATA[369AB06834A643D0A737EB8082D9E21D]]></AD_COLUMN_ID>
+<!--369AB06834A643D0A737EB8082D9E21D-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--369AB06834A643D0A737EB8082D9E21D-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--369AB06834A643D0A737EB8082D9E21D-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--369AB06834A643D0A737EB8082D9E21D-->  <NAME><![CDATA[Updated By]]></NAME>
+<!--369AB06834A643D0A737EB8082D9E21D-->  <DESCRIPTION><![CDATA[User who updated this records]]></DESCRIPTION>
+<!--369AB06834A643D0A737EB8082D9E21D-->  <HELP><![CDATA[The Updated By field indicates the user who updated this record.]]></HELP>
+<!--369AB06834A643D0A737EB8082D9E21D-->  <COLUMNNAME><![CDATA[Updatedby]]></COLUMNNAME>
+<!--369AB06834A643D0A737EB8082D9E21D-->  <AD_TABLE_ID><![CDATA[FF808081314B80C001314B976A49000C]]></AD_TABLE_ID>
+<!--369AB06834A643D0A737EB8082D9E21D-->  <AD_REFERENCE_ID><![CDATA[30]]></AD_REFERENCE_ID>
+<!--369AB06834A643D0A737EB8082D9E21D-->  <FIELDLENGTH><![CDATA[32]]></FIELDLENGTH>
+<!--369AB06834A643D0A737EB8082D9E21D-->  <ISKEY><![CDATA[N]]></ISKEY>
+<!--369AB06834A643D0A737EB8082D9E21D-->  <ISPARENT><![CDATA[N]]></ISPARENT>
+<!--369AB06834A643D0A737EB8082D9E21D-->  <ISMANDATORY><![CDATA[Y]]></ISMANDATORY>
+<!--369AB06834A643D0A737EB8082D9E21D-->  <ISUPDATEABLE><![CDATA[N]]></ISUPDATEABLE>
+<!--369AB06834A643D0A737EB8082D9E21D-->  <ISIDENTIFIER><![CDATA[N]]></ISIDENTIFIER>
+<!--369AB06834A643D0A737EB8082D9E21D-->  <SEQNO><![CDATA[80]]></SEQNO>
+<!--369AB06834A643D0A737EB8082D9E21D-->  <ISTRANSLATED><![CDATA[N]]></ISTRANSLATED>
+<!--369AB06834A643D0A737EB8082D9E21D-->  <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--369AB06834A643D0A737EB8082D9E21D-->  <ISSELECTIONCOLUMN><![CDATA[N]]></ISSELECTIONCOLUMN>
+<!--369AB06834A643D0A737EB8082D9E21D-->  <AD_ELEMENT_ID><![CDATA[608]]></AD_ELEMENT_ID>
+<!--369AB06834A643D0A737EB8082D9E21D-->  <ISSESSIONATTR><![CDATA[N]]></ISSESSIONATTR>
+<!--369AB06834A643D0A737EB8082D9E21D-->  <ISSECONDARYKEY><![CDATA[N]]></ISSECONDARYKEY>
+<!--369AB06834A643D0A737EB8082D9E21D-->  <ISDESENCRYPTABLE><![CDATA[N]]></ISDESENCRYPTABLE>
+<!--369AB06834A643D0A737EB8082D9E21D-->  <DEVELOPMENTSTATUS><![CDATA[RE]]></DEVELOPMENTSTATUS>
+<!--369AB06834A643D0A737EB8082D9E21D-->  <AD_MODULE_ID><![CDATA[FF8080813141B198013141B86DD70003]]></AD_MODULE_ID>
+<!--369AB06834A643D0A737EB8082D9E21D-->  <POSITION><![CDATA[8]]></POSITION>
+<!--369AB06834A643D0A737EB8082D9E21D-->  <ISTRANSIENT><![CDATA[N]]></ISTRANSIENT>
+<!--369AB06834A643D0A737EB8082D9E21D-->  <ISAUTOSAVE><![CDATA[Y]]></ISAUTOSAVE>
+<!--369AB06834A643D0A737EB8082D9E21D-->  <VALIDATEONNEW><![CDATA[Y]]></VALIDATEONNEW>
+<!--369AB06834A643D0A737EB8082D9E21D--></AD_COLUMN>
+
+<!--575115249FD0451AA66D6AEE49978E7C--><AD_COLUMN>
+<!--575115249FD0451AA66D6AEE49978E7C-->  <AD_COLUMN_ID><![CDATA[575115249FD0451AA66D6AEE49978E7C]]></AD_COLUMN_ID>
+<!--575115249FD0451AA66D6AEE49978E7C-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--575115249FD0451AA66D6AEE49978E7C-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--575115249FD0451AA66D6AEE49978E7C-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--575115249FD0451AA66D6AEE49978E7C-->  <NAME><![CDATA[Client]]></NAME>
+<!--575115249FD0451AA66D6AEE49978E7C-->  <DESCRIPTION><![CDATA[Client for this installation.]]></DESCRIPTION>
+<!--575115249FD0451AA66D6AEE49978E7C-->  <HELP><![CDATA[A Client is a company or a legal entity. You cannot share data between Clients.]]></HELP>
+<!--575115249FD0451AA66D6AEE49978E7C-->  <COLUMNNAME><![CDATA[AD_Client_ID]]></COLUMNNAME>
+<!--575115249FD0451AA66D6AEE49978E7C-->  <AD_TABLE_ID><![CDATA[FF808081314B80C001314B976A49000C]]></AD_TABLE_ID>
+<!--575115249FD0451AA66D6AEE49978E7C-->  <AD_REFERENCE_ID><![CDATA[19]]></AD_REFERENCE_ID>
+<!--575115249FD0451AA66D6AEE49978E7C-->  <FIELDLENGTH><![CDATA[32]]></FIELDLENGTH>
+<!--575115249FD0451AA66D6AEE49978E7C-->  <DEFAULTVALUE><![CDATA[@AD_CLIENT_ID@]]></DEFAULTVALUE>
+<!--575115249FD0451AA66D6AEE49978E7C-->  <ISKEY><![CDATA[N]]></ISKEY>
+<!--575115249FD0451AA66D6AEE49978E7C-->  <ISPARENT><![CDATA[N]]></ISPARENT>
+<!--575115249FD0451AA66D6AEE49978E7C-->  <ISMANDATORY><![CDATA[Y]]></ISMANDATORY>
+<!--575115249FD0451AA66D6AEE49978E7C-->  <ISUPDATEABLE><![CDATA[N]]></ISUPDATEABLE>
+<!--575115249FD0451AA66D6AEE49978E7C-->  <ISIDENTIFIER><![CDATA[N]]></ISIDENTIFIER>
+<!--575115249FD0451AA66D6AEE49978E7C-->  <SEQNO><![CDATA[20]]></SEQNO>
+<!--575115249FD0451AA66D6AEE49978E7C-->  <ISTRANSLATED><![CDATA[N]]></ISTRANSLATED>
+<!--575115249FD0451AA66D6AEE49978E7C-->  <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--575115249FD0451AA66D6AEE49978E7C-->  <ISSELECTIONCOLUMN><![CDATA[N]]></ISSELECTIONCOLUMN>
+<!--575115249FD0451AA66D6AEE49978E7C-->  <AD_ELEMENT_ID><![CDATA[102]]></AD_ELEMENT_ID>
+<!--575115249FD0451AA66D6AEE49978E7C-->  <ISSESSIONATTR><![CDATA[Y]]></ISSESSIONATTR>
+<!--575115249FD0451AA66D6AEE49978E7C-->  <ISSECONDARYKEY><![CDATA[N]]></ISSECONDARYKEY>
+<!--575115249FD0451AA66D6AEE49978E7C-->  <ISDESENCRYPTABLE><![CDATA[N]]></ISDESENCRYPTABLE>
+<!--575115249FD0451AA66D6AEE49978E7C-->  <DEVELOPMENTSTATUS><![CDATA[RE]]></DEVELOPMENTSTATUS>
+<!--575115249FD0451AA66D6AEE49978E7C-->  <AD_MODULE_ID><![CDATA[FF8080813141B198013141B86DD70003]]></AD_MODULE_ID>
+<!--575115249FD0451AA66D6AEE49978E7C-->  <POSITION><![CDATA[2]]></POSITION>
+<!--575115249FD0451AA66D6AEE49978E7C-->  <ISTRANSIENT><![CDATA[N]]></ISTRANSIENT>
+<!--575115249FD0451AA66D6AEE49978E7C-->  <ISAUTOSAVE><![CDATA[Y]]></ISAUTOSAVE>
+<!--575115249FD0451AA66D6AEE49978E7C-->  <VALIDATEONNEW><![CDATA[Y]]></VALIDATEONNEW>
+<!--575115249FD0451AA66D6AEE49978E7C--></AD_COLUMN>
+
+<!--5E4F5ECE51A34B969AB3B4483F393CE2--><AD_COLUMN>
+<!--5E4F5ECE51A34B969AB3B4483F393CE2-->  <AD_COLUMN_ID><![CDATA[5E4F5ECE51A34B969AB3B4483F393CE2]]></AD_COLUMN_ID>
+<!--5E4F5ECE51A34B969AB3B4483F393CE2-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--5E4F5ECE51A34B969AB3B4483F393CE2-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--5E4F5ECE51A34B969AB3B4483F393CE2-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--5E4F5ECE51A34B969AB3B4483F393CE2-->  <NAME><![CDATA[Created By]]></NAME>
+<!--5E4F5ECE51A34B969AB3B4483F393CE2-->  <DESCRIPTION><![CDATA[User who created this records]]></DESCRIPTION>
+<!--5E4F5ECE51A34B969AB3B4483F393CE2-->  <HELP><![CDATA[The Created By field indicates the user who created this record.]]></HELP>
+<!--5E4F5ECE51A34B969AB3B4483F393CE2-->  <COLUMNNAME><![CDATA[Createdby]]></COLUMNNAME>
+<!--5E4F5ECE51A34B969AB3B4483F393CE2-->  <AD_TABLE_ID><![CDATA[FF808081314B80C001314B976A49000C]]></AD_TABLE_ID>
+<!--5E4F5ECE51A34B969AB3B4483F393CE2-->  <AD_REFERENCE_ID><![CDATA[30]]></AD_REFERENCE_ID>
+<!--5E4F5ECE51A34B969AB3B4483F393CE2-->  <FIELDLENGTH><![CDATA[32]]></FIELDLENGTH>
+<!--5E4F5ECE51A34B969AB3B4483F393CE2-->  <ISKEY><![CDATA[N]]></ISKEY>
+<!--5E4F5ECE51A34B969AB3B4483F393CE2-->  <ISPARENT><![CDATA[N]]></ISPARENT>
+<!--5E4F5ECE51A34B969AB3B4483F393CE2-->  <ISMANDATORY><![CDATA[Y]]></ISMANDATORY>
+<!--5E4F5ECE51A34B969AB3B4483F393CE2-->  <ISUPDATEABLE><![CDATA[N]]></ISUPDATEABLE>
+<!--5E4F5ECE51A34B969AB3B4483F393CE2-->  <ISIDENTIFIER><![CDATA[N]]></ISIDENTIFIER>
+<!--5E4F5ECE51A34B969AB3B4483F393CE2-->  <SEQNO><![CDATA[60]]></SEQNO>
+<!--5E4F5ECE51A34B969AB3B4483F393CE2-->  <ISTRANSLATED><![CDATA[N]]></ISTRANSLATED>
+<!--5E4F5ECE51A34B969AB3B4483F393CE2-->  <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--5E4F5ECE51A34B969AB3B4483F393CE2-->  <ISSELECTIONCOLUMN><![CDATA[N]]></ISSELECTIONCOLUMN>
+<!--5E4F5ECE51A34B969AB3B4483F393CE2-->  <AD_ELEMENT_ID><![CDATA[246]]></AD_ELEMENT_ID>
+<!--5E4F5ECE51A34B969AB3B4483F393CE2-->  <ISSESSIONATTR><![CDATA[N]]></ISSESSIONATTR>
+<!--5E4F5ECE51A34B969AB3B4483F393CE2-->  <ISSECONDARYKEY><![CDATA[N]]></ISSECONDARYKEY>
+<!--5E4F5ECE51A34B969AB3B4483F393CE2-->  <ISDESENCRYPTABLE><![CDATA[N]]></ISDESENCRYPTABLE>
+<!--5E4F5ECE51A34B969AB3B4483F393CE2-->  <DEVELOPMENTSTATUS><![CDATA[RE]]></DEVELOPMENTSTATUS>
+<!--5E4F5ECE51A34B969AB3B4483F393CE2-->  <AD_MODULE_ID><![CDATA[FF8080813141B198013141B86DD70003]]></AD_MODULE_ID>
+<!--5E4F5ECE51A34B969AB3B4483F393CE2-->  <POSITION><![CDATA[6]]></POSITION>
+<!--5E4F5ECE51A34B969AB3B4483F393CE2-->  <ISTRANSIENT><![CDATA[N]]></ISTRANSIENT>
+<!--5E4F5ECE51A34B969AB3B4483F393CE2-->  <ISAUTOSAVE><![CDATA[Y]]></ISAUTOSAVE>
+<!--5E4F5ECE51A34B969AB3B4483F393CE2-->  <VALIDATEONNEW><![CDATA[Y]]></VALIDATEONNEW>
+<!--5E4F5ECE51A34B969AB3B4483F393CE2--></AD_COLUMN>
+
+<!--73344BE692184AF98F0ACF1C11051E79--><AD_COLUMN>
+<!--73344BE692184AF98F0ACF1C11051E79-->  <AD_COLUMN_ID><![CDATA[73344BE692184AF98F0ACF1C11051E79]]></AD_COLUMN_ID>
+<!--73344BE692184AF98F0ACF1C11051E79-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--73344BE692184AF98F0ACF1C11051E79-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--73344BE692184AF98F0ACF1C11051E79-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--73344BE692184AF98F0ACF1C11051E79-->  <NAME><![CDATA[Obsoid_User_Identifier_ID]]></NAME>
+<!--73344BE692184AF98F0ACF1C11051E79-->  <COLUMNNAME><![CDATA[Obsoid_User_Identifier_ID]]></COLUMNNAME>
+<!--73344BE692184AF98F0ACF1C11051E79-->  <AD_TABLE_ID><![CDATA[FF808081314B80C001314B976A49000C]]></AD_TABLE_ID>
+<!--73344BE692184AF98F0ACF1C11051E79-->  <AD_REFERENCE_ID><![CDATA[13]]></AD_REFERENCE_ID>
+<!--73344BE692184AF98F0ACF1C11051E79-->  <FIELDLENGTH><![CDATA[32]]></FIELDLENGTH>
+<!--73344BE692184AF98F0ACF1C11051E79-->  <ISKEY><![CDATA[Y]]></ISKEY>
+<!--73344BE692184AF98F0ACF1C11051E79-->  <ISPARENT><![CDATA[N]]></ISPARENT>
+<!--73344BE692184AF98F0ACF1C11051E79-->  <ISMANDATORY><![CDATA[Y]]></ISMANDATORY>
+<!--73344BE692184AF98F0ACF1C11051E79-->  <ISUPDATEABLE><![CDATA[N]]></ISUPDATEABLE>
+<!--73344BE692184AF98F0ACF1C11051E79-->  <ISIDENTIFIER><![CDATA[N]]></ISIDENTIFIER>
+<!--73344BE692184AF98F0ACF1C11051E79-->  <SEQNO><![CDATA[10]]></SEQNO>
+<!--73344BE692184AF98F0ACF1C11051E79-->  <ISTRANSLATED><![CDATA[N]]></ISTRANSLATED>
+<!--73344BE692184AF98F0ACF1C11051E79-->  <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--73344BE692184AF98F0ACF1C11051E79-->  <ISSELECTIONCOLUMN><![CDATA[N]]></ISSELECTIONCOLUMN>
+<!--73344BE692184AF98F0ACF1C11051E79-->  <AD_ELEMENT_ID><![CDATA[066A5B188E3341F68CB01AC3D2803AED]]></AD_ELEMENT_ID>
+<!--73344BE692184AF98F0ACF1C11051E79-->  <ISSESSIONATTR><![CDATA[N]]></ISSESSIONATTR>
+<!--73344BE692184AF98F0ACF1C11051E79-->  <ISSECONDARYKEY><![CDATA[N]]></ISSECONDARYKEY>
+<!--73344BE692184AF98F0ACF1C11051E79-->  <ISDESENCRYPTABLE><![CDATA[N]]></ISDESENCRYPTABLE>
+<!--73344BE692184AF98F0ACF1C11051E79-->  <DEVELOPMENTSTATUS><![CDATA[RE]]></DEVELOPMENTSTATUS>
+<!--73344BE692184AF98F0ACF1C11051E79-->  <AD_MODULE_ID><![CDATA[FF8080813141B198013141B86DD70003]]></AD_MODULE_ID>
+<!--73344BE692184AF98F0ACF1C11051E79-->  <POSITION><![CDATA[1]]></POSITION>
+<!--73344BE692184AF98F0ACF1C11051E79-->  <ISTRANSIENT><![CDATA[N]]></ISTRANSIENT>
+<!--73344BE692184AF98F0ACF1C11051E79-->  <ISAUTOSAVE><![CDATA[Y]]></ISAUTOSAVE>
+<!--73344BE692184AF98F0ACF1C11051E79-->  <VALIDATEONNEW><![CDATA[Y]]></VALIDATEONNEW>
+<!--73344BE692184AF98F0ACF1C11051E79--></AD_COLUMN>
+
+<!--890BE735A7E94DD78AE96CA8F55D59EF--><AD_COLUMN>
+<!--890BE735A7E94DD78AE96CA8F55D59EF-->  <AD_COLUMN_ID><![CDATA[890BE735A7E94DD78AE96CA8F55D59EF]]></AD_COLUMN_ID>
+<!--890BE735A7E94DD78AE96CA8F55D59EF-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--890BE735A7E94DD78AE96CA8F55D59EF-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--890BE735A7E94DD78AE96CA8F55D59EF-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--890BE735A7E94DD78AE96CA8F55D59EF-->  <NAME><![CDATA[Updated]]></NAME>
+<!--890BE735A7E94DD78AE96CA8F55D59EF-->  <DESCRIPTION><![CDATA[x not implemented]]></DESCRIPTION>
+<!--890BE735A7E94DD78AE96CA8F55D59EF-->  <HELP><![CDATA[The Updated field indicates the date that this record was updated.]]></HELP>
+<!--890BE735A7E94DD78AE96CA8F55D59EF-->  <COLUMNNAME><![CDATA[Updated]]></COLUMNNAME>
+<!--890BE735A7E94DD78AE96CA8F55D59EF-->  <AD_TABLE_ID><![CDATA[FF808081314B80C001314B976A49000C]]></AD_TABLE_ID>
+<!--890BE735A7E94DD78AE96CA8F55D59EF-->  <AD_REFERENCE_ID><![CDATA[16]]></AD_REFERENCE_ID>
+<!--890BE735A7E94DD78AE96CA8F55D59EF-->  <FIELDLENGTH><![CDATA[19]]></FIELDLENGTH>
+<!--890BE735A7E94DD78AE96CA8F55D59EF-->  <DEFAULTVALUE><![CDATA[@#Date@]]></DEFAULTVALUE>
+<!--890BE735A7E94DD78AE96CA8F55D59EF-->  <ISKEY><![CDATA[N]]></ISKEY>
+<!--890BE735A7E94DD78AE96CA8F55D59EF-->  <ISPARENT><![CDATA[N]]></ISPARENT>
+<!--890BE735A7E94DD78AE96CA8F55D59EF-->  <ISMANDATORY><![CDATA[Y]]></ISMANDATORY>
+<!--890BE735A7E94DD78AE96CA8F55D59EF-->  <ISUPDATEABLE><![CDATA[N]]></ISUPDATEABLE>
+<!--890BE735A7E94DD78AE96CA8F55D59EF-->  <ISIDENTIFIER><![CDATA[N]]></ISIDENTIFIER>
+<!--890BE735A7E94DD78AE96CA8F55D59EF-->  <SEQNO><![CDATA[70]]></SEQNO>
+<!--890BE735A7E94DD78AE96CA8F55D59EF-->  <ISTRANSLATED><![CDATA[N]]></ISTRANSLATED>
+<!--890BE735A7E94DD78AE96CA8F55D59EF-->  <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--890BE735A7E94DD78AE96CA8F55D59EF-->  <ISSELECTIONCOLUMN><![CDATA[N]]></ISSELECTIONCOLUMN>
+<!--890BE735A7E94DD78AE96CA8F55D59EF-->  <AD_ELEMENT_ID><![CDATA[607]]></AD_ELEMENT_ID>
+<!--890BE735A7E94DD78AE96CA8F55D59EF-->  <ISSESSIONATTR><![CDATA[N]]></ISSESSIONATTR>
+<!--890BE735A7E94DD78AE96CA8F55D59EF-->  <ISSECONDARYKEY><![CDATA[N]]></ISSECONDARYKEY>
+<!--890BE735A7E94DD78AE96CA8F55D59EF-->  <ISDESENCRYPTABLE><![CDATA[N]]></ISDESENCRYPTABLE>
+<!--890BE735A7E94DD78AE96CA8F55D59EF-->  <DEVELOPMENTSTATUS><![CDATA[RE]]></DEVELOPMENTSTATUS>
+<!--890BE735A7E94DD78AE96CA8F55D59EF-->  <AD_MODULE_ID><![CDATA[FF8080813141B198013141B86DD70003]]></AD_MODULE_ID>
+<!--890BE735A7E94DD78AE96CA8F55D59EF-->  <POSITION><![CDATA[7]]></POSITION>
+<!--890BE735A7E94DD78AE96CA8F55D59EF-->  <ISTRANSIENT><![CDATA[N]]></ISTRANSIENT>
+<!--890BE735A7E94DD78AE96CA8F55D59EF-->  <ISAUTOSAVE><![CDATA[Y]]></ISAUTOSAVE>
+<!--890BE735A7E94DD78AE96CA8F55D59EF-->  <VALIDATEONNEW><![CDATA[Y]]></VALIDATEONNEW>
+<!--890BE735A7E94DD78AE96CA8F55D59EF--></AD_COLUMN>
+
+<!--A8FD2025FA244939B687F49907BE94C5--><AD_COLUMN>
+<!--A8FD2025FA244939B687F49907BE94C5-->  <AD_COLUMN_ID><![CDATA[A8FD2025FA244939B687F49907BE94C5]]></AD_COLUMN_ID>
+<!--A8FD2025FA244939B687F49907BE94C5-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--A8FD2025FA244939B687F49907BE94C5-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--A8FD2025FA244939B687F49907BE94C5-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--A8FD2025FA244939B687F49907BE94C5-->  <NAME><![CDATA[User/Contact]]></NAME>
+<!--A8FD2025FA244939B687F49907BE94C5-->  <DESCRIPTION><![CDATA[An acquaintance to reach for information related to the business partner.]]></DESCRIPTION>
+<!--A8FD2025FA244939B687F49907BE94C5-->  <HELP><![CDATA[The User identifies a unique user in the system. This could be an internal user or a business partner contact]]></HELP>
+<!--A8FD2025FA244939B687F49907BE94C5-->  <COLUMNNAME><![CDATA[AD_User_ID]]></COLUMNNAME>
+<!--A8FD2025FA244939B687F49907BE94C5-->  <AD_TABLE_ID><![CDATA[FF808081314B80C001314B976A49000C]]></AD_TABLE_ID>
+<!--A8FD2025FA244939B687F49907BE94C5-->  <AD_REFERENCE_ID><![CDATA[19]]></AD_REFERENCE_ID>
+<!--A8FD2025FA244939B687F49907BE94C5-->  <FIELDLENGTH><![CDATA[32]]></FIELDLENGTH>
+<!--A8FD2025FA244939B687F49907BE94C5-->  <ISKEY><![CDATA[N]]></ISKEY>
+<!--A8FD2025FA244939B687F49907BE94C5-->  <ISPARENT><![CDATA[Y]]></ISPARENT>
+<!--A8FD2025FA244939B687F49907BE94C5-->  <ISMANDATORY><![CDATA[Y]]></ISMANDATORY>
+<!--A8FD2025FA244939B687F49907BE94C5-->  <ISUPDATEABLE><![CDATA[N]]></ISUPDATEABLE>
+<!--A8FD2025FA244939B687F49907BE94C5-->  <ISIDENTIFIER><![CDATA[N]]></ISIDENTIFIER>
+<!--A8FD2025FA244939B687F49907BE94C5-->  <SEQNO><![CDATA[90]]></SEQNO>
+<!--A8FD2025FA244939B687F49907BE94C5-->  <ISTRANSLATED><![CDATA[N]]></ISTRANSLATED>
+<!--A8FD2025FA244939B687F49907BE94C5-->  <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--A8FD2025FA244939B687F49907BE94C5-->  <ISSELECTIONCOLUMN><![CDATA[N]]></ISSELECTIONCOLUMN>
+<!--A8FD2025FA244939B687F49907BE94C5-->  <AD_ELEMENT_ID><![CDATA[138]]></AD_ELEMENT_ID>
+<!--A8FD2025FA244939B687F49907BE94C5-->  <ISSESSIONATTR><![CDATA[N]]></ISSESSIONATTR>
+<!--A8FD2025FA244939B687F49907BE94C5-->  <ISSECONDARYKEY><![CDATA[N]]></ISSECONDARYKEY>
+<!--A8FD2025FA244939B687F49907BE94C5-->  <ISDESENCRYPTABLE><![CDATA[N]]></ISDESENCRYPTABLE>
+<!--A8FD2025FA244939B687F49907BE94C5-->  <DEVELOPMENTSTATUS><![CDATA[RE]]></DEVELOPMENTSTATUS>
+<!--A8FD2025FA244939B687F49907BE94C5-->  <AD_MODULE_ID><![CDATA[FF8080813141B198013141B86DD70003]]></AD_MODULE_ID>
+<!--A8FD2025FA244939B687F49907BE94C5-->  <POSITION><![CDATA[9]]></POSITION>
+<!--A8FD2025FA244939B687F49907BE94C5-->  <ISTRANSIENT><![CDATA[N]]></ISTRANSIENT>
+<!--A8FD2025FA244939B687F49907BE94C5-->  <ISAUTOSAVE><![CDATA[Y]]></ISAUTOSAVE>
+<!--A8FD2025FA244939B687F49907BE94C5-->  <VALIDATEONNEW><![CDATA[Y]]></VALIDATEONNEW>
+<!--A8FD2025FA244939B687F49907BE94C5--></AD_COLUMN>
+
+<!--F86B06B218BD4196B3D468A8A3A8F865--><AD_COLUMN>
+<!--F86B06B218BD4196B3D468A8A3A8F865-->  <AD_COLUMN_ID><![CDATA[F86B06B218BD4196B3D468A8A3A8F865]]></AD_COLUMN_ID>
+<!--F86B06B218BD4196B3D468A8A3A8F865-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--F86B06B218BD4196B3D468A8A3A8F865-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--F86B06B218BD4196B3D468A8A3A8F865-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--F86B06B218BD4196B3D468A8A3A8F865-->  <NAME><![CDATA[Active]]></NAME>
+<!--F86B06B218BD4196B3D468A8A3A8F865-->  <DESCRIPTION><![CDATA[A flag indicating whether this record is available for use or de-activated.]]></DESCRIPTION>
+<!--F86B06B218BD4196B3D468A8A3A8F865-->  <HELP><![CDATA[There are two methods of making records unavailable in the system: One is to delete the record, the other is to de-activate the record. A de-activated record is not available for selection, but available for reporting. There are two reasons for de-activating and not deleting records: 
+(1) The system requires the record for auditing purposes.
+(2) The record is referenced by other records. E.g., you cannot delete a Business Partner, if there are existing invoices for it. By de-activating the Business Partner you prevent it from being used in future transactions.]]></HELP>
+<!--F86B06B218BD4196B3D468A8A3A8F865-->  <COLUMNNAME><![CDATA[Isactive]]></COLUMNNAME>
+<!--F86B06B218BD4196B3D468A8A3A8F865-->  <AD_TABLE_ID><![CDATA[FF808081314B80C001314B976A49000C]]></AD_TABLE_ID>
+<!--F86B06B218BD4196B3D468A8A3A8F865-->  <AD_REFERENCE_ID><![CDATA[20]]></AD_REFERENCE_ID>
+<!--F86B06B218BD4196B3D468A8A3A8F865-->  <FIELDLENGTH><![CDATA[1]]></FIELDLENGTH>
+<!--F86B06B218BD4196B3D468A8A3A8F865-->  <DEFAULTVALUE><![CDATA[Y]]></DEFAULTVALUE>
+<!--F86B06B218BD4196B3D468A8A3A8F865-->  <ISKEY><![CDATA[N]]></ISKEY>
+<!--F86B06B218BD4196B3D468A8A3A8F865-->  <ISPARENT><![CDATA[N]]></ISPARENT>
+<!--F86B06B218BD4196B3D468A8A3A8F865-->  <ISMANDATORY><![CDATA[Y]]></ISMANDATORY>
+<!--F86B06B218BD4196B3D468A8A3A8F865-->  <ISUPDATEABLE><![CDATA[Y]]></ISUPDATEABLE>
+<!--F86B06B218BD4196B3D468A8A3A8F865-->  <ISIDENTIFIER><![CDATA[N]]></ISIDENTIFIER>
+<!--F86B06B218BD4196B3D468A8A3A8F865-->  <SEQNO><![CDATA[40]]></SEQNO>
+<!--F86B06B218BD4196B3D468A8A3A8F865-->  <ISTRANSLATED><![CDATA[N]]></ISTRANSLATED>
+<!--F86B06B218BD4196B3D468A8A3A8F865-->  <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--F86B06B218BD4196B3D468A8A3A8F865-->  <ISSELECTIONCOLUMN><![CDATA[N]]></ISSELECTIONCOLUMN>
+<!--F86B06B218BD4196B3D468A8A3A8F865-->  <AD_ELEMENT_ID><![CDATA[348]]></AD_ELEMENT_ID>
+<!--F86B06B218BD4196B3D468A8A3A8F865-->  <ISSESSIONATTR><![CDATA[N]]></ISSESSIONATTR>
+<!--F86B06B218BD4196B3D468A8A3A8F865-->  <ISSECONDARYKEY><![CDATA[N]]></ISSECONDARYKEY>
+<!--F86B06B218BD4196B3D468A8A3A8F865-->  <ISDESENCRYPTABLE><![CDATA[N]]></ISDESENCRYPTABLE>
+<!--F86B06B218BD4196B3D468A8A3A8F865-->  <DEVELOPMENTSTATUS><![CDATA[RE]]></DEVELOPMENTSTATUS>
+<!--F86B06B218BD4196B3D468A8A3A8F865-->  <AD_MODULE_ID><![CDATA[FF8080813141B198013141B86DD70003]]></AD_MODULE_ID>
+<!--F86B06B218BD4196B3D468A8A3A8F865-->  <POSITION><![CDATA[4]]></POSITION>
+<!--F86B06B218BD4196B3D468A8A3A8F865-->  <ISTRANSIENT><![CDATA[N]]></ISTRANSIENT>
+<!--F86B06B218BD4196B3D468A8A3A8F865-->  <ISAUTOSAVE><![CDATA[Y]]></ISAUTOSAVE>
+<!--F86B06B218BD4196B3D468A8A3A8F865-->  <VALIDATEONNEW><![CDATA[Y]]></VALIDATEONNEW>
+<!--F86B06B218BD4196B3D468A8A3A8F865--></AD_COLUMN>
+
+</data>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/org.openbravo.service.integration.openid/src-db/database/sourcedata/AD_ELEMENT.xml	Mon Aug 01 19:44:15 2011 +0200
@@ -0,0 +1,25 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<data>
+<!--031552634F9146CFB0C6140B8955DF1D--><AD_ELEMENT>
+<!--031552634F9146CFB0C6140B8955DF1D-->  <AD_ELEMENT_ID><![CDATA[031552634F9146CFB0C6140B8955DF1D]]></AD_ELEMENT_ID>
+<!--031552634F9146CFB0C6140B8955DF1D-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--031552634F9146CFB0C6140B8955DF1D-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--031552634F9146CFB0C6140B8955DF1D-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--031552634F9146CFB0C6140B8955DF1D-->  <COLUMNNAME><![CDATA[Openid_Identifier]]></COLUMNNAME>
+<!--031552634F9146CFB0C6140B8955DF1D-->  <NAME><![CDATA[OpenID Identifier]]></NAME>
+<!--031552634F9146CFB0C6140B8955DF1D-->  <PRINTNAME><![CDATA[OpenID Identifier]]></PRINTNAME>
+<!--031552634F9146CFB0C6140B8955DF1D-->  <AD_MODULE_ID><![CDATA[FF8080813141B198013141B86DD70003]]></AD_MODULE_ID>
+<!--031552634F9146CFB0C6140B8955DF1D--></AD_ELEMENT>
+
+<!--066A5B188E3341F68CB01AC3D2803AED--><AD_ELEMENT>
+<!--066A5B188E3341F68CB01AC3D2803AED-->  <AD_ELEMENT_ID><![CDATA[066A5B188E3341F68CB01AC3D2803AED]]></AD_ELEMENT_ID>
+<!--066A5B188E3341F68CB01AC3D2803AED-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--066A5B188E3341F68CB01AC3D2803AED-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--066A5B188E3341F68CB01AC3D2803AED-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--066A5B188E3341F68CB01AC3D2803AED-->  <COLUMNNAME><![CDATA[Obsoid_User_Identifier_ID]]></COLUMNNAME>
+<!--066A5B188E3341F68CB01AC3D2803AED-->  <NAME><![CDATA[OpenID Identifier]]></NAME>
+<!--066A5B188E3341F68CB01AC3D2803AED-->  <PRINTNAME><![CDATA[OpenID Identifier]]></PRINTNAME>
+<!--066A5B188E3341F68CB01AC3D2803AED-->  <AD_MODULE_ID><![CDATA[FF8080813141B198013141B86DD70003]]></AD_MODULE_ID>
+<!--066A5B188E3341F68CB01AC3D2803AED--></AD_ELEMENT>
+
+</data>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/org.openbravo.service.integration.openid/src-db/database/sourcedata/AD_FIELD.xml	Mon Aug 01 19:44:15 2011 +0200
@@ -0,0 +1,156 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<data>
+<!--06C3154730F64036B29CFCC083F54E7E--><AD_FIELD>
+<!--06C3154730F64036B29CFCC083F54E7E-->  <AD_FIELD_ID><![CDATA[06C3154730F64036B29CFCC083F54E7E]]></AD_FIELD_ID>
+<!--06C3154730F64036B29CFCC083F54E7E-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--06C3154730F64036B29CFCC083F54E7E-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--06C3154730F64036B29CFCC083F54E7E-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--06C3154730F64036B29CFCC083F54E7E-->  <NAME><![CDATA[OpenID Identifier]]></NAME>
+<!--06C3154730F64036B29CFCC083F54E7E-->  <ISCENTRALLYMAINTAINED><![CDATA[Y]]></ISCENTRALLYMAINTAINED>
+<!--06C3154730F64036B29CFCC083F54E7E-->  <AD_TAB_ID><![CDATA[FF808081314BA5A001314BA803930005]]></AD_TAB_ID>
+<!--06C3154730F64036B29CFCC083F54E7E-->  <AD_COLUMN_ID><![CDATA[73344BE692184AF98F0ACF1C11051E79]]></AD_COLUMN_ID>
+<!--06C3154730F64036B29CFCC083F54E7E-->  <ISDISPLAYED><![CDATA[N]]></ISDISPLAYED>
+<!--06C3154730F64036B29CFCC083F54E7E-->  <DISPLAYLENGTH><![CDATA[32]]></DISPLAYLENGTH>
+<!--06C3154730F64036B29CFCC083F54E7E-->  <ISREADONLY><![CDATA[N]]></ISREADONLY>
+<!--06C3154730F64036B29CFCC083F54E7E-->  <ISSAMELINE><![CDATA[N]]></ISSAMELINE>
+<!--06C3154730F64036B29CFCC083F54E7E-->  <ISFIELDONLY><![CDATA[N]]></ISFIELDONLY>
+<!--06C3154730F64036B29CFCC083F54E7E-->  <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--06C3154730F64036B29CFCC083F54E7E-->  <SHOWINRELATION><![CDATA[N]]></SHOWINRELATION>
+<!--06C3154730F64036B29CFCC083F54E7E-->  <ISFIRSTFOCUSEDFIELD><![CDATA[N]]></ISFIRSTFOCUSEDFIELD>
+<!--06C3154730F64036B29CFCC083F54E7E-->  <AD_MODULE_ID><![CDATA[FF8080813141B198013141B86DD70003]]></AD_MODULE_ID>
+<!--06C3154730F64036B29CFCC083F54E7E-->  <STARTINODDCOLUMN><![CDATA[N]]></STARTINODDCOLUMN>
+<!--06C3154730F64036B29CFCC083F54E7E-->  <STARTNEWLINE><![CDATA[N]]></STARTNEWLINE>
+<!--06C3154730F64036B29CFCC083F54E7E-->  <ISSHOWNINSTATUSBAR><![CDATA[N]]></ISSHOWNINSTATUSBAR>
+<!--06C3154730F64036B29CFCC083F54E7E--></AD_FIELD>
+
+<!--32B045DD0DFC4D7D813B0EADB947E496--><AD_FIELD>
+<!--32B045DD0DFC4D7D813B0EADB947E496-->  <AD_FIELD_ID><![CDATA[32B045DD0DFC4D7D813B0EADB947E496]]></AD_FIELD_ID>
+<!--32B045DD0DFC4D7D813B0EADB947E496-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--32B045DD0DFC4D7D813B0EADB947E496-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--32B045DD0DFC4D7D813B0EADB947E496-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--32B045DD0DFC4D7D813B0EADB947E496-->  <NAME><![CDATA[Organization]]></NAME>
+<!--32B045DD0DFC4D7D813B0EADB947E496-->  <DESCRIPTION><![CDATA[Organizational entity within client]]></DESCRIPTION>
+<!--32B045DD0DFC4D7D813B0EADB947E496-->  <HELP><![CDATA[An organization is a unit of your client or legal entity - examples are store, department. You can share data between organizations.]]></HELP>
+<!--32B045DD0DFC4D7D813B0EADB947E496-->  <ISCENTRALLYMAINTAINED><![CDATA[Y]]></ISCENTRALLYMAINTAINED>
+<!--32B045DD0DFC4D7D813B0EADB947E496-->  <AD_TAB_ID><![CDATA[FF808081314BA5A001314BA803930005]]></AD_TAB_ID>
+<!--32B045DD0DFC4D7D813B0EADB947E496-->  <AD_COLUMN_ID><![CDATA[2F7C8DD6C697415ABA1B3EE701BC2C4A]]></AD_COLUMN_ID>
+<!--32B045DD0DFC4D7D813B0EADB947E496-->  <ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
+<!--32B045DD0DFC4D7D813B0EADB947E496-->  <DISPLAYLENGTH><![CDATA[32]]></DISPLAYLENGTH>
+<!--32B045DD0DFC4D7D813B0EADB947E496-->  <ISREADONLY><![CDATA[N]]></ISREADONLY>
+<!--32B045DD0DFC4D7D813B0EADB947E496-->  <SEQNO><![CDATA[10]]></SEQNO>
+<!--32B045DD0DFC4D7D813B0EADB947E496-->  <ISSAMELINE><![CDATA[N]]></ISSAMELINE>
+<!--32B045DD0DFC4D7D813B0EADB947E496-->  <ISFIELDONLY><![CDATA[N]]></ISFIELDONLY>
+<!--32B045DD0DFC4D7D813B0EADB947E496-->  <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--32B045DD0DFC4D7D813B0EADB947E496-->  <SHOWINRELATION><![CDATA[N]]></SHOWINRELATION>
+<!--32B045DD0DFC4D7D813B0EADB947E496-->  <ISFIRSTFOCUSEDFIELD><![CDATA[N]]></ISFIRSTFOCUSEDFIELD>
+<!--32B045DD0DFC4D7D813B0EADB947E496-->  <AD_MODULE_ID><![CDATA[FF8080813141B198013141B86DD70003]]></AD_MODULE_ID>
+<!--32B045DD0DFC4D7D813B0EADB947E496-->  <STARTINODDCOLUMN><![CDATA[N]]></STARTINODDCOLUMN>
+<!--32B045DD0DFC4D7D813B0EADB947E496-->  <STARTNEWLINE><![CDATA[N]]></STARTNEWLINE>
+<!--32B045DD0DFC4D7D813B0EADB947E496-->  <ISSHOWNINSTATUSBAR><![CDATA[N]]></ISSHOWNINSTATUSBAR>
+<!--32B045DD0DFC4D7D813B0EADB947E496--></AD_FIELD>
+
+<!--34D7279AFB294666A568470B7257F94E--><AD_FIELD>
+<!--34D7279AFB294666A568470B7257F94E-->  <AD_FIELD_ID><![CDATA[34D7279AFB294666A568470B7257F94E]]></AD_FIELD_ID>
+<!--34D7279AFB294666A568470B7257F94E-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--34D7279AFB294666A568470B7257F94E-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--34D7279AFB294666A568470B7257F94E-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--34D7279AFB294666A568470B7257F94E-->  <NAME><![CDATA[Client]]></NAME>
+<!--34D7279AFB294666A568470B7257F94E-->  <DESCRIPTION><![CDATA[Client for this installation.]]></DESCRIPTION>
+<!--34D7279AFB294666A568470B7257F94E-->  <HELP><![CDATA[A Client is a company or a legal entity. You cannot share data between Clients.]]></HELP>
+<!--34D7279AFB294666A568470B7257F94E-->  <ISCENTRALLYMAINTAINED><![CDATA[Y]]></ISCENTRALLYMAINTAINED>
+<!--34D7279AFB294666A568470B7257F94E-->  <AD_TAB_ID><![CDATA[FF808081314BA5A001314BA803930005]]></AD_TAB_ID>
+<!--34D7279AFB294666A568470B7257F94E-->  <AD_COLUMN_ID><![CDATA[575115249FD0451AA66D6AEE49978E7C]]></AD_COLUMN_ID>
+<!--34D7279AFB294666A568470B7257F94E-->  <ISDISPLAYED><![CDATA[N]]></ISDISPLAYED>
+<!--34D7279AFB294666A568470B7257F94E-->  <DISPLAYLENGTH><![CDATA[32]]></DISPLAYLENGTH>
+<!--34D7279AFB294666A568470B7257F94E-->  <ISREADONLY><![CDATA[N]]></ISREADONLY>
+<!--34D7279AFB294666A568470B7257F94E-->  <ISSAMELINE><![CDATA[N]]></ISSAMELINE>
+<!--34D7279AFB294666A568470B7257F94E-->  <ISFIELDONLY><![CDATA[N]]></ISFIELDONLY>
+<!--34D7279AFB294666A568470B7257F94E-->  <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--34D7279AFB294666A568470B7257F94E-->  <SHOWINRELATION><![CDATA[N]]></SHOWINRELATION>
+<!--34D7279AFB294666A568470B7257F94E-->  <ISFIRSTFOCUSEDFIELD><![CDATA[N]]></ISFIRSTFOCUSEDFIELD>
+<!--34D7279AFB294666A568470B7257F94E-->  <AD_MODULE_ID><![CDATA[FF8080813141B198013141B86DD70003]]></AD_MODULE_ID>
+<!--34D7279AFB294666A568470B7257F94E-->  <STARTINODDCOLUMN><![CDATA[N]]></STARTINODDCOLUMN>
+<!--34D7279AFB294666A568470B7257F94E-->  <STARTNEWLINE><![CDATA[N]]></STARTNEWLINE>
+<!--34D7279AFB294666A568470B7257F94E-->  <ISSHOWNINSTATUSBAR><![CDATA[N]]></ISSHOWNINSTATUSBAR>
+<!--34D7279AFB294666A568470B7257F94E--></AD_FIELD>
+
+<!--44DE96A0EB544FAAA7A641B5CAD7024D--><AD_FIELD>
+<!--44DE96A0EB544FAAA7A641B5CAD7024D-->  <AD_FIELD_ID><![CDATA[44DE96A0EB544FAAA7A641B5CAD7024D]]></AD_FIELD_ID>
+<!--44DE96A0EB544FAAA7A641B5CAD7024D-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--44DE96A0EB544FAAA7A641B5CAD7024D-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--44DE96A0EB544FAAA7A641B5CAD7024D-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--44DE96A0EB544FAAA7A641B5CAD7024D-->  <NAME><![CDATA[Active]]></NAME>
+<!--44DE96A0EB544FAAA7A641B5CAD7024D-->  <DESCRIPTION><![CDATA[A flag indicating whether this record is available for use or de-activated.]]></DESCRIPTION>
+<!--44DE96A0EB544FAAA7A641B5CAD7024D-->  <HELP><![CDATA[There are two methods of making records unavailable in the system: One is to delete the record, the other is to de-activate the record. A de-activated record is not available for selection, but available for reporting. There are two reasons for de-activating and not deleting records: 
+(1) The system requires the record for auditing purposes.
+(2) The record is referenced by other records. E.g., you cannot delete a Business Partner, if there are existing invoices for it. By de-activating the Business Partner you prevent it from being used in future transactions.]]></HELP>
+<!--44DE96A0EB544FAAA7A641B5CAD7024D-->  <ISCENTRALLYMAINTAINED><![CDATA[Y]]></ISCENTRALLYMAINTAINED>
+<!--44DE96A0EB544FAAA7A641B5CAD7024D-->  <AD_TAB_ID><![CDATA[FF808081314BA5A001314BA803930005]]></AD_TAB_ID>
+<!--44DE96A0EB544FAAA7A641B5CAD7024D-->  <AD_COLUMN_ID><![CDATA[F86B06B218BD4196B3D468A8A3A8F865]]></AD_COLUMN_ID>
+<!--44DE96A0EB544FAAA7A641B5CAD7024D-->  <ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
+<!--44DE96A0EB544FAAA7A641B5CAD7024D-->  <DISPLAYLENGTH><![CDATA[1]]></DISPLAYLENGTH>
+<!--44DE96A0EB544FAAA7A641B5CAD7024D-->  <ISREADONLY><![CDATA[N]]></ISREADONLY>
+<!--44DE96A0EB544FAAA7A641B5CAD7024D-->  <SEQNO><![CDATA[30]]></SEQNO>
+<!--44DE96A0EB544FAAA7A641B5CAD7024D-->  <ISSAMELINE><![CDATA[N]]></ISSAMELINE>
+<!--44DE96A0EB544FAAA7A641B5CAD7024D-->  <ISFIELDONLY><![CDATA[N]]></ISFIELDONLY>
+<!--44DE96A0EB544FAAA7A641B5CAD7024D-->  <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--44DE96A0EB544FAAA7A641B5CAD7024D-->  <SHOWINRELATION><![CDATA[N]]></SHOWINRELATION>
+<!--44DE96A0EB544FAAA7A641B5CAD7024D-->  <ISFIRSTFOCUSEDFIELD><![CDATA[N]]></ISFIRSTFOCUSEDFIELD>
+<!--44DE96A0EB544FAAA7A641B5CAD7024D-->  <AD_MODULE_ID><![CDATA[FF8080813141B198013141B86DD70003]]></AD_MODULE_ID>
+<!--44DE96A0EB544FAAA7A641B5CAD7024D-->  <STARTINODDCOLUMN><![CDATA[N]]></STARTINODDCOLUMN>
+<!--44DE96A0EB544FAAA7A641B5CAD7024D-->  <STARTNEWLINE><![CDATA[N]]></STARTNEWLINE>
+<!--44DE96A0EB544FAAA7A641B5CAD7024D-->  <ISSHOWNINSTATUSBAR><![CDATA[N]]></ISSHOWNINSTATUSBAR>
+<!--44DE96A0EB544FAAA7A641B5CAD7024D--></AD_FIELD>
+
+<!--9339017A118E41D2B39AFE98068732C7--><AD_FIELD>
+<!--9339017A118E41D2B39AFE98068732C7-->  <AD_FIELD_ID><![CDATA[9339017A118E41D2B39AFE98068732C7]]></AD_FIELD_ID>
+<!--9339017A118E41D2B39AFE98068732C7-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--9339017A118E41D2B39AFE98068732C7-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--9339017A118E41D2B39AFE98068732C7-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--9339017A118E41D2B39AFE98068732C7-->  <NAME><![CDATA[User/Contact]]></NAME>
+<!--9339017A118E41D2B39AFE98068732C7-->  <DESCRIPTION><![CDATA[An acquaintance to reach for information related to the business partner.]]></DESCRIPTION>
+<!--9339017A118E41D2B39AFE98068732C7-->  <HELP><![CDATA[The User identifies a unique user in the system. This could be an internal user or a business partner contact]]></HELP>
+<!--9339017A118E41D2B39AFE98068732C7-->  <ISCENTRALLYMAINTAINED><![CDATA[Y]]></ISCENTRALLYMAINTAINED>
+<!--9339017A118E41D2B39AFE98068732C7-->  <AD_TAB_ID><![CDATA[FF808081314BA5A001314BA803930005]]></AD_TAB_ID>
+<!--9339017A118E41D2B39AFE98068732C7-->  <AD_COLUMN_ID><![CDATA[A8FD2025FA244939B687F49907BE94C5]]></AD_COLUMN_ID>
+<!--9339017A118E41D2B39AFE98068732C7-->  <ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
+<!--9339017A118E41D2B39AFE98068732C7-->  <DISPLAYLENGTH><![CDATA[32]]></DISPLAYLENGTH>
+<!--9339017A118E41D2B39AFE98068732C7-->  <ISREADONLY><![CDATA[N]]></ISREADONLY>
+<!--9339017A118E41D2B39AFE98068732C7-->  <SEQNO><![CDATA[40]]></SEQNO>
+<!--9339017A118E41D2B39AFE98068732C7-->  <ISSAMELINE><![CDATA[N]]></ISSAMELINE>
+<!--9339017A118E41D2B39AFE98068732C7-->  <ISFIELDONLY><![CDATA[N]]></ISFIELDONLY>
+<!--9339017A118E41D2B39AFE98068732C7-->  <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--9339017A118E41D2B39AFE98068732C7-->  <SHOWINRELATION><![CDATA[N]]></SHOWINRELATION>
+<!--9339017A118E41D2B39AFE98068732C7-->  <ISFIRSTFOCUSEDFIELD><![CDATA[N]]></ISFIRSTFOCUSEDFIELD>
+<!--9339017A118E41D2B39AFE98068732C7-->  <AD_MODULE_ID><![CDATA[FF8080813141B198013141B86DD70003]]></AD_MODULE_ID>
+<!--9339017A118E41D2B39AFE98068732C7-->  <STARTINODDCOLUMN><![CDATA[N]]></STARTINODDCOLUMN>
+<!--9339017A118E41D2B39AFE98068732C7-->  <STARTNEWLINE><![CDATA[N]]></STARTNEWLINE>
+<!--9339017A118E41D2B39AFE98068732C7-->  <ISSHOWNINSTATUSBAR><![CDATA[N]]></ISSHOWNINSTATUSBAR>
+<!--9339017A118E41D2B39AFE98068732C7--></AD_FIELD>
+
+<!--BB27460CAB754EADA0B16977399C1334--><AD_FIELD>
+<!--BB27460CAB754EADA0B16977399C1334-->  <AD_FIELD_ID><![CDATA[BB27460CAB754EADA0B16977399C1334]]></AD_FIELD_ID>
+<!--BB27460CAB754EADA0B16977399C1334-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--BB27460CAB754EADA0B16977399C1334-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--BB27460CAB754EADA0B16977399C1334-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--BB27460CAB754EADA0B16977399C1334-->  <NAME><![CDATA[OpenID Identifier]]></NAME>
+<!--BB27460CAB754EADA0B16977399C1334-->  <ISCENTRALLYMAINTAINED><![CDATA[Y]]></ISCENTRALLYMAINTAINED>
+<!--BB27460CAB754EADA0B16977399C1334-->  <AD_TAB_ID><![CDATA[FF808081314BA5A001314BA803930005]]></AD_TAB_ID>
+<!--BB27460CAB754EADA0B16977399C1334-->  <AD_COLUMN_ID><![CDATA[31878640A2FE4C128F50DF1A4CE42C66]]></AD_COLUMN_ID>
+<!--BB27460CAB754EADA0B16977399C1334-->  <ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
+<!--BB27460CAB754EADA0B16977399C1334-->  <DISPLAYLENGTH><![CDATA[255]]></DISPLAYLENGTH>
+<!--BB27460CAB754EADA0B16977399C1334-->  <ISREADONLY><![CDATA[N]]></ISREADONLY>
+<!--BB27460CAB754EADA0B16977399C1334-->  <SEQNO><![CDATA[50]]></SEQNO>
+<!--BB27460CAB754EADA0B16977399C1334-->  <ISSAMELINE><![CDATA[N]]></ISSAMELINE>
+<!--BB27460CAB754EADA0B16977399C1334-->  <ISFIELDONLY><![CDATA[N]]></ISFIELDONLY>
+<!--BB27460CAB754EADA0B16977399C1334-->  <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--BB27460CAB754EADA0B16977399C1334-->  <SHOWINRELATION><![CDATA[Y]]></SHOWINRELATION>
+<!--BB27460CAB754EADA0B16977399C1334-->  <ISFIRSTFOCUSEDFIELD><![CDATA[N]]></ISFIRSTFOCUSEDFIELD>
+<!--BB27460CAB754EADA0B16977399C1334-->  <AD_MODULE_ID><![CDATA[FF8080813141B198013141B86DD70003]]></AD_MODULE_ID>
+<!--BB27460CAB754EADA0B16977399C1334-->  <GRID_SEQNO><![CDATA[10]]></GRID_SEQNO>
+<!--BB27460CAB754EADA0B16977399C1334-->  <STARTINODDCOLUMN><![CDATA[N]]></STARTINODDCOLUMN>
+<!--BB27460CAB754EADA0B16977399C1334-->  <STARTNEWLINE><![CDATA[N]]></STARTNEWLINE>
+<!--BB27460CAB754EADA0B16977399C1334-->  <ISSHOWNINSTATUSBAR><![CDATA[N]]></ISSHOWNINSTATUSBAR>
+<!--BB27460CAB754EADA0B16977399C1334--></AD_FIELD>
+
+</data>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/org.openbravo.service.integration.openid/src-db/database/sourcedata/AD_MODULE.xml	Mon Aug 01 19:44:15 2011 +0200
@@ -0,0 +1,25 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<data>
+<!--FF8080813141B198013141B86DD70003--><AD_MODULE>
+<!--FF8080813141B198013141B86DD70003-->  <AD_MODULE_ID><![CDATA[FF8080813141B198013141B86DD70003]]></AD_MODULE_ID>
+<!--FF8080813141B198013141B86DD70003-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--FF8080813141B198013141B86DD70003-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--FF8080813141B198013141B86DD70003-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--FF8080813141B198013141B86DD70003-->  <NAME><![CDATA[OpenID Service Integration]]></NAME>
+<!--FF8080813141B198013141B86DD70003-->  <VERSION><![CDATA[0.1.0]]></VERSION>
+<!--FF8080813141B198013141B86DD70003-->  <DESCRIPTION><![CDATA[OpenID Service Integration]]></DESCRIPTION>
+<!--FF8080813141B198013141B86DD70003-->  <TYPE><![CDATA[M]]></TYPE>
+<!--FF8080813141B198013141B86DD70003-->  <LICENSE><![CDATA[Licensed under the Openbravo Public License Version 1.1.
+You may obtain a copy of the License at http://www.openbravo.com/legal/license.html or in the legal folder of the Openbravo ERP core distribution.]]></LICENSE>
+<!--FF8080813141B198013141B86DD70003-->  <JAVAPACKAGE><![CDATA[org.openbravo.service.integration.openid]]></JAVAPACKAGE>
+<!--FF8080813141B198013141B86DD70003-->  <LICENSETYPE><![CDATA[OBPL]]></LICENSETYPE>
+<!--FF8080813141B198013141B86DD70003-->  <AUTHOR><![CDATA[Openbravo S.L.U.]]></AUTHOR>
+<!--FF8080813141B198013141B86DD70003-->  <ISTRANSLATIONREQUIRED><![CDATA[N]]></ISTRANSLATIONREQUIRED>
+<!--FF8080813141B198013141B86DD70003-->  <AD_LANGUAGE><![CDATA[en_US]]></AD_LANGUAGE>
+<!--FF8080813141B198013141B86DD70003-->  <HASCHARTOFACCOUNTS><![CDATA[N]]></HASCHARTOFACCOUNTS>
+<!--FF8080813141B198013141B86DD70003-->  <ISTRANSLATIONMODULE><![CDATA[N]]></ISTRANSLATIONMODULE>
+<!--FF8080813141B198013141B86DD70003-->  <HASREFERENCEDATA><![CDATA[N]]></HASREFERENCEDATA>
+<!--FF8080813141B198013141B86DD70003-->  <ISCOMMERCIAL><![CDATA[N]]></ISCOMMERCIAL>
+<!--FF8080813141B198013141B86DD70003--></AD_MODULE>
+
+</data>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/org.openbravo.service.integration.openid/src-db/database/sourcedata/AD_MODULE_DBPREFIX.xml	Mon Aug 01 19:44:15 2011 +0200
@@ -0,0 +1,12 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<data>
+<!--FF80808131422F2301314236787C0009--><AD_MODULE_DBPREFIX>
+<!--FF80808131422F2301314236787C0009-->  <AD_MODULE_DBPREFIX_ID><![CDATA[FF80808131422F2301314236787C0009]]></AD_MODULE_DBPREFIX_ID>
+<!--FF80808131422F2301314236787C0009-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--FF80808131422F2301314236787C0009-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--FF80808131422F2301314236787C0009-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--FF80808131422F2301314236787C0009-->  <AD_MODULE_ID><![CDATA[FF8080813141B198013141B86DD70003]]></AD_MODULE_ID>
+<!--FF80808131422F2301314236787C0009-->  <NAME><![CDATA[OBSOID]]></NAME>
+<!--FF80808131422F2301314236787C0009--></AD_MODULE_DBPREFIX>
+
+</data>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/org.openbravo.service.integration.openid/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Mon Aug 01 19:44:15 2011 +0200
@@ -0,0 +1,17 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<data>
+<!--FF8080813141B198013141B8B21B0006--><AD_MODULE_DEPENDENCY>
+<!--FF8080813141B198013141B8B21B0006-->  <AD_MODULE_DEPENDENCY_ID><![CDATA[FF8080813141B198013141B8B21B0006]]></AD_MODULE_DEPENDENCY_ID>
+<!--FF8080813141B198013141B8B21B0006-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--FF8080813141B198013141B8B21B0006-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--FF8080813141B198013141B8B21B0006-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--FF8080813141B198013141B8B21B0006-->  <AD_MODULE_ID><![CDATA[FF8080813141B198013141B86DD70003]]></AD_MODULE_ID>
+<!--FF8080813141B198013141B8B21B0006-->  <AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID>
+<!--FF8080813141B198013141B8B21B0006-->  <STARTVERSION><![CDATA[3.0.13133]]></STARTVERSION>
+<!--FF8080813141B198013141B8B21B0006-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
+<!--FF8080813141B198013141B8B21B0006-->  <DEPENDANT_MODULE_NAME><![CDATA[Core]]></DEPENDANT_MODULE_NAME>
+<!--FF8080813141B198013141B8B21B0006-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
+<!--FF8080813141B198013141B8B21B0006-->  <USER_EDITABLE_ENFORCEMENT><![CDATA[N]]></USER_EDITABLE_ENFORCEMENT>
+<!--FF8080813141B198013141B8B21B0006--></AD_MODULE_DEPENDENCY>
+
+</data>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/org.openbravo.service.integration.openid/src-db/database/sourcedata/AD_PACKAGE.xml	Mon Aug 01 19:44:15 2011 +0200
@@ -0,0 +1,13 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<data>
+<!--FF808081314B80C001314B95ADB90008--><AD_PACKAGE>
+<!--FF808081314B80C001314B95ADB90008-->  <AD_PACKAGE_ID><![CDATA[FF808081314B80C001314B95ADB90008]]></AD_PACKAGE_ID>
+<!--FF808081314B80C001314B95ADB90008-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--FF808081314B80C001314B95ADB90008-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--FF808081314B80C001314B95ADB90008-->  <NAME><![CDATA[org.openbravo.service.integration.openid]]></NAME>
+<!--FF808081314B80C001314B95ADB90008-->  <JAVAPACKAGE><![CDATA[org.openbravo.service.integration.openid]]></JAVAPACKAGE>
+<!--FF808081314B80C001314B95ADB90008-->  <AD_MODULE_ID><![CDATA[FF8080813141B198013141B86DD70003]]></AD_MODULE_ID>
+<!--FF808081314B80C001314B95ADB90008-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--FF808081314B80C001314B95ADB90008--></AD_PACKAGE>
+
+</data>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/org.openbravo.service.integration.openid/src-db/database/sourcedata/AD_TAB.xml	Mon Aug 01 19:44:15 2011 +0200
@@ -0,0 +1,26 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<data>
+<!--FF808081314BA5A001314BA803930005--><AD_TAB>
+<!--FF808081314BA5A001314BA803930005-->  <AD_TAB_ID><![CDATA[FF808081314BA5A001314BA803930005]]></AD_TAB_ID>
+<!--FF808081314BA5A001314BA803930005-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--FF808081314BA5A001314BA803930005-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--FF808081314BA5A001314BA803930005-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--FF808081314BA5A001314BA803930005-->  <NAME><![CDATA[OpenID Identifier]]></NAME>
+<!--FF808081314BA5A001314BA803930005-->  <AD_TABLE_ID><![CDATA[FF808081314B80C001314B976A49000C]]></AD_TABLE_ID>
+<!--FF808081314BA5A001314BA803930005-->  <AD_WINDOW_ID><![CDATA[108]]></AD_WINDOW_ID>
+<!--FF808081314BA5A001314BA803930005-->  <SEQNO><![CDATA[30]]></SEQNO>
+<!--FF808081314BA5A001314BA803930005-->  <TABLEVEL><![CDATA[1]]></TABLEVEL>
+<!--FF808081314BA5A001314BA803930005-->  <ISSINGLEROW><![CDATA[N]]></ISSINGLEROW>
+<!--FF808081314BA5A001314BA803930005-->  <ISINFOTAB><![CDATA[N]]></ISINFOTAB>
+<!--FF808081314BA5A001314BA803930005-->  <ISTRANSLATIONTAB><![CDATA[N]]></ISTRANSLATIONTAB>
+<!--FF808081314BA5A001314BA803930005-->  <ISREADONLY><![CDATA[N]]></ISREADONLY>
+<!--FF808081314BA5A001314BA803930005-->  <HASTREE><![CDATA[N]]></HASTREE>
+<!--FF808081314BA5A001314BA803930005-->  <PROCESSING><![CDATA[N]]></PROCESSING>
+<!--FF808081314BA5A001314BA803930005-->  <IMPORTFIELDS><![CDATA[N]]></IMPORTFIELDS>
+<!--FF808081314BA5A001314BA803930005-->  <ISSORTTAB><![CDATA[N]]></ISSORTTAB>
+<!--FF808081314BA5A001314BA803930005-->  <AD_MODULE_ID><![CDATA[FF8080813141B198013141B86DD70003]]></AD_MODULE_ID>
+<!--FF808081314BA5A001314BA803930005-->  <UIPATTERN><![CDATA[RO]]></UIPATTERN>
+<!--FF808081314BA5A001314BA803930005-->  <SHOWPARENTBUTTONS><![CDATA[N]]></SHOWPARENTBUTTONS>
+<!--FF808081314BA5A001314BA803930005--></AD_TAB>
+
+</data>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/org.openbravo.service.integration.openid/src-db/database/sourcedata/AD_TABLE.xml	Mon Aug 01 19:44:15 2011 +0200
@@ -0,0 +1,23 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<data>
+<!--FF808081314B80C001314B976A49000C--><AD_TABLE>
+<!--FF808081314B80C001314B976A49000C-->  <AD_TABLE_ID><![CDATA[FF808081314B80C001314B976A49000C]]></AD_TABLE_ID>
+<!--FF808081314B80C001314B976A49000C-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--FF808081314B80C001314B976A49000C-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--FF808081314B80C001314B976A49000C-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--FF808081314B80C001314B976A49000C-->  <NAME><![CDATA[OBSOID_User_Identifier]]></NAME>
+<!--FF808081314B80C001314B976A49000C-->  <TABLENAME><![CDATA[OBSOID_User_Identifier]]></TABLENAME>
+<!--FF808081314B80C001314B976A49000C-->  <CLASSNAME><![CDATA[OBSOIDUserIdentifier]]></CLASSNAME>
+<!--FF808081314B80C001314B976A49000C-->  <ISVIEW><![CDATA[N]]></ISVIEW>
+<!--FF808081314B80C001314B976A49000C-->  <ACCESSLEVEL><![CDATA[3]]></ACCESSLEVEL>
+<!--FF808081314B80C001314B976A49000C-->  <ISSECURITYENABLED><![CDATA[N]]></ISSECURITYENABLED>
+<!--FF808081314B80C001314B976A49000C-->  <ISDELETEABLE><![CDATA[Y]]></ISDELETEABLE>
+<!--FF808081314B80C001314B976A49000C-->  <ISHIGHVOLUME><![CDATA[N]]></ISHIGHVOLUME>
+<!--FF808081314B80C001314B976A49000C-->  <IMPORTTABLE><![CDATA[N]]></IMPORTTABLE>
+<!--FF808081314B80C001314B976A49000C-->  <ISCHANGELOG><![CDATA[N]]></ISCHANGELOG>
+<!--FF808081314B80C001314B976A49000C-->  <ISDEFAULTACCT><![CDATA[N]]></ISDEFAULTACCT>
+<!--FF808081314B80C001314B976A49000C-->  <DEVELOPMENTSTATUS><![CDATA[RE]]></DEVELOPMENTSTATUS>
+<!--FF808081314B80C001314B976A49000C-->  <AD_PACKAGE_ID><![CDATA[FF808081314B80C001314B95ADB90008]]></AD_PACKAGE_ID>
+<!--FF808081314B80C001314B976A49000C--></AD_TABLE>
+
+</data>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/org.openbravo.service.integration.openid/src/org/openbravo/service/integration/openid/OpenIDManager.java	Mon Aug 01 19:44:15 2011 +0200
@@ -0,0 +1,256 @@
+/*
+ *************************************************************************
+ * The contents of this file are subject to the Openbravo  Public  License
+ * Version  1.1  (the  "License"),  being   the  Mozilla   Public  License
+ * Version 1.1  with a permitted attribution clause; you may not  use this
+ * file except in compliance with the License. You  may  obtain  a copy of
+ * the License at http://www.openbravo.com/legal/license.html
+ * Software distributed under the License  is  distributed  on  an "AS IS"
+ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+ * License for the specific  language  governing  rights  and  limitations
+ * under the License.
+ * The Original Code is Openbravo ERP.
+ * The Initial Developer of the Original Code is Openbravo SLU
+ * All portions are Copyright (C) 2011 Openbravo SLU
+ * All Rights Reserved.
+ * Contributor(s):  ______________________________________.
+ ************************************************************************
+ */
+package org.openbravo.service.integration.openid;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.log4j.Logger;
+import org.hibernate.criterion.Restrictions;
+import org.openbravo.base.exception.OBException;
+import org.openbravo.base.provider.OBProvider;
+import org.openbravo.base.provider.OBSingleton;
+import org.openbravo.dal.core.OBContext;
+import org.openbravo.dal.service.OBCriteria;
+import org.openbravo.dal.service.OBDal;
+import org.openbravo.model.ad.access.User;
+import org.openid4java.OpenIDException;
+import org.openid4java.association.AssociationSessionType;
+import org.openid4java.consumer.ConsumerManager;
+import org.openid4java.consumer.InMemoryConsumerAssociationStore;
+import org.openid4java.consumer.InMemoryNonceVerifier;
+import org.openid4java.consumer.VerificationResult;
+import org.openid4java.discovery.DiscoveryInformation;
+import org.openid4java.discovery.Identifier;
+import org.openid4java.message.AuthRequest;
+import org.openid4java.message.AuthSuccess;
+import org.openid4java.message.MessageException;
+import org.openid4java.message.ParameterList;
+import org.openid4java.message.ax.AxMessage;
+import org.openid4java.message.ax.FetchRequest;
+import org.openid4java.message.ax.FetchResponse;
+
+/**
+ * 
+ * @author iperdomo
+ */
+@SuppressWarnings("rawtypes")
+public class OpenIDManager implements OBSingleton {
+
+  private static ConsumerManager manager;
+  private static OpenIDManager instance;
+
+  private static Logger log = Logger.getLogger(OpenIDManager.class);
+
+  private static final Map<String, DiscoveryInformation> discoveryInformationMap;
+
+  public static final String ATTRIBUTE_EMAIL = "email";
+  public static final String ATTRIBUTE_FIRSTNAME = "firstName";
+  public static final String ATTRIBUTE_LASTNAME = "lastName";
+
+  public static final String GOOGLE_OPENID_DISCOVER_URL = "https://www.google.com/accounts/o8/id";
+
+  static {
+    discoveryInformationMap = new HashMap<String, DiscoveryInformation>();
+  }
+
+  public static OpenIDManager getInstance() {
+    if (instance == null) {
+      instance = OBProvider.getInstance().get(OpenIDManager.class);
+      manager = new ConsumerManager();
+      manager.setAssociations(new InMemoryConsumerAssociationStore());
+      manager.setNonceVerifier(new InMemoryNonceVerifier(5000));
+      manager.setMinAssocSessEnc(AssociationSessionType.DH_SHA256);
+    }
+    return instance;
+  }
+
+  public String authRequest(String discoverURL, HttpServletRequest httpReq,
+      HttpServletResponse httpResp) throws IOException, ServletException {
+    try {
+      // configure the return_to URL where your application will receive
+      // the authentication responses from the OpenID provider
+      // String returnToUrl = "http://example.com/openid";
+      String returnToUrl = httpReq.getRequestURL().toString() + "?is_return=true";
+
+      DiscoveryInformation discovered;
+      if (discoveryInformationMap.containsKey(discoverURL)) {
+        discovered = discoveryInformationMap.get(discoverURL);
+      } else {
+        // perform discovery on the user-supplied identifier
+        List discoveries = manager.discover(discoverURL);
+
+        // attempt to associate with the OpenID provider
+        // and retrieve one service endpoint for authentication
+        discovered = manager.associate(discoveries);
+
+        discoveryInformationMap.put(discoverURL, discovered);
+      }
+
+      // store the discovery information in the user's session
+      httpReq.getSession().setAttribute("openid-disc", discovered);
+
+      // obtain a AuthRequest message to be sent to the OpenID provider
+      AuthRequest authReq = manager.authenticate(discovered, returnToUrl);
+
+      FetchRequest fetch = FetchRequest.createFetchRequest();
+      fetch.addAttribute(ATTRIBUTE_EMAIL, "http://axschema.org/contact/email", true);
+      fetch.addAttribute(ATTRIBUTE_FIRSTNAME, "http://axschema.org/namePerson/first", true);
+      fetch.addAttribute(ATTRIBUTE_LASTNAME, "http://axschema.org/namePerson/last", true);
+
+      authReq.addExtension(fetch);
+
+      httpReq.setAttribute("message", authReq);
+
+      httpResp.sendRedirect(authReq.getDestinationUrl(true));
+    } catch (OpenIDException e) {
+      // present error to the user
+      throw new ServletException(e);
+    }
+
+    return null;
+  }
+
+  public User getUser(Identifier oid) throws OBException {
+    User u = null;
+
+    OBCriteria<OBSOIDUserIdentifier> userCriteria = OBDal.getInstance().createCriteria(
+        OBSOIDUserIdentifier.class);
+    userCriteria
+        .add(Restrictions.eq(OBSOIDUserIdentifier.PROPERTY_OPENIDIDENTIFIER, oid.toString()));
+    userCriteria.setFilterOnReadableClients(false);
+    userCriteria.setFilterOnReadableOrganization(false);
+
+    if (userCriteria.count() > 0) {
+      u = userCriteria.list().get(0).getUserContact();
+    }
+    return u;
+  }
+
+  @SuppressWarnings("unchecked")
+  public void associateAccount(Identifier oid, HttpServletRequest req, HttpServletResponse resp)
+      throws Exception {
+    Map<String, String> userAttributes = (LinkedHashMap<String, String>) req
+        .getAttribute("attributes");
+
+    User user = OBDal.getInstance().get(User.class, OBContext.getOBContext().getUser().getId());
+
+    if (!userAttributes.get(ATTRIBUTE_EMAIL).equals(user.getEmail())) {
+      try {
+        user.setEmail(userAttributes.get(ATTRIBUTE_EMAIL));
+        OBDal.getInstance().save(user);
+        OBDal.getInstance().flush();
+      } catch (Exception e) {
+        log.error("Error trying to update email for user: " + user.getUsername(), e);
+      }
+    }
+
+    OBCriteria<OBSOIDUserIdentifier> oidCriteria = OBDal.getInstance().createCriteria(
+        OBSOIDUserIdentifier.class);
+    oidCriteria
+        .add(Restrictions.eq(OBSOIDUserIdentifier.PROPERTY_OPENIDIDENTIFIER, oid.toString()));
+    oidCriteria.add(Restrictions.eq(OBSOIDUserIdentifier.PROPERTY_USERCONTACT, user));
+
+    if (oidCriteria.count() > 0) {
+      log.warn("Account association already exists");
+      return;
+    }
+
+    OBSOIDUserIdentifier userIdentifier = OBProvider.getInstance().get(OBSOIDUserIdentifier.class);
+    userIdentifier.setUserContact(user);
+    userIdentifier.setOpenIDIdentifier(oid.toString());
+    userIdentifier.setClient(OBContext.getOBContext().getRole().getClient());
+    userIdentifier.setOrganization(OBContext.getOBContext().getRole().getOrganization());
+
+    OBDal.getInstance().save(userIdentifier);
+    OBDal.getInstance().flush();
+  }
+
+  public Identifier getIdentifier(HttpServletRequest httpReq) throws OBException {
+    try {
+      // extract the parameters from the authentication response
+      // (which comes in as a HTTP request from the OpenID provider)
+      ParameterList response = new ParameterList(httpReq.getParameterMap());
+
+      // retrieve the previously stored discovery information
+      DiscoveryInformation discovered = (DiscoveryInformation) httpReq.getSession().getAttribute(
+          "openid-disc");
+
+      // extract the receiving URL from the HTTP request
+      StringBuffer receivingURL = httpReq.getRequestURL();
+      String queryString = httpReq.getQueryString();
+      if (queryString != null && queryString.length() > 0)
+        receivingURL.append("?").append(httpReq.getQueryString());
+
+      // verify the response; ConsumerManager needs to be the same
+      // (static) instance used to place the authentication request
+      VerificationResult verification = manager.verify(receivingURL.toString(), response,
+          discovered);
+
+      // examine the verification result and extract the verified
+      // identifier
+      Identifier verified = verification.getVerifiedId();
+      if (verified != null) {
+        AuthSuccess authSuccess = (AuthSuccess) verification.getAuthResponse();
+
+        receiveAttributeExchange(httpReq, authSuccess);
+
+        return verified; // success
+      }
+    } catch (OpenIDException e) {
+      // present error to the user
+      throw new OBException(e);
+    }
+
+    return null;
+  }
+
+  @SuppressWarnings({ "unchecked" })
+  private void receiveAttributeExchange(HttpServletRequest httpReq, AuthSuccess authSuccess)
+      throws MessageException {
+    if (authSuccess.hasExtension(AxMessage.OPENID_NS_AX)) {
+      FetchResponse fetchResp = (FetchResponse) authSuccess.getExtension(AxMessage.OPENID_NS_AX);
+
+      // List emails = fetchResp.getAttributeValues("email");
+      // String email = (String) emails.get(0);
+
+      List aliases = fetchResp.getAttributeAliases();
+      Map attributes = new LinkedHashMap();
+      for (Iterator iter = aliases.iterator(); iter.hasNext();) {
+        String alias = (String) iter.next();
+        List values = fetchResp.getAttributeValues(alias);
+        if (values.size() > 0) {
+          String[] arr = new String[values.size()];
+          values.toArray(arr);
+          attributes.put(alias, StringUtils.join(arr));
+        }
+      }
+      httpReq.setAttribute("attributes", attributes);
+    }
+  }
+}