[jboss-cvs] jboss-seam/src/main/org/jboss/seam/security/acl ...
Shane Bryzak
Shane_Bryzak at symantec.com
Wed Nov 8 18:28:38 EST 2006
User: sbryzak2
Date: 06/11/08 18:28:38
Modified: src/main/org/jboss/seam/security/acl AclProvider.java
PersistentAclProvider.java
Added: src/main/org/jboss/seam/security/acl
DefaultIdentityGenerator.java
IdentityGenerator.java
Log:
moved security annotations to org.jboss.seam.annotations.security, other security changes
Revision Changes Path
1.3 +2 -0 jboss-seam/src/main/org/jboss/seam/security/acl/AclProvider.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: AclProvider.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/security/acl/AclProvider.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- AclProvider.java 19 Oct 2006 04:13:45 -0000 1.2
+++ AclProvider.java 8 Nov 2006 23:28:38 -0000 1.3
@@ -10,6 +10,8 @@
*/
public interface AclProvider
{
+ public enum RecipientType {role, user};
+
/**
* Return all Acls for the specified object.
*
1.4 +2 -22 jboss-seam/src/main/org/jboss/seam/security/acl/PersistentAclProvider.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: PersistentAclProvider.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/security/acl/PersistentAclProvider.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- PersistentAclProvider.java 8 Nov 2006 17:32:43 -0000 1.3
+++ PersistentAclProvider.java 8 Nov 2006 23:28:38 -0000 1.4
@@ -25,6 +25,7 @@
import org.jboss.seam.security.Authentication;
import org.jboss.seam.util.Naming;
import org.jboss.seam.util.Transactions;
+import org.jboss.seam.security.SeamSecurityManager;
/**
* Persistent Acl provider.
@@ -144,7 +145,7 @@
case managedPersistenceContext:
((Query) query).setParameter("recipient", principal.getName())
.setParameter("roles", roles)
- .setParameter("identity", getObjectIdentity(target));
+ .setParameter("identity", SeamSecurityManager.instance().getObjectIdentity(target));
break;
case managedHibernateSession:
/** @todo implement */
@@ -155,27 +156,6 @@
}
}
- protected Object getObjectIdentity(Object obj)
- {
- switch (persistenceType)
- {
- case managedPersistenceContext:
- try
- {
- return PersistenceProvider.instance().getId(obj,
- ( (ManagedPersistenceContext) pcm).getEntityManager());
- }
- catch (SystemException ex) { /** @todo */
- }
- catch (NamingException ex) { /** @todo */
- }
-
- /** @todo Implement hibernate and emf support */
- }
-
- return null;
- }
-
protected Object executeQuery(Object query)
{
switch (persistenceType)
1.1 date: 2006/11/08 23:28:38; author: sbryzak2; state: Exp;jboss-seam/src/main/org/jboss/seam/security/acl/DefaultIdentityGenerator.java
Index: DefaultIdentityGenerator.java
===================================================================
package org.jboss.seam.security.acl;
import java.io.Serializable;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
/**
*
*
* @author Shane Bryzak
*/
public class DefaultIdentityGenerator implements IdentityGenerator
{
private enum IdentityMethod {field, method};
private class IdentityMetadata {
IdentityMethod idMethod;
String name;
Field identityField;
Method identityMethod;
public Serializable getIdentityValue(Object obj)
{
switch (idMethod)
{
case field:
try
{
return (Serializable) identityField.get(obj);
}
catch (IllegalAccessException ex) { // shouldn't occur
}
case method:
default: throw new IllegalStateException("Invalid identifier type");
}
}
}
private Map<Class,IdentityMetadata> identityMeta = new HashMap<Class,IdentityMetadata>();
public String generateIdentity(Object obj)
{
IdentityMetadata meta = getIdentityMetadata(obj.getClass());
meta.identityField.setAccessible(true);
Object fieldVal = meta.getIdentityValue(obj);
return String.format("%s:%s", meta.name, fieldVal.toString());
}
private IdentityMetadata getIdentityMetadata(Class cls)
{
if (!identityMeta.containsKey(cls))
{
synchronized(identityMeta)
{
if (!identityMeta.containsKey(cls))
{
}
}
}
return identityMeta.get(cls);
}
}
1.1 date: 2006/11/08 23:28:38; author: sbryzak2; state: Exp;jboss-seam/src/main/org/jboss/seam/security/acl/IdentityGenerator.java
Index: IdentityGenerator.java
===================================================================
package org.jboss.seam.security.acl;
import java.io.Serializable;
/**
* Identity generator
*
* @author Shane Bryzak
*/
public interface IdentityGenerator
{
String generateIdentity(Object obj);
}
More information about the jboss-cvs-commits
mailing list