[Beginners Corner] - Re: Licensing concerns with on-selling JBoss
by PeterJ
If I understand correctly, you want to market an application server and change money for it, similar to the relationship between PostgreSQL and Enterprise DB. I think that section 2 of the LGPL is apropos:
anonymous wrote : Section 2
|
| You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:
|
| ...
|
| c. You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License.
Compare that to the situation where you develop an app that runs on JBoss AS and you package JBoss AS as part of your app. Then section 5 is of importance:
anonymous wrote : Section 5
|
| A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4233947#4233947
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4233947
16 years, 11 months
[EJB/JBoss] - Re: Serializable no remote classloading
by enriqueam
Hello there,
I'm running JBoss 4.2.3 GA default server (no mods) and have a EJB 2.1 bean deployed in it. Have created a stand-alone remote client to access the bean.
The client tries to do exactly the same as discussed in this post, that is, it only depends the jar file containing the bean interfaces (plus jbossall-client.jar of course), and it expects to be able to dynamically load the implementation classes from the server.
This worked on jboss 4.0.4. However, to get it working on 4.2.3 I had to add
| <invoker-bindings>
| <invoker>
| <invoker-proxy-binding-name>stateless-rmi-invoker</invoker-proxy-binding-name>
| <jndi-name>DummySessionBean</jndi-name>
| </invoker>
| </invoker-bindings>
|
to jboss.xml
If I don't, I have no problem at all accessing the home interface, nor at executing any methods from it, but as soon as the client has to load one of the implementation classes from the server it throws a ClassNotFoundException
| java.lang.reflect.UndeclaredThrowableException
| at $Proxy1.makeKnife(Unknown Source)
| at com.sysmech.ijamclient.IjamClient.execute(IjamClient.java:75)
| at com.sysmech.ijamclient.Main.main(Main.java:59)
| Caused by: java.lang.ClassNotFoundException: com.dummy.KnifeImpl
| at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
| at java.security.AccessController.doPrivileged(Native Method)
| at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
| at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
| at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
| at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
| at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
| at java.lang.Class.forName0(Native Method)
| at java.lang.Class.forName(Class.java:242)
| at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:585)
| at org.jboss.invocation.MarshalledValueInputStream.resolveClass(MarshalledValueInputStream.java:109)
| at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1544)
| at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1466)
| at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1699)
| at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
| at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
| at org.jboss.invocation.MarshalledValue.get(MarshalledValue.java:91)
| at org.jboss.invocation.unified.interfaces.UnifiedInvokerProxy.invoke(UnifiedInvokerProxy.java:196)
| at org.jboss.invocation.InvokerInterceptor.invokeInvoker(InvokerInterceptor.java:365)
| at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:197)
| at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:61)
| at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:70)
| at org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke(StatelessSessionInterceptor.java:112)
| at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:100)
|
The bean method the client is trying to execute looks like:
| public Knife makeKnife()
| {
| return new KnifeImpl();
| }
|
Being Knife the interface that is available to both the server and the client, and KnifeImpl the implementation class only available to the server.
In post dated on the Sat Jan 12, 2008 12:12 PM by newtetris, it was confirmed the problem described in this post did not show for EJB 2. Could anyone explain how to achieve that without having to change the invoker in jboss.xml?
Cheers,
Enrique.
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4233934#4233934
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4233934
16 years, 11 months
[JBoss jBPM] - Automatic assignment of initiator in start-state task not wo
by akpraha
I'm using jBPM 3.3.1.GA embedded in another app, and can't seem to get the initiator of the process to be automatically assigned to the swimlane associated with a task in my start-state. The documentation seems to suggest that all I have to do is set up a swimlane with no assignment, and add a task with that swimlane to the start-state. My process def. looks like this:
| <process-definition xmlns="urn:jbpm.org:jpdl-3.2" name="ChangeManagement">
|
| <swimlane name="zadavatel"/>
|
| <start-state name="Start">
| <task name="start task" swimlane="zadavatel"/>
| <transition to="Registration"></transition>
| </start-state>
| ....
|
|
In my code, I'm setting the actorId for the context prior to starting the process instance, but it never gets set in the swimlane 'zadavatel'. I put a breakpoint on DefaultAuthenticationService.getActorId() to make sure it was never being called, and when the process is created, no swimlane instance for 'zadavatel' is ever created - verified in the database as well.
| context.setActorId(username);
| ProcessInstance instance =
| context.newProcessInstance(processDefinition.getLabel());
| instance.signal();
| context.save(instance);
|
I've got a workaround specific for our application, but I'd really rather have this working.
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4233931#4233931
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4233931
16 years, 11 months
[Security & JAAS/JBoss] - SAML token propagation
by danjava2000
Hi all,
I am wondering how the SAML token is propagated between domains.
When I log in the first server, I see clearly in the console that the SAML token has been generated and that it has been put on the trust server.
Now, if I am trying to log on the second server, I see that the SSOTokenManager is looking for SAML token in the request or in a cookie. Since it is at neither place, the application is showing login page (which I don't want for sure).
What I am doing wrong here? Do I need to add a specific parameter in the request ?
Notice in the following code fragments that I implemented my own LoginProvider and LoginModule. But neither one is invoked when I hit for the first time the second server.
I am using JBoss Federated SSO 1.0 CR1 on JBoss AS 4.0.2 with the following settings:
On both servers I have the following setup:
My SSO server config:
| <jboss-sso>
| <identity-management>
| <login>
| <provider id="si:intertrade:jboss-sso:database:login" class="com.intertrade.common.sso.DatabaseLoginProvider">
| <property name = "hashAlgorithm">SHA1</property>
| <property name = "hashEncoding">base64</property>
| <property name = "unauthenticatedIdentity">guest</property>
| <property name = "dsJndiName">java:/topcatDB</property>
| <property name = "principalsQuery">select user_password from USERS where USER_NAME = ?</property>
| <property name = "rolesQuery">select name, 'Roles' from roles a, users b, users_roles c where b.user_name = ? and c.user_id = b.user_id and a.role_id = c.role_id</property>
| </provider>
| </login>
| </identity-management>
|
|
| <!-- sso processor for SingleSignOn, the default JBossSingleSignOn processor uses OpenSAML-1.0,
| the next version of this processor will use the latest SAML specification
| -->
| <sso-processor>
| <processor class="org.jboss.security.saml.JBossSingleSignOn">
| <property name="trustServer">https://scarlet.montreal.intertrade.com:8443/federate/trust</property>
| </processor>
| </sso-processor>
| </jboss-sso>
|
My JAAS login config:
| <application-policy name = "topcat">
| <authentication>
| <login-module code="com.intertrade.common.sso.DatabaseLoginModule" flag = "required">
| <module-option name = "password-stacking">useFirstPass</module-option>
| <module-option name = "hashAlgorithm">SHA1</module-option>
| <module-option name = "hashEncoding">base64</module-option>
| <module-option name = "unauthenticatedIdentity">guest</module-option>
| <module-option name = "dsJndiName">java:/topcatDB</module-option>
| <module-option name = "principalsQuery">select user_password from USERS where USER_NAME = ?</module-option>
| <module-option name = "rolesQuery">select name, 'Roles' from roles a, users b, users_roles c where b.user_name = ? and c.user_id = b.user_id and a.role_id = c.role_id</module-option>
| <module-option name = "provider">si:intertrade:jboss-sso:database:login</module-option>
| </login-module>
| </authentication>
| </application-policy>
Federated server setting:<jboss-sso>
| <federation-server>
| <partners>
| <partner domain="intertrade.com" server="https://scarlet.montreal.intertrade.com:8443/federate"/>
| <partner domain="tradelinks.net" server="https://localhost.tradelinks.net:8443/federate"/>
| </partners>
| </federation-server>
| </jboss-sso>
|
On server 1 (scarlet.montreal.intertrade.com), I have the following tomcat valve settings:
| <?xml version="1.0"?>
| <Context>
| <!--Valve className="org.jboss.security.valve.SSOFederationRouter" /-->
|
| <!--
| logoutURL - URL for performing logout/signout function in your application
| -->
| <Valve className="org.jboss.security.valve.SSOAutoLogout" logoutURL="/login/logout.jsp"/>
|
| <!--
| assertingParty - this is the partnerId of this application as a part of a federation of multiple partner sites
| -->
| <Valve className="org.jboss.security.valve.SSOTokenManager" assertingParty="https://scarlet.montreal.intertrade.com:8443/federate"/>
|
| <!--
| tomcat built-in AuthenticationTypes: FORM,BASIC,DIGEST,CLIENT-CERT
| -->
| <Valve className="org.jboss.security.valve.SSOAutoLogin" authType="FORM" provider="si:intertrade:jboss-sso:database:login"/>
| </Context>
|
On server 2 (localhost.tradelinks.net), I have the following tomcat valve settings:
| <?xml version="1.0"?>
| <Context>
| <!--Valve className="org.jboss.security.valve.SSOFederationRouter" /-->
|
| <!--
| logoutURL - URL for performing logout/signout function in your application
| -->
| <Valve className="org.jboss.security.valve.SSOAutoLogout" logoutURL="/login/logout.jsp"/>
|
| <!--
| assertingParty - this is the partnerId of this application as a part of a federation of multiple partner sites
| -->
| <Valve className="org.jboss.security.valve.SSOTokenManager" assertingParty="https://localhost.tradelinks.net:8443/federate"/>
|
| <!--
| tomcat built-in AuthenticationTypes: FORM,BASIC,DIGEST,CLIENT-CERT
| -->
| <Valve className="org.jboss.security.valve.SSOAutoLogin" authType="FORM" provider="si:intertrade:jboss-sso:database:login"/>
| </Context>
|
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4233930#4233930
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4233930
16 years, 11 months