Search in sources :

Example 6 with CallbackHandler

use of org.eclipse.ecf.core.security.CallbackHandler in project ecf by eclipse.

the class URLFileSystemBrowser method setupAuthentication.

protected void setupAuthentication() throws IOException, UnsupportedCallbackException {
    if (connectContext == null)
        return;
    final CallbackHandler callbackHandler = connectContext.getCallbackHandler();
    if (callbackHandler == null)
        return;
    final NameCallback usernameCallback = new NameCallback(USERNAME_PREFIX);
    final ObjectCallback passwordCallback = new ObjectCallback();
    // Call callback with username and password callbacks
    callbackHandler.handle(new Callback[] { usernameCallback, passwordCallback });
    username = usernameCallback.getName();
    Object o = passwordCallback.getObject();
    if (!(o instanceof String))
        throw new UnsupportedCallbackException(passwordCallback, Messages.UrlConnectionRetrieveFileTransfer_UnsupportedCallbackException);
    password = (String) passwordCallback.getObject();
    // Now set authenticator to our authenticator with user and password
    Authenticator.setDefault(new UrlConnectionAuthenticator());
}
Also used : CallbackHandler(org.eclipse.ecf.core.security.CallbackHandler) NameCallback(org.eclipse.ecf.core.security.NameCallback) ObjectCallback(org.eclipse.ecf.core.security.ObjectCallback) UnsupportedCallbackException(org.eclipse.ecf.core.security.UnsupportedCallbackException)

Example 7 with CallbackHandler

use of org.eclipse.ecf.core.security.CallbackHandler in project ecf by eclipse.

the class XMPPChatRoomContainer method connect.

public void connect(ID remote, IConnectContext connectContext) throws ContainerConnectException {
    if (!(remote instanceof XMPPRoomID)) {
        throw new ContainerConnectException(NLS.bind(Messages.XMPPChatRoomContainer_Exception_Connect_Wrong_Type, remote));
    }
    final XMPPRoomID roomID = (XMPPRoomID) remote;
    fireContainerEvent(new ContainerConnectingEvent(this.getID(), remote, connectContext));
    synchronized (getConnectLock()) {
        try {
            connectionState = CONNECTING;
            remoteServerID = null;
            addSharedObjectToContainer(remote);
            multiuserchat = new MultiUserChat(getXMPPConnection(), roomID.getMucString());
            // Get nickname from join context
            String nick = null;
            try {
                final Callback[] callbacks = new Callback[1];
                callbacks[0] = new NameCallback(Messages.XMPPChatRoomContainer_NAME_CALLBACK_NICK, roomID.getNickname());
                if (connectContext != null) {
                    final CallbackHandler handler = connectContext.getCallbackHandler();
                    if (handler != null) {
                        handler.handle(callbacks);
                    }
                }
                if (callbacks[0] instanceof NameCallback) {
                    final NameCallback cb = (NameCallback) callbacks[0];
                    nick = cb.getName();
                }
            } catch (final Exception e) {
                throw new ContainerConnectException(Messages.XMPPChatRoomContainer_EXCEPTION_CALLBACKHANDLER, e);
            }
            String nickname = null;
            if (// $NON-NLS-1$
            nick == null || nick.equals(""))
                nickname = roomID.getNickname();
            else
                nickname = nick;
            multiuserchat.addSubjectUpdatedListener(new SubjectUpdatedListener() {

                public void subjectUpdated(String subject, String from) {
                    fireSubjectUpdated(subject, from);
                }
            });
            multiuserchat.addMessageListener(new PacketListener() {

                public void processPacket(Packet arg0) {
                    handleXMPPMessage(arg0);
                }
            });
            multiuserchat.addParticipantListener(new PacketListener() {

                public void processPacket(Packet arg0) {
                    handleXMPPMessage(arg0);
                }
            });
            multiuserchat.addParticipantStatusListener(new ParticipantStatusListener() {

                public void joined(String arg0) {
                    handleChatMembershipEvent(arg0, true);
                }

                public void left(String arg0) {
                    handleChatMembershipEvent(arg0, false);
                }

                public void voiceGranted(String arg0) {
                    // TODO Auto-generated method stub
                    // $NON-NLS-1$ //$NON-NLS-2$
                    System.out.println("voiceGranted(" + arg0 + ")");
                }

                public void voiceRevoked(String arg0) {
                    // TODO Auto-generated method stub
                    // $NON-NLS-1$ //$NON-NLS-2$
                    System.out.println("voiceRevoked(" + arg0 + ")");
                }

                public void membershipGranted(String arg0) {
                    // TODO Auto-generated method stub
                    System.out.println(// $NON-NLS-1$
                    "membershipGranted(" + arg0 + // $NON-NLS-1$
                    ")");
                }

                public void membershipRevoked(String arg0) {
                    // TODO Auto-generated method stub
                    System.out.println(// $NON-NLS-1$
                    "membershipRevoked(" + arg0 + // $NON-NLS-1$
                    ")");
                }

                public void moderatorGranted(String arg0) {
                    // TODO Auto-generated method stub
                    System.out.println(// $NON-NLS-1$
                    "moderatorGranted(" + arg0 + // $NON-NLS-1$
                    ")");
                }

                public void moderatorRevoked(String arg0) {
                    // TODO Auto-generated method stub
                    System.out.println(// $NON-NLS-1$
                    "moderatorRevoked(" + arg0 + // $NON-NLS-1$
                    ")");
                }

                public void ownershipGranted(String arg0) {
                    // TODO Auto-generated method stub
                    System.out.println(// $NON-NLS-1$
                    "ownershipGranted(" + arg0 + // $NON-NLS-1$
                    ")");
                }

                public void ownershipRevoked(String arg0) {
                    // TODO Auto-generated method stub
                    System.out.println(// $NON-NLS-1$
                    "ownershipRevoked(" + arg0 + // $NON-NLS-1$
                    ")");
                }

                public void adminGranted(String arg0) {
                    // TODO Auto-generated method stub
                    // $NON-NLS-1$ //$NON-NLS-2$
                    System.out.println("adminGranted(" + arg0 + ")");
                }

                public void adminRevoked(String arg0) {
                    // TODO Auto-generated method stub
                    // $NON-NLS-1$ //$NON-NLS-2$
                    System.out.println("adminRevoked(" + arg0 + ")");
                }

                public void kicked(String arg0, String arg1, String arg2) {
                    // TODO Auto-generated method stub
                    System.out.println(// $NON-NLS-1$ //$NON-NLS-2$
                    "kicked(" + arg0 + "," + arg1 + "," + arg2 + // $NON-NLS-1$ //$NON-NLS-2$
                    ")");
                }

                public void banned(String arg0, String arg1, String arg2) {
                    // TODO Auto-generated method stub
                    System.out.println(// $NON-NLS-1$ //$NON-NLS-2$
                    "banned(" + arg0 + "," + arg1 + "," + arg2 + // $NON-NLS-1$ //$NON-NLS-2$
                    ")");
                }

                public void nicknameChanged(String arg0, String arg1) {
                    // TODO Auto-generated method stub
                    System.out.println(// $NON-NLS-1$
                    "nicknameChanged(" + arg0 + "," + arg1 + // $NON-NLS-1$ //$NON-NLS-2$
                    ")");
                }
            });
            multiuserchat.addInvitationRejectionListener(new InvitationRejectionListener() {

                public void invitationDeclined(String arg0, String arg1) {
                    // TODO Auto-generated method stub
                    System.out.println(// $NON-NLS-1$
                    "invitationDeclined(" + arg0 + "," + arg1 + // $NON-NLS-1$ //$NON-NLS-2$
                    ")");
                }
            });
            multiuserchat.join(nickname);
            connectionState = CONNECTED;
            remoteServerID = roomID;
            containerHelper.setRoomID(remoteServerID);
            fireContainerEvent(new ContainerConnectedEvent(this.getID(), roomID));
        } catch (final Exception e) {
            cleanUpConnectFail();
            final ContainerConnectException ce = new ContainerConnectException(NLS.bind(Messages.XMPPChatRoomContainer_EXCEPTION_JOINING_ROOM, roomID));
            ce.setStackTrace(e.getStackTrace());
            throw ce;
        }
    }
}
Also used : ParticipantStatusListener(org.jivesoftware.smackx.muc.ParticipantStatusListener) Packet(org.jivesoftware.smack.packet.Packet) MultiUserChat(org.jivesoftware.smackx.muc.MultiUserChat) CallbackHandler(org.eclipse.ecf.core.security.CallbackHandler) ContainerConnectedEvent(org.eclipse.ecf.core.events.ContainerConnectedEvent) XMPPRoomID(org.eclipse.ecf.provider.xmpp.identity.XMPPRoomID) SubjectUpdatedListener(org.jivesoftware.smackx.muc.SubjectUpdatedListener) PacketListener(org.jivesoftware.smack.PacketListener) ECFException(org.eclipse.ecf.core.util.ECFException) ConnectionCreateException(org.eclipse.ecf.provider.comm.ConnectionCreateException) XMPPException(org.jivesoftware.smack.XMPPException) IDCreateException(org.eclipse.ecf.core.identity.IDCreateException) IOException(java.io.IOException) ContainerConnectException(org.eclipse.ecf.core.ContainerConnectException) SharedObjectAddException(org.eclipse.ecf.core.sharedobject.SharedObjectAddException) InvitationRejectionListener(org.jivesoftware.smackx.muc.InvitationRejectionListener) Callback(org.eclipse.ecf.core.security.Callback) NameCallback(org.eclipse.ecf.core.security.NameCallback) NameCallback(org.eclipse.ecf.core.security.NameCallback) ContainerConnectException(org.eclipse.ecf.core.ContainerConnectException) ContainerConnectingEvent(org.eclipse.ecf.core.events.ContainerConnectingEvent)

Example 8 with CallbackHandler

use of org.eclipse.ecf.core.security.CallbackHandler in project ecf by eclipse.

the class XMPPSContainer method createConnection.

protected ISynchAsynchConnection createConnection(ID remoteSpace, Object data) throws ConnectionCreateException {
    boolean google = isGoogle(remoteSpace);
    CallbackHandler ch = data instanceof IConnectContext ? ((IConnectContext) data).getCallbackHandler() : null;
    return new ECFConnection(google, getConnectNamespace(), receiver, ch);
}
Also used : IConnectContext(org.eclipse.ecf.core.security.IConnectContext) CallbackHandler(org.eclipse.ecf.core.security.CallbackHandler) ECFConnection(org.eclipse.ecf.internal.provider.xmpp.smack.ECFConnection)

Aggregations

CallbackHandler (org.eclipse.ecf.core.security.CallbackHandler)8 NameCallback (org.eclipse.ecf.core.security.NameCallback)6 ObjectCallback (org.eclipse.ecf.core.security.ObjectCallback)5 ContainerConnectException (org.eclipse.ecf.core.ContainerConnectException)3 UsernamePasswordCredentials (org.apache.http.auth.UsernamePasswordCredentials)2 Callback (org.eclipse.ecf.core.security.Callback)2 UnsupportedCallbackException (org.eclipse.ecf.core.security.UnsupportedCallbackException)2 ECFException (org.eclipse.ecf.core.util.ECFException)2 XMPPException (org.jivesoftware.smack.XMPPException)2 IOException (java.io.IOException)1 BBException (org.eclipse.ecf.bulletinboard.BBException)1 IBBCredentials (org.eclipse.ecf.bulletinboard.IBBCredentials)1 ContainerConnectedEvent (org.eclipse.ecf.core.events.ContainerConnectedEvent)1 ContainerConnectingEvent (org.eclipse.ecf.core.events.ContainerConnectingEvent)1 IDCreateException (org.eclipse.ecf.core.identity.IDCreateException)1 IConnectContext (org.eclipse.ecf.core.security.IConnectContext)1 SharedObjectAddException (org.eclipse.ecf.core.sharedobject.SharedObjectAddException)1 ECFConnection (org.eclipse.ecf.internal.provider.xmpp.smack.ECFConnection)1 ConnectionCreateException (org.eclipse.ecf.provider.comm.ConnectionCreateException)1 XMPPID (org.eclipse.ecf.provider.xmpp.identity.XMPPID)1