Author: shane.bryzak(a)jboss.com
Date: 2010-06-25 02:11:26 -0400 (Fri, 25 Jun 2010)
New Revision: 13305
Modified:
modules/security/trunk/examples/idmconsole/src/main/webapp/WEB-INF/templates/default.xhtml
modules/security/trunk/examples/idmconsole/src/main/webapp/home.xhtml
modules/security/trunk/impl/src/main/java/org/jboss/seam/security/management/JpaIdentityStore.java
Log:
add credential type criteria to validateCredential()
Modified:
modules/security/trunk/examples/idmconsole/src/main/webapp/WEB-INF/templates/default.xhtml
===================================================================
---
modules/security/trunk/examples/idmconsole/src/main/webapp/WEB-INF/templates/default.xhtml 2010-06-25
04:50:50 UTC (rev 13304)
+++
modules/security/trunk/examples/idmconsole/src/main/webapp/WEB-INF/templates/default.xhtml 2010-06-25
06:11:26 UTC (rev 13305)
@@ -11,41 +11,13 @@
<h:body>
<div id="container">
<div id="content">
- <div id="sidebar">
- <h3>Find out more</h3>
- <p>
- Explore JavaServer Faces.
- </p>
- <ul>
- <li><a href="http://www.javaserverfaces.org">JSF
community site</a></li>
- </ul>
- <p>
- Learn more about Java EE 6 and the extensions provided by Weld and
Seam.
- </p>
- <ul>
- <li><a
href="http://seamframework.org/Weld/JSR299AndWeldOverview">O...
- <li><a href="http://seamframework.org">Project
site</a></li>
- <li><a
href="http://seamframework.org/Documentation/SeamDocumentation#H-Wel...
- <li><a
href="http://seamframework.org/Community/Forums">User
forums</a></li>
- <li><a
href="http://seamframework.org/Community/MailingLists">Mailing
lists</a></li>
- <li><a
href="https://jira.jboss.org/jira/browse/WELD">Issue
tracker</a></li>
- </ul>
- <p>
- If you have an add-on, please <a
href="http://seamframework.org/Community/Forums">let us know</a> and
- consider <a
href="http://seamframework.org/Community/Contribute">contrib...
it back to the
- community!
- </p>
- </div>
+
<ui:insert name="content">
[Template content will be inserted here]
</ui:insert>
</div>
<div id="footer">
<h:graphicImage value="/resources/gfx/weld.png" alt="Weld
logo"/>
- <p>
- This project was generated from a Maven archetype maintained by the Weld
team.<br/>
- Weld is the reference implementation of CDI, released under the Apache
License, Version 2.0.<br/>
- </p>
</div>
</div>
</h:body>
Modified: modules/security/trunk/examples/idmconsole/src/main/webapp/home.xhtml
===================================================================
--- modules/security/trunk/examples/idmconsole/src/main/webapp/home.xhtml 2010-06-25
04:50:50 UTC (rev 13304)
+++ modules/security/trunk/examples/idmconsole/src/main/webapp/home.xhtml 2010-06-25
06:11:26 UTC (rev 13305)
@@ -6,7 +6,7 @@
template="/WEB-INF/templates/default.xhtml">
<ui:define name="content">
<h2>Identity Management Console</h2>
- <p>This example demonstrates Seam's identity management
features.</p>
+ <p>This example demonstrates Seam's identity management features, backed by
PicketLink IDM.</p>
<h:form id="loginForm" rendered="#{not
identity.loggedIn}">
<h:messages id="messages" globalOnly="true"/>
Modified:
modules/security/trunk/impl/src/main/java/org/jboss/seam/security/management/JpaIdentityStore.java
===================================================================
---
modules/security/trunk/impl/src/main/java/org/jboss/seam/security/management/JpaIdentityStore.java 2010-06-25
04:50:50 UTC (rev 13304)
+++
modules/security/trunk/impl/src/main/java/org/jboss/seam/security/management/JpaIdentityStore.java 2010-06-25
06:11:26 UTC (rev 13305)
@@ -1014,9 +1014,22 @@
criteria.where(predicates.toArray(new Predicate[0]));
- Query q = em.createQuery(criteria);
+ return em.createQuery(criteria).getSingleResult();
+ }
+
+ protected Object lookupCredentialType(String name, EntityManager em)
+ {
+ Property<?> credentialTypeNameProp =
modelProperties.get(PROPERTY_CREDENTIAL_TYPE_NAME);
- return q.getSingleResult();
+ CriteriaBuilder builder = em.getCriteriaBuilder();
+ CriteriaQuery<?> criteria =
builder.createQuery(credentialTypeNameProp.getDeclaringClass());
+ Root<?> root = criteria.from(credentialTypeNameProp.getDeclaringClass());
+
+ List<Predicate> predicates = new ArrayList<Predicate>();
+ predicates.add(builder.equal(root.get(credentialTypeNameProp.getName()), name));
+ criteria.where(predicates.toArray(new Predicate[0]));
+
+ return em.createQuery(criteria).getSingleResult();
}
protected Object lookupRelationshipType(IdentityObjectRelationshipType
relationshipType)
@@ -1279,6 +1292,7 @@
if (credentialClass != null)
{
Property<?> credentialIdentity =
modelProperties.get(PROPERTY_CREDENTIAL_IDENTITY);
+ Property<?> credentialType =
modelProperties.get(PROPERTY_CREDENTIAL_TYPE);
CriteriaBuilder builder = em.getCriteriaBuilder();
CriteriaQuery<?> criteria = builder.createQuery(credentialClass);
@@ -1288,6 +1302,20 @@
predicates.add(builder.equal(root.get(credentialIdentity.getName()),
lookupIdentity(identityObject, em)));
+ if (credentialType != null)
+ {
+ if (String.class.equals(credentialType.getJavaClass()))
+ {
+ predicates.add(builder.equal(root.get(credentialType.getName()),
+ credential.getType().getName()));
+ }
+ else
+ {
+ predicates.add(builder.equal(root.get(credentialType.getName()),
+ lookupCredentialType(credential.getType().getName(), em)));
+ }
+ }
+
criteria.where(predicates.toArray(new Predicate[0]));
Query q = em.createQuery(criteria);