[Design of JBoss Portal] - Re: UserProfileModule LDAP implementation
by julien@jboss.com
An example of profile metadata configuration for a database :
| ...
| <attribute>
| <attribute-name>user.name.given</attribute-name>
| <type>java.lang.String</type>
| <access-mode>read-only</access-mode>
| <usage>mandatory</usage>
| <display-name xml:lang="EN">User name</display-name>
| <description xml:lang="EN">The user name</description>
| <mapping>
| <column>
| <column-name>USER_NAME</column-name>
| </column>
| </mapping>
| </attribute>
| <attribute>
| <attribute-name>user.name.nickName</attribute-name>
| <type>java.lang.String</type>
| <access-mode>read-write</access-mode>
| <usage>optional</usage>
| <display-name xml:lang="EN">Nick name</display-name>
| <description xml:lang="EN">The nick name</description>
| <mapping>
| <column>
| <column-name>NICK_NAME</column-name>
| </column>
| </mapping>
| </attribute>
| ...
|
For an LDAP store, the mapping would contain LDAP configuration mapping information.
And that information is used by the ProfileModule implementation to perform the mapping. It is also available at runtime in a read only manner so that the different tools we have can leverage them to display the information in an appropriate manner based usually on type / usage / access mode. Tools can be UserPortlet, etc...
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3987170#3987170
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3987170
19 years, 4 months
[Design of JBoss Portal] - Re: UserProfileModule LDAP implementation
by julien@jboss.com
- yes only id and user name (the key used to search the user in the module).
- from the portal perspective no fields should be mandatory. But that should be configurable from the metadata mapping. For example, someone is doing a portal that requires the email to be always provided then it should be described in the profile metadata.
- "theme" is a fake/wrong (i.e hack) profile information. Normally it should not be stored in the user profile but rather in a personalization repository that the portal would manage.
- bottom line, the UserModule should never persist profile information (because it's the role of the ProfileModule). UserModule responsibility is to provide authentication only.
- probably that we can have 2 profiles modules, one that maps on the identity store which contains enterprise informations. One that stores info in the database and stores portal related informations (like the favorite theme). We should explore that way in a separate thread.
- I don't like the UserProfileModule.isMapped, it is just a short cut for a complete metadata API, one should rather do smth like :
| profile.getInfo().getAttributeInfo("blah");
|
we can spend some time designing the metadata API.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3987167#3987167
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3987167
19 years, 4 months
[Design of JBoss Portal] - Re: UserProfileModule LDAP implementation
by bdaw
anonymous wrote : I'll comment more later, but at first sight, property access should be removed from the User interface and should only appear in a profile interface provided by the profile module.
Do you mean that User has only getter methods for 'id' and 'userName'? I was thinking about what fields are MUST to have from portal perspective. Like.... should user have email or 'enabled' field? But 'theme' is also required for props so maybe it's better to stay only with 'id' and 'userName' and some others MUST be mapped as persistable in UserProfileModule
anonymous wrote :
| Now about what can be set or not, that should be exposed by the profile metadata layer. If a non existant property is set and cannot because the underlying model does not offer the capability then an exception should be raide.
I was thinking about 'second level DB presistence' approach to enable storing anything, but this sounds ok. The problem remains that some props are must to have and are not easy to persist as LDAP attribute (theme, last login date....) - using default schema.
This would end with LDAP impl that:
- stores specified props as attributes in LDAP
- stores specified props in DB (in table separate from current portal schema)
- doesn't store props not specified above.
- some props are mandatory to be mapped at least at DB level
DB implementation uses current schema.
For the API we could just add UserProfileModule.isMapped(String) method.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3987162#3987162
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3987162
19 years, 4 months
[Design of JBoss Collaboration Server] - having a hard time deploying sa SIMPLE message driven bean
by gongoozler
everytime i try to deploy my ear file with my ejb jar inside, i get this error:
23:45:01,520 INFO [EARDeployer] Init J2EE application: file:/C:/Program Files/jboss-4.0.4.GA/server/default/deploy/DIM-SAIF.ear
23:45:09,372 INFO [EjbModule] Deploying SAIFResponse
23:45:11,194 WARN [JMSContainerInvoker] JMS provider failure detected for SAIFResponse
java.lang.ClassCastException: org.jboss.mq.SpyQueue
at org.jboss.ejb.plugins.jms.DLQHandler.createService(DLQHandler.java:192)
at org.jboss.system.ServiceMBeanSupport.jbossInternalCreate(ServiceMBeanSupport.java:260)
at org.jboss.system.ServiceMBeanSupport.create(ServiceMBeanSupport.java:188)
at org.jboss.ejb.plugins.jms.JMSContainerInvoker.innerStartDelivery(JMSContainerInvoker.java:510)
at org.jboss.ejb.plugins.jms.JMSContainerInvoker.startService(JMSContainerInvoker.java:839)
at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
at $Proxy0.start(Unknown Source)
at org.jboss.system.ServiceController.start(ServiceController.java:417)
at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.system.ServiceMBeanSupport.start(ServiceMBeanSupport.java:194)
at org.jboss.ejb.MessageDrivenContainer.startService(MessageDrivenContainer.java:272)
at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
at $Proxy0.start(Unknown Source)
at org.jboss.system.ServiceController.start(ServiceController.java:417)
at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
at $Proxy77.start(Unknown Source)
at org.jboss.ejb.EjbModule.startService(EjbModule.java:410)
at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
at $Proxy0.start(Unknown Source)
at org.jboss.system.ServiceController.start(ServiceController.java:417)
at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
at $Proxy41.start(Unknown Source)
at org.jboss.ejb.EJBDeployer.start(EJBDeployer.java:662)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
at org.jboss.mx.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:97)
at org.jboss.system.InterceptorServiceMBeanSupport.invokeNext(InterceptorServiceMBeanSupport.java:238)
at org.jboss.ws.server.WebServiceDeployer.start(WebServiceDeployer.java:117)
at org.jboss.deployment.SubDeployerInterceptorSupport$XMBeanInterceptor.start(SubDeployerInterceptorSupport.java:188)
at org.jboss.deployment.SubDeployerInterceptor.invoke(SubDeployerInterceptor.java:95)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
at $Proxy42.start(Unknown Source)
at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1007)
at org.jboss.deployment.MainDeployer.start(MainDeployer.java:997)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:808)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:771)
at sun.reflect.GeneratedMethodAccessor11.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
at $Proxy6.deploy(Unknown Source)
at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:421)
at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:634)
at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:263)
at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.loop(AbstractDeploymentScanner.java:274)
at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.run(AbstractDeploymentScanner.java:225)
23:45:11,214 INFO [EJBDeployer] Deployed: file:/C:/Program Files/jboss-4.0.4.GA/server/default/tmp/deploy/tmp21275DIM-SAIF.ear-contents/saif-response-ejb.jar
23:45:11,214 INFO [JMSContainerInvoker] Waiting for reconnect internal 10000ms for SAIFResponse
23:45:11,455 INFO [EARDeployer] Started J2EE application: file:/C:/Program Files/jboss-4.0.4.GA/server/default/deploy/DIM-SAIF.ear
23:45:21,219 INFO [JMSContainerInvoker] Trying to reconnect to JMS provider for SAIFResponse
23:45:21,249 ERROR [JMSContainerInvoker] Reconnect failed: JMS provider failure detected for SAIFResponse
java.lang.ClassCastException: org.jboss.mq.SpyQueue
at org.jboss.ejb.plugins.jms.DLQHandler.createService(DLQHandler.java:192)
at org.jboss.system.ServiceMBeanSupport.jbossInternalCreate(ServiceMBeanSupport.java:260)
at org.jboss.system.ServiceMBeanSupport.create(ServiceMBeanSupport.java:188)
at org.jboss.ejb.plugins.jms.JMSContainerInvoker.innerStartDelivery(JMSContainerInvoker.java:510)
at org.jboss.ejb.plugins.jms.JMSContainerInvoker$ExceptionListenerImpl$ExceptionListenerRunnable.run(JMSContainerInvoker.java:1419)
at java.lang.Thread.run(Thread.java:595)
23:45:21,289 INFO [JMSContainerInvoker] Waiting for reconnect internal 10000ms for SAIFResponse
23:45:31,293 INFO [JMSContainerInvoker] Trying to reconnect to JMS provider for SAIFResponse
23:45:31,303 ERROR [JMSContainerInvoker] Reconnect failed: JMS provider failure detected for SAIFResponse
java.lang.ClassCastException: org.jboss.mq.SpyQueue
at org.jboss.ejb.plugins.jms.DLQHandler.createService(DLQHandler.java:192)
at org.jboss.system.ServiceMBeanSupport.jbossInternalCreate(ServiceMBeanSupport.java:260)
at org.jboss.system.ServiceMBeanSupport.create(ServiceMBeanSupport.java:188)
at org.jboss.ejb.plugins.jms.JMSContainerInvoker.innerStartDelivery(JMSContainerInvoker.java:510)
at org.jboss.ejb.plugins.jms.JMSContainerInvoker$ExceptionListenerImpl$ExceptionListenerRunnable.run(JMSContainerInvoker.java:1419)
at java.lang.Thread.run(Thread.java:595)
23:45:31,313 INFO [JMSContainerInvoker] Waiting for reconnect internal 10000ms for SAIFResponse
23:45:41,317 INFO [JMSContainerInvoker] Trying to reconnect to JMS provider for SAIFResponse
23:45:41,408 ERROR [JMSContainerInvoker] Reconnect failed: JMS provider failure detected for SAIFResponse
java.lang.ClassCastException: org.jboss.mq.SpyQueue
at org.jboss.ejb.plugins.jms.DLQHandler.createService(DLQHandler.java:192)
at org.jboss.system.ServiceMBeanSupport.jbossInternalCreate(ServiceMBeanSupport.java:260)
at org.jboss.system.ServiceMBeanSupport.create(ServiceMBeanSupport.java:188)
at org.jboss.ejb.plugins.jms.JMSContainerInvoker.innerStartDelivery(JMSContainerInvoker.java:510)
at org.jboss.ejb.plugins.jms.JMSContainerInvoker$ExceptionListenerImpl$ExceptionListenerRunnable.run(JMSContainerInvoker.java:1419)
at java.lang.Thread.run(Thread.java:595)
23:45:41,608 INFO [JMSContainerInvoker] Waiting for reconnect internal 10000ms for SAIFResponse
23:45:51,602 INFO [JMSContainerInvoker] Trying to reconnect to JMS provider for SAIFResponse
23:45:51,632 ERROR [JMSContainerInvoker] Reconnect failed: JMS provider failure detected for SAIFResponse
java.lang.ClassCastException: org.jboss.mq.SpyQueue
at org.jboss.ejb.plugins.jms.DLQHandler.createService(DLQHandler.java:192)
at org.jboss.system.ServiceMBeanSupport.jbossInternalCreate(ServiceMBeanSupport.java:260)
at org.jboss.system.ServiceMBeanSupport.create(ServiceMBeanSupport.java:188)
at org.jboss.ejb.plugins.jms.JMSContainerInvoker.innerStartDelivery(JMSContainerInvoker.java:510)
at org.jboss.ejb.plugins.jms.JMSContainerInvoker$ExceptionListenerImpl$ExceptionListenerRunnable.run(JMSContainerInvoker.java:1419)
at java.lang.Thread.run(Thread.java:595)
help please, i'm somewhat of a newbie :(
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3987154#3987154
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3987154
19 years, 4 months