[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 "normal" 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