[jboss-dev-forums] [JBoss AS 7 Development] - Re: remote ejb client username is encrypted at the server(JBOSS7.1 CR1)

Ganesh Saithala do-not-reply at jboss.com
Fri Feb 24 05:39:40 EST 2012


Ganesh Saithala [https://community.jboss.org/people/ganeshment] created the discussion

"Re: remote ejb client username is encrypted at the server(JBOSS7.1 CR1)"

To view the discussion, visit: https://community.jboss.org/message/719410#719410

--------------------------------------------------------------
Thanks Daren for helping to fix this issue.

Iam posting below working EJB client API based test program.

package demo;

import java.io.IOException;
import java.net.URI;
import java.security.Security;
import java.util.concurrent.TimeUnit;
import javax.naming.NamingException;
import javax.security.auth.login.LoginException;
import org.jboss.ejb.client.ContextSelector;
import org.jboss.ejb.client.EJBClient;
import org.jboss.ejb.client.EJBClientContext;
import org.jboss.ejb.client.EJBClientTransactionContext;
import org.jboss.ejb.client.StatelessEJBLocator;
import org.jboss.ejb.client.remoting.IoFutureHelper;
import org.jboss.remoting3.Connection;
import org.jboss.remoting3.Endpoint;
import org.jboss.remoting3.Remoting;
import org.jboss.remoting3.remote.RemoteConnectionProviderFactory;
import org.jboss.sasl.JBossSaslProvider;
import org.xnio.IoFuture;
import org.xnio.OptionMap;
import org.xnio.Options;

public class RemoteEJBClient {
    
    /**
     * User login name
     */
    private static final String USER_LOGIN_NAME = "admin";
    /**
     * User password
     */
    private static final String USER_PASSWORD = "admin";
    
    private static Connection connection;
    private static EJBClientContext ejbClientContext;
    private static Endpoint endpoint;

    static {
        Security.addProvider(new JBossSaslProvider());
    }

    public static void main(String[] args) throws Exception {

        endpoint = Remoting.createEndpoint("ejb-remote-client-endpoint", OptionMap.EMPTY);
        endpoint.addConnectionProvider("remote", new RemoteConnectionProviderFactory(),
                                       OptionMap.create(Options.SSL_ENABLED, Boolean.FALSE, Options.SASL_SERVER_AUTH,
                                                        Boolean.FALSE));
        
        MyCallbackHandler callbackhndlr = new MyCallbackHandler(USER_LOGIN_NAME, USER_PASSWORD);
         // open a connection
        final IoFuture<Connection> futureConnection = endpoint.connect(new URI("remote://localhost:" + "4447"),
                                                                       OptionMap.create(Options.SASL_POLICY_NOPLAINTEXT,
                                                                                        Boolean.FALSE), callbackhndlr);
        connection = IoFutureHelper.get(futureConnection, 5, TimeUnit.SECONDS);
        ejbClientContext = EJBClientContext.create();
        ejbClientContext.registerConnection(connection);
        @SuppressWarnings("unused")
        final ContextSelector<EJBClientContext> previousSelector = EJBClientContext.setConstantContext(ejbClientContext);
        // setting up something for transactions
        final EJBClientTransactionContext localUserTxContext = EJBClientTransactionContext.createLocal();
        EJBClientTransactionContext.setGlobalContext(localUserTxContext);
        
        invokeStatelessBean();

        if (connection != null) {
            try {
                connection.close();
            } catch (IOException ioe) {
                System.out.println("Failed to close connection" + ioe);
            }
        }
        if (endpoint != null) {
            try {
                endpoint.close();
            } catch (IOException ioe) {
                System.out.println("Failed to close endpoint" + ioe);
            }
        }
    }
    private static void invokeStatelessBean() throws NamingException, LoginException {
        final SessionBeanInterface statelessSessionBeanInterface = lookupRemoteStatelessCalculator();
        System.out.println("Obtained a remote stateless SessionBeanInterface for invocation");
        try {
            System.out.println("EJB principal " + statelessSessionBeanInterface.getPrincipal());
        } catch (RuntimeException e) {
            e.printStackTrace();
        }
    }

    private static SessionBeanInterface lookupRemoteStatelessCalculator() throws NamingException, LoginException {
        final String appName = "TestEAR";
        final String moduleName = "TestEJB";
        final String distinctName = "";
        final String beanName = "SessionBean";
        final String viewClassName = SessionBeanInterface.class.getName();
        System.out.println("ejb:" + appName + "/" + moduleName + "/" + distinctName + "/" + beanName + "!" + viewClassName);
        // create a locator depending on the type you are calling: StatelessEJBLocator, EntityEJBLocator, StatefulEJBLocator &
        // create the proxy given the locator
        final StatelessEJBLocator<SessionBeanInterface> locator = new StatelessEJBLocator<SessionBeanInterface>(
                                                                                                                SessionBeanInterface.class,
                                                                                                                appName,
                                                                                                                moduleName,
                                                                                                                beanName,
                                                                                                                distinctName);
        SessionBeanInterface bean = EJBClient.createProxy(locator);
        return bean;
    }
}


--------------------------------------------------------------

Reply to this message by going to Community
[https://community.jboss.org/message/719410#719410]

Start a new discussion in JBoss AS 7 Development at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2225]

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jboss-dev-forums/attachments/20120224/3806e456/attachment.html 


More information about the jboss-dev-forums mailing list