[jboss-user] [JBoss Messaging] - createTopicConnection - username, password

Hugo Boss do-not-reply at jboss.com
Thu May 16 10:28:52 EDT 2013


Hugo Boss [https://community.jboss.org/people/adfasdfasdfhjasdfhasddfhasdfaj] created the discussion

"createTopicConnection - username, password"

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

--------------------------------------------------------------
Hello,

i'm using JMS to distribute messages. All worked fine (subscribing, receiving) but when i receive a message and i call a service-method i got an AuthenticationException because i'm logged in as anonymous (all services are secured).

Ok, so i need to login myself... i think there are two possibilities... just do a login before i call the service out of the onMessage-method or to create the topicConnection with username and password. But both failed... 

The programm always says something like unable to validate user: <username>. Here the exception:
2013-05-16 15:12:42,699 ERROR  [org.hornetq.core.protocol.core.impl.HornetQPacketHandler] Failed to create session : HornetQException[errorCode=105 message=Unable to validate user: backoffice]
    at org.hornetq.core.security.impl.SecurityStoreImpl.authenticate(SecurityStoreImpl.java:147)
    at org.hornetq.core.server.impl.HornetQServerImpl.createSession(HornetQServerImpl.java:858)
    at org.hornetq.core.protocol.core.impl.HornetQPacketHandler.handleCreateSession(HornetQPacketHandler.java:187)
    at org.hornetq.core.protocol.core.impl.HornetQPacketHandler.handlePacket(HornetQPacketHandler.java:85)
    at org.hornetq.core.protocol.core.impl.ChannelImpl.handlePacket(ChannelImpl.java:508)
    at org.hornetq.core.protocol.core.impl.RemotingConnectionImpl.doBufferReceived(RemotingConnectionImpl.java:556)
    at org.hornetq.core.protocol.core.impl.RemotingConnectionImpl.bufferReceived(RemotingConnectionImpl.java:517)
    at org.hornetq.core.remoting.server.impl.RemotingServiceImpl$DelegatingBufferHandler.bufferReceived(RemotingServiceImpl.java:534)
    at org.hornetq.core.remoting.impl.invm.InVMConnection$1.run(InVMConnection.java:169)
    at org.hornetq.utils.OrderedExecutorFactory$OrderedExecutor$1.run(OrderedExecutorFactory.java:100)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)

I don't know where jBoss is looking for the user, because the user exists (in the database) and the remote login from the clients works with this user.

Here the source of the creating of the connection to jms:

public void start(InitialContext iniCtx) throws NamingException, JMSException {
        Object tmp = iniCtx.lookup("ConnectionFactory");
        TopicConnectionFactory tcf = (TopicConnectionFactory) tmp;
        tConn = tcf.createTopicConnection(USERNAME, PASSWORD);
        //tConn = tcf.createTopicConnection();
        tConn.setClientID(this.getClass().getName());
        topic = (Topic) iniCtx.lookup(getTopicName());

        tSession = tConn.createTopicSession(false, TopicSession.AUTO_ACKNOWLEDGE);
        // subscriber = tSession.createDurableSubscriber(topic, getSubscriptionName(), getJMSTypeString(), false);
        subscriber = tSession.createSubscriber(topic, getJMSTypeString(), true);
        subscriber.setMessageListener(this);
        tConn.start();
}

Here the login variant, but doesn't work either:

protected void login() throws LoginException {
        LoginContext loginContext = new LoginContext("backofficexyz", new MyLoginCallBackHandler());
        loginContext.login();
    }

private class BemaLoginCallBackHandler implements CallbackHandler {

    @Override
    public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
        for (int i = 0; i < callbacks.length; i++) {
            if (callbacks[i] instanceof TextOutputCallback) {
                TextOutputCallback toc = (TextOutputCallback) callbacks[i];
                switch (toc.getMessageType()) {
                case TextOutputCallback.INFORMATION:
                    logger.info(toc.getMessage());
                    break;
                case TextOutputCallback.ERROR:
                    logger.error(toc.getMessage());
                    break;
                case TextOutputCallback.WARNING:
                    logger.warn(toc.getMessage());
                    break;
                default:
                    throw new IOException("Unsupported message type: " + toc.getMessageType());
                }
            } else if (callbacks[i] instanceof NameCallback) {
                NameCallback nc = (NameCallback) callbacks[i];
                nc.setName(USERNAME);
            } else if (callbacks[i] instanceof PasswordCallback) {
                PasswordCallback pc = (PasswordCallback) callbacks[i];
                pc.setPassword(PASSWORD.toCharArray());
            } else {
                throw new UnsupportedCallbackException(callbacks[i], "Unrecognized Callback");
            }
        }
    }
}

Anybody an idea? JBoss Version is jBoss 7.1.4
--------------------------------------------------------------

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

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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jboss-user/attachments/20130516/0b57f819/attachment-0001.html 


More information about the jboss-user mailing list