X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Finternal%2Fauth%2FCmsUserManagerImpl.java;h=5485fc5ee112ad445995a18c61c6523e2ff7855e;hb=7064547ae5d85225546f1b8f15d6b5c82f30fe22;hp=e64a6ad931e59acae2a40bc23d93f01b4e2eb7fc;hpb=b4c4c47379e740b494a4a759df07c7b09a7649fa;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/internal/auth/CmsUserManagerImpl.java b/org.argeo.cms/src/org/argeo/cms/internal/auth/CmsUserManagerImpl.java index e64a6ad93..5485fc5ee 100644 --- a/org.argeo.cms/src/org/argeo/cms/internal/auth/CmsUserManagerImpl.java +++ b/org.argeo.cms/src/org/argeo/cms/internal/auth/CmsUserManagerImpl.java @@ -19,12 +19,9 @@ import java.util.Map; import java.util.Set; import java.util.UUID; -import javax.jcr.Node; import javax.naming.InvalidNameException; import javax.naming.ldap.LdapName; import javax.security.auth.Subject; -import javax.transaction.Status; -import javax.transaction.UserTransaction; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -32,10 +29,10 @@ import org.argeo.api.NodeConstants; import org.argeo.cms.CmsUserManager; import org.argeo.cms.auth.CurrentUser; import org.argeo.cms.auth.UserAdminUtils; -import org.argeo.jcr.JcrUtils; import org.argeo.naming.LdapAttrs; import org.argeo.naming.NamingUtils; import org.argeo.naming.SharedSecret; +import org.argeo.osgi.transaction.WorkTransaction; import org.argeo.osgi.useradmin.TokenUtils; import org.argeo.osgi.useradmin.UserAdminConf; import org.argeo.osgi.useradmin.UserDirectory; @@ -63,9 +60,9 @@ public class CmsUserManagerImpl implements CmsUserManager { private UserAdmin userAdmin; // private Map serviceProperties; - private UserTransaction userTransaction; + private WorkTransaction userTransaction; - private Map> userDirectories = Collections + private Map> userDirectories = Collections .synchronizedMap(new LinkedHashMap<>()); @Override @@ -353,7 +350,7 @@ public class CmsUserManagerImpl implements CmsUserManager { return tokenStr; } catch (Exception e1) { try { - if (userTransaction.getStatus() != Status.STATUS_NO_TRANSACTION) + if (!userTransaction.isNoTransactionStatus()) userTransaction.rollback(); } catch (Exception e2) { if (log.isTraceEnabled()) @@ -376,7 +373,7 @@ public class CmsUserManagerImpl implements CmsUserManager { log.debug("Token " + token + " expired."); } catch (Exception e1) { try { - if (userTransaction.getStatus() != Status.STATUS_NO_TRANSACTION) + if (!userTransaction.isNoTransactionStatus()) userTransaction.rollback(); } catch (Exception e2) { if (log.isTraceEnabled()) @@ -425,7 +422,7 @@ public class CmsUserManagerImpl implements CmsUserManager { userTransaction.commit(); } catch (Exception e1) { try { - if (userTransaction.getStatus() != Status.STATUS_NO_TRANSACTION) + if (!userTransaction.isNoTransactionStatus()) userTransaction.rollback(); } catch (Exception e2) { if (log.isTraceEnabled()) @@ -435,44 +432,44 @@ public class CmsUserManagerImpl implements CmsUserManager { } } - public User createUserFromPerson(Node person) { - String email = JcrUtils.get(person, LdapAttrs.mail.property()); - String dn = buildDefaultDN(email, Role.USER); - User user; - try { - userTransaction.begin(); - user = (User) userAdmin.createRole(dn, Role.USER); - Dictionary userProperties = user.getProperties(); - String name = JcrUtils.get(person, LdapAttrs.displayName.property()); - userProperties.put(LdapAttrs.cn.name(), name); - userProperties.put(LdapAttrs.displayName.name(), name); - String givenName = JcrUtils.get(person, LdapAttrs.givenName.property()); - String surname = JcrUtils.get(person, LdapAttrs.sn.property()); - userProperties.put(LdapAttrs.givenName.name(), givenName); - userProperties.put(LdapAttrs.sn.name(), surname); - userProperties.put(LdapAttrs.mail.name(), email.toLowerCase()); - userTransaction.commit(); - } catch (Exception e) { - try { - userTransaction.rollback(); - } catch (Exception e1) { - log.error("Could not roll back", e1); - } - if (e instanceof RuntimeException) - throw (RuntimeException) e; - else - throw new RuntimeException("Cannot create user", e); - } - return user; - } +// public User createUserFromPerson(Node person) { +// String email = JcrUtils.get(person, LdapAttrs.mail.property()); +// String dn = buildDefaultDN(email, Role.USER); +// User user; +// try { +// userTransaction.begin(); +// user = (User) userAdmin.createRole(dn, Role.USER); +// Dictionary userProperties = user.getProperties(); +// String name = JcrUtils.get(person, LdapAttrs.displayName.property()); +// userProperties.put(LdapAttrs.cn.name(), name); +// userProperties.put(LdapAttrs.displayName.name(), name); +// String givenName = JcrUtils.get(person, LdapAttrs.givenName.property()); +// String surname = JcrUtils.get(person, LdapAttrs.sn.property()); +// userProperties.put(LdapAttrs.givenName.name(), givenName); +// userProperties.put(LdapAttrs.sn.name(), surname); +// userProperties.put(LdapAttrs.mail.name(), email.toLowerCase()); +// userTransaction.commit(); +// } catch (Exception e) { +// try { +// userTransaction.rollback(); +// } catch (Exception e1) { +// log.error("Could not roll back", e1); +// } +// if (e instanceof RuntimeException) +// throw (RuntimeException) e; +// else +// throw new RuntimeException("Cannot create user", e); +// } +// return user; +// } public UserAdmin getUserAdmin() { return userAdmin; } - public UserTransaction getUserTransaction() { - return userTransaction; - } +// public UserTransaction getUserTransaction() { +// return userTransaction; +// } /* DEPENDENCY INJECTION */ public void setUserAdmin(UserAdmin userAdmin) { @@ -480,15 +477,15 @@ public class CmsUserManagerImpl implements CmsUserManager { // this.serviceProperties = serviceProperties; } - public void setUserTransaction(UserTransaction userTransaction) { + public void setUserTransaction(WorkTransaction userTransaction) { this.userTransaction = userTransaction; } - - public void addUserDirectory(UserDirectory userDirectory, Map properties) { + + public void addUserDirectory(UserDirectory userDirectory, Map properties) { userDirectories.put(userDirectory, new Hashtable<>(properties)); } - public void removeUserDirectory(UserDirectory userDirectory, Map properties) { + public void removeUserDirectory(UserDirectory userDirectory, Map properties) { userDirectories.remove(userDirectory); }