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;
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;
private UserAdmin userAdmin;
// private Map<String, String> serviceProperties;
- private UserTransaction userTransaction;
+ private WorkTransaction userTransaction;
private Map<UserDirectory, Hashtable<String, String>> userDirectories = Collections
.synchronizedMap(new LinkedHashMap<>());
return tokenStr;
} catch (Exception e1) {
try {
- if (userTransaction.getStatus() != Status.STATUS_NO_TRANSACTION)
+ if (!userTransaction.isNoTransactionStatus())
userTransaction.rollback();
} catch (Exception e2) {
if (log.isTraceEnabled())
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())
userTransaction.commit();
} catch (Exception e1) {
try {
- if (userTransaction.getStatus() != Status.STATUS_NO_TRANSACTION)
+ if (!userTransaction.isNoTransactionStatus())
userTransaction.rollback();
} catch (Exception e2) {
if (log.isTraceEnabled())
}
}
- 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<String, Object> 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<String, Object> 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) {
// this.serviceProperties = serviceProperties;
}
- public void setUserTransaction(UserTransaction userTransaction) {
+ public void setUserTransaction(WorkTransaction userTransaction) {
this.userTransaction = userTransaction;
}
-
+
public void addUserDirectory(UserDirectory userDirectory, Map<String, String> properties) {
userDirectories.put(userDirectory, new Hashtable<>(properties));
}