[jboss-svn-commits] JBL Code SVN: r18079 - in labs/jbosslabs/labs-3.0-build: core/core-api/src/main/java/org/jboss/labs/auth and 7 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Jan 24 12:34:40 EST 2008


Author: szimano
Date: 2008-01-24 12:34:40 -0500 (Thu, 24 Jan 2008)
New Revision: 18079

Added:
   labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/auth/RoleBinderService.java
   labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/auth/custom/
   labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/auth/custom/CustomIDProvider.java
   labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/auth/
   labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/auth/CustomID.java
   labs/jbosslabs/labs-3.0-build/services/authorization/src/main/java/org/jboss/labs/auth/impl/AuthenticationServiceImpl.java
   labs/jbosslabs/labs-3.0-build/services/authorization/uml/authorization.mm
Removed:
   labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/auth/RoleBinder.java
Modified:
   labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/ServiceHelper.java
   labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/injection/LabsGuiceModule.java
   labs/jbosslabs/labs-3.0-build/services/authorization/src/main/java/org/jboss/labs/auth/impl/RoleBinderImpl.java
   labs/jbosslabs/labs-3.0-build/services/authorization/uml/authorization_bindings.zuml
   labs/jbosslabs/labs-3.0-build/services/authorization/uml/authorization_bindings.zuml.bak.0
   labs/jbosslabs/labs-3.0-build/services/authorization/uml/authorization_bindings.zuml.bak.1
   labs/jbosslabs/labs-3.0-build/services/authorization/uml/authorization_bindings.zuml.bak.2
   labs/jbosslabs/labs-3.0-build/services/authorization/uml/authorization_bindings.zuml.bak.3
   labs/jbosslabs/labs-3.0-build/services/authorization/uml/authorization_bindings.zuml.bak.4
   labs/jbosslabs/labs-3.0-build/services/foo-service/src/main/java/org/jboss/labs/FooServiceImpl.java
Log:
authorization thoughts, some implementation JBLAB-901

Modified: labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/ServiceHelper.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/ServiceHelper.java	2008-01-24 17:20:08 UTC (rev 18078)
+++ labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/ServiceHelper.java	2008-01-24 17:34:40 UTC (rev 18079)
@@ -3,14 +3,14 @@
 import javax.naming.InitialContext;
 import javax.naming.NamingException;
 
-import org.jboss.labs.auth.RoleBinder;
+import org.jboss.labs.auth.RoleBinderService;
 import org.jboss.labs.exception.service.LabsServiceResolveException;
 
 public class ServiceHelper {
     
-    public static <E extends Enum<E>> RoleBinder<E> getRoleBinder() throws LabsServiceResolveException {
+    public static <E extends Enum<E>> RoleBinderService<E> getRoleBinder() throws LabsServiceResolveException {
 		try {
-			return (RoleBinder<E>) new InitialContext()
+			return (RoleBinderService<E>) new InitialContext()
 					.lookup("RoleBinderImpl/local");
 		} catch (NamingException e) {
 			throw new LabsServiceResolveException(e);

Deleted: labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/auth/RoleBinder.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/auth/RoleBinder.java	2008-01-24 17:20:08 UTC (rev 18078)
+++ labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/auth/RoleBinder.java	2008-01-24 17:34:40 UTC (rev 18079)
@@ -1,20 +0,0 @@
-package org.jboss.labs.auth;
-
-/**
- * Class that allows exposing role list for a service.
- * 
- * @author tomaszszymanski
- * 
- */
-public interface RoleBinder<E extends Enum<E>> {
-	/**
-	 * @param <E>
-	 * @param serviceRoleList
-	 * @param serviceId
-	 */
-	public void exposeServiceRoles(E[] serviceRoleList, String serviceId);
-	
-	public void bindRolesWithProject();
-	
-	public void bindRolesWithId();
-}

Copied: labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/auth/RoleBinderService.java (from rev 18077, labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/auth/RoleBinder.java)
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/auth/RoleBinderService.java	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/auth/RoleBinderService.java	2008-01-24 17:34:40 UTC (rev 18079)
@@ -0,0 +1,24 @@
+package org.jboss.labs.auth;
+
+import org.jboss.labs.auth.custom.CustomIDProvider;
+
+/**
+ * Class that allows exposing role list for a service.
+ * 
+ * @author tomaszszymanski
+ * 
+ */
+public interface RoleBinderService<E extends Enum<E>> {
+	/**
+	 * @param <E>
+	 * @param serviceRoleList
+	 * @param serviceId
+	 */
+	public void exposeServiceRoles(E[] serviceRoleList, String serviceId);
+	
+	public void registerCustomIDProvider(CustomIDProvider provider, String serviceId);
+	
+	public void bindRolesWithProject();
+	
+	public void bindRolesWithId();
+}

Added: labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/auth/custom/CustomIDProvider.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/auth/custom/CustomIDProvider.java	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/auth/custom/CustomIDProvider.java	2008-01-24 17:34:40 UTC (rev 18079)
@@ -0,0 +1,18 @@
+package org.jboss.labs.auth.custom;
+
+import java.util.Set;
+
+import org.jboss.labs.core.model.auth.CustomID;
+
+/**
+ * Base for providing custom IDs from a service
+ * 
+ * @author tomaszszymanski
+ * 
+ */
+public interface CustomIDProvider {
+	/**
+	 * @return Returns set of customIDs available in this project
+	 */
+	public Set<CustomID> getCustomIDs();
+}

Modified: labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/injection/LabsGuiceModule.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/injection/LabsGuiceModule.java	2008-01-24 17:20:08 UTC (rev 18078)
+++ labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/injection/LabsGuiceModule.java	2008-01-24 17:34:40 UTC (rev 18079)
@@ -1,17 +1,20 @@
 package org.jboss.labs.injection;
 
-import org.jboss.labs.auth.RoleBinder;
+import org.jboss.labs.auth.AuthenticationService;
+import org.jboss.labs.auth.RoleBinderService;
 import org.jboss.labs.foo.FooService;
 import org.jboss.labs.injection.JNDIProvider;
 
 import com.google.inject.Binder;
 import com.google.inject.Module;
+import com.google.inject.TypeLiteral;
 
 public class LabsGuiceModule implements Module {
 
 	public void configure(Binder binder) {
 		binder.bind(FooService.class).toProvider(new JNDIProvider<FooService>("FooServiceImpl/local"));
-		binder.bind(RoleBinder.class).toProvider(new JNDIProvider<RoleBinder>("RoleBinderImpl/local"));
+		binder.bind(new TypeLiteral<RoleBinderService<?>>(){}).toProvider( new JNDIProvider<RoleBinderService<?>>("RoleBinderImpl/local"));
+		binder.bind(AuthenticationService.class).toProvider(new JNDIProvider<AuthenticationService>("AuthenticationServiceImpl/local"));
 	}
 
 }

Added: labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/auth/CustomID.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/auth/CustomID.java	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/auth/CustomID.java	2008-01-24 17:34:40 UTC (rev 18079)
@@ -0,0 +1,37 @@
+package org.jboss.labs.core.model.auth;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+
+/**
+ * CustomID - special custom ID used for dealing with non-project level
+ * authentication bindings. compareTo method sorts by description
+ * 
+ * @author tomaszszymanski
+ * 
+ */
+
+ at Entity
+public class CustomID implements Comparable<CustomID> {
+	@Id
+	private String customID;
+
+	private String description;
+
+	public CustomID(String customID, String description) {
+		this.customID = customID;
+		this.description = description;
+	}
+
+	public String getCustomID() {
+		return customID;
+	}
+
+	public String getDescription() {
+		return description;
+	}
+
+	public int compareTo(CustomID o) {
+		return this.description.compareTo(o.getDescription());
+	}
+}

Added: labs/jbosslabs/labs-3.0-build/services/authorization/src/main/java/org/jboss/labs/auth/impl/AuthenticationServiceImpl.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/services/authorization/src/main/java/org/jboss/labs/auth/impl/AuthenticationServiceImpl.java	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/services/authorization/src/main/java/org/jboss/labs/auth/impl/AuthenticationServiceImpl.java	2008-01-24 17:34:40 UTC (rev 18079)
@@ -0,0 +1,24 @@
+package org.jboss.labs.auth.impl;
+
+import java.security.Principal;
+
+import javax.ejb.Local;
+import javax.ejb.Stateless;
+
+import org.jboss.labs.auth.AuthenticationService;
+
+ at Local
+ at Stateless
+public class AuthenticationServiceImpl<E extends Enum<E>> implements AuthenticationService<E> {
+
+	public boolean isAllowed(Principal user, E serverRole, String serviceId) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	public boolean isAllowed(Principal user, String customId, String serviceId) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+}

Modified: labs/jbosslabs/labs-3.0-build/services/authorization/src/main/java/org/jboss/labs/auth/impl/RoleBinderImpl.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/services/authorization/src/main/java/org/jboss/labs/auth/impl/RoleBinderImpl.java	2008-01-24 17:20:08 UTC (rev 18078)
+++ labs/jbosslabs/labs-3.0-build/services/authorization/src/main/java/org/jboss/labs/auth/impl/RoleBinderImpl.java	2008-01-24 17:34:40 UTC (rev 18079)
@@ -5,7 +5,8 @@
 import javax.interceptor.Interceptors;
 
 import org.apache.log4j.Logger;
-import org.jboss.labs.auth.RoleBinder;
+import org.jboss.labs.auth.RoleBinderService;
+import org.jboss.labs.auth.custom.CustomIDProvider;
 import org.jboss.labs.foo.FooService;
 import org.jboss.labs.injection.ejb3.LabsInjectionInterceptor;
 
@@ -13,7 +14,7 @@
 
 @Stateless
 @Local
-public class RoleBinderImpl<E extends Enum<E>> implements RoleBinder<E> {
+public class RoleBinderImpl<E extends Enum<E>> implements RoleBinderService<E> {
 	
 	private final static Logger log = Logger.getLogger(RoleBinderImpl.class);
 
@@ -35,4 +36,10 @@
 		
 	}
 
+	public void registerCustomIDProvider(CustomIDProvider provider,
+			String serviceId) {
+		// TODO Auto-generated method stub
+		
+	}
+
 }

Added: labs/jbosslabs/labs-3.0-build/services/authorization/uml/authorization.mm
===================================================================
--- labs/jbosslabs/labs-3.0-build/services/authorization/uml/authorization.mm	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/services/authorization/uml/authorization.mm	2008-01-24 17:34:40 UTC (rev 18079)
@@ -0,0 +1,35 @@
+<map version="0.9.0_Beta_8">
+<!-- To view this file, download free mind mapping software FreeMind from http://freemind.sourceforge.net -->
+<node CREATED="1201194502906" ID="Freemind_Link_927704152" MODIFIED="1201194550523" TEXT="Authorization">
+<node CREATED="1201194550998" ID="Freemind_Link_1644965610" MODIFIED="1201194556328" POSITION="right" TEXT="Project level">
+<node CREATED="1201195237069" ID="Freemind_Link_928836397" MODIFIED="1201195335561" TEXT="service roles exposed on service start"/>
+</node>
+<node CREATED="1201194556757" ID="Freemind_Link_1597355732" MODIFIED="1201194560945" POSITION="right" TEXT="Custom level">
+<node CREATED="1201195357086" ID="Freemind_Link_1914468490" MODIFIED="1201195364657" TEXT="customIDProvider">
+<node CREATED="1201195365149" ID="Freemind_Link_693508252" MODIFIED="1201195369931" TEXT="registered on service start"/>
+<node CREATED="1201195370549" ID="Freemind_Link_1244462612" MODIFIED="1201195380656" TEXT="gets set of all available custom Ids"/>
+</node>
+<node CREATED="1201195382677" ID="Freemind_Link_1529672012" MODIFIED="1201195388698" TEXT="customId instead of projectId">
+<node CREATED="1201195388685" ID="Freemind_Link_234022053" MODIFIED="1201195412033" TEXT="bindings are done to service roles and customId">
+<node CREATED="1201195419133" ID="Freemind_Link_673569206" MODIFIED="1201195424033" TEXT="forum id"/>
+<node CREATED="1201195424437" ID="Freemind_Link_1871824469" MODIFIED="1201195441169" TEXT="feed id"/>
+<node CREATED="1201195444269" ID="Freemind_Link_1708965213" MODIFIED="1201195445417" TEXT="etc."/>
+</node>
+</node>
+</node>
+<node CREATED="1201195240573" ID="Freemind_Link_1668206180" MODIFIED="1201195244073" POSITION="left" TEXT="Service Roles">
+<node CREATED="1201195244517" ID="Freemind_Link_971135351" MODIFIED="1201195251640" TEXT="Bound to &quot;normal&quot; roles"/>
+<node CREATED="1201195253221" ID="Freemind_Link_878413967" MODIFIED="1201195262201" TEXT="bound to implementation">
+<node CREATED="1201195262637" ID="Freemind_Link_1330188945" MODIFIED="1201195268353" TEXT="subset of things a role can do"/>
+</node>
+</node>
+<node CREATED="1201195456373" ID="Freemind_Link_1544000971" MODIFIED="1201195460153" POSITION="left" TEXT="authorization view">
+<node CREATED="1201195460869" ID="Freemind_Link_827188826" MODIFIED="1201195471177" TEXT="project level">
+<node CREATED="1201195476677" ID="Freemind_Link_996650474" MODIFIED="1201195486905" TEXT="bindings of project-level roles"/>
+</node>
+<node CREATED="1201195471725" ID="Freemind_Link_820557718" MODIFIED="1201195475641" TEXT="global level">
+<node CREATED="1201195488165" ID="Freemind_Link_521359401" MODIFIED="1201195491897" TEXT="all bindings"/>
+</node>
+</node>
+</node>
+</map>

Modified: labs/jbosslabs/labs-3.0-build/services/authorization/uml/authorization_bindings.zuml
===================================================================
(Binary files differ)

Modified: labs/jbosslabs/labs-3.0-build/services/authorization/uml/authorization_bindings.zuml.bak.0
===================================================================
(Binary files differ)

Modified: labs/jbosslabs/labs-3.0-build/services/authorization/uml/authorization_bindings.zuml.bak.1
===================================================================
(Binary files differ)

Modified: labs/jbosslabs/labs-3.0-build/services/authorization/uml/authorization_bindings.zuml.bak.2
===================================================================
(Binary files differ)

Modified: labs/jbosslabs/labs-3.0-build/services/authorization/uml/authorization_bindings.zuml.bak.3
===================================================================
(Binary files differ)

Modified: labs/jbosslabs/labs-3.0-build/services/authorization/uml/authorization_bindings.zuml.bak.4
===================================================================
(Binary files differ)

Modified: labs/jbosslabs/labs-3.0-build/services/foo-service/src/main/java/org/jboss/labs/FooServiceImpl.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/services/foo-service/src/main/java/org/jboss/labs/FooServiceImpl.java	2008-01-24 17:20:08 UTC (rev 18078)
+++ labs/jbosslabs/labs-3.0-build/services/foo-service/src/main/java/org/jboss/labs/FooServiceImpl.java	2008-01-24 17:34:40 UTC (rev 18079)
@@ -9,11 +9,13 @@
 import javax.persistence.PersistenceContext;
 
 import org.apache.log4j.Logger;
-import org.jboss.labs.auth.RoleBinder;
+import org.jboss.labs.auth.RoleBinderService;
 import org.jboss.labs.foo.FooEntity;
 import org.jboss.labs.foo.FooService;
 import org.jboss.labs.injection.ejb3.LabsInjectionInterceptor;
 
+import com.google.inject.Inject;
+
 @Stateless
 @Local
 @Interceptors({LabsInjectionInterceptor.class})
@@ -23,13 +25,17 @@
 	private EntityManager em;
 	
 	@EJB
-	private RoleBinder<FooRoleList> roleBinder;
+	private RoleBinderService<FooRoleList> roleBinder;
 	
+	/*@Inject
+	private RoleBinder<FooRoleList> roleBinderInject;*/
+	
 	private final static Logger log = Logger.getLogger(FooServiceImpl.class);
 	
 	@PostConstruct
 	public void contructor() {
 		roleBinder.exposeServiceRoles(FooRoleList.values(), FooServiceImpl.class.getName());
+		//log.info(roleBinderInject);
 	}
 	
 	public FooEntity sayFoo() {




More information about the jboss-svn-commits mailing list