Author: shane.bryzak(a)jboss.com
Date: 2010-07-20 03:48:58 -0400 (Tue, 20 Jul 2010)
New Revision: 13446
Modified:
modules/security/trunk/impl/src/main/java/org/jboss/seam/security/management/picketlink/JpaIdentityStore.java
Log:
fix removeIdentityObject() for identities with credentials and relationships
Modified:
modules/security/trunk/impl/src/main/java/org/jboss/seam/security/management/picketlink/JpaIdentityStore.java
===================================================================
---
modules/security/trunk/impl/src/main/java/org/jboss/seam/security/management/picketlink/JpaIdentityStore.java 2010-07-20
05:47:48 UTC (rev 13445)
+++
modules/security/trunk/impl/src/main/java/org/jboss/seam/security/management/picketlink/JpaIdentityStore.java 2010-07-20
07:48:58 UTC (rev 13446)
@@ -1408,6 +1408,7 @@
EntityManager em = getEntityManager(ctx);
CriteriaBuilder builder = em.getCriteriaBuilder();
+
CriteriaQuery<?> criteria = builder.createQuery(identityClass);
Root<?> root = criteria.from(identityClass);
@@ -1422,6 +1423,27 @@
try
{
Object instance = em.createQuery(criteria).getSingleResult();
+
+ // If there is a credential class, delete any credentials
+ if (credentialClass != null)
+ {
+ Property<?> credentialIdentityProp =
modelProperties.get(PROPERTY_CREDENTIAL_IDENTITY);
+
+ criteria = builder.createQuery(credentialClass);
+ root = criteria.from(credentialClass);
+
+ predicates = new ArrayList<Predicate>();
+ predicates.add(builder.equal(root.get(credentialIdentityProp.getName()),
+ lookupIdentity(identity, em)));
+ criteria.where(predicates.toArray(new Predicate[0]));
+
+ List<?> results = em.createQuery(criteria).getResultList();
+ for (Object result : results)
+ {
+ em.remove(result);
+ }
+ }
+
em.remove(instance);
}
catch (NoResultException ex)
@@ -1700,8 +1722,11 @@
IdentityObject identityObject, IdentityObjectCredential credential)
throws IdentityException
{
+
+
// TODO Auto-generated method stub
System.out.println("*** Invoked unimplemented method
updateCredential()");
+
}
public boolean validateCredential(IdentityStoreInvocationContext ctx,
Show replies by date