use of org.eclipse.ecf.core.security.ObjectCallback in project ecf by eclipse.
the class HttpClientFileSystemBrowser method getFileRequestCredentials.
/**
* Retrieves the credentials for requesting the file.
* @return the {@link Credentials} necessary to retrieve the file
* @throws UnsupportedCallbackException if the callback fails
* @throws IOException if IO fails
* @since 5.0
*/
protected Credentials getFileRequestCredentials() throws UnsupportedCallbackException, IOException {
if (connectContext == null)
return null;
final CallbackHandler callbackHandler = connectContext.getCallbackHandler();
if (callbackHandler == null)
return null;
final NameCallback usernameCallback = new NameCallback(USERNAME_PREFIX);
final ObjectCallback passwordCallback = new ObjectCallback();
callbackHandler.handle(new Callback[] { usernameCallback, passwordCallback });
username = usernameCallback.getName();
password = (String) passwordCallback.getObject();
return new UsernamePasswordCredentials(username, password);
}
use of org.eclipse.ecf.core.security.ObjectCallback in project ecf by eclipse.
the class HttpClientRetrieveFileTransfer method getFileRequestCredentials.
/**
* @return Credentials file request credentials
* @throws UnsupportedCallbackException if some problem
* @throws IOException if some problem
* @since 5.0
*/
protected Credentials getFileRequestCredentials() throws UnsupportedCallbackException, IOException {
if (connectContext == null)
return null;
final CallbackHandler callbackHandler = connectContext.getCallbackHandler();
if (callbackHandler == null)
return null;
final NameCallback usernameCallback = new NameCallback(USERNAME_PREFIX);
final ObjectCallback passwordCallback = new ObjectCallback();
callbackHandler.handle(new Callback[] { usernameCallback, passwordCallback });
username = usernameCallback.getName();
password = (String) passwordCallback.getObject();
return new UsernamePasswordCredentials(username, password);
}
use of org.eclipse.ecf.core.security.ObjectCallback in project ecf by eclipse.
the class XMPPContainer method createAuthorizationCallbacks.
protected Callback[] createAuthorizationCallbacks() {
final Callback[] cbs = new Callback[1];
cbs[0] = new ObjectCallback();
return cbs;
}
use of org.eclipse.ecf.core.security.ObjectCallback in project ecf by eclipse.
the class AbstractBBContainer method getCredentialsFromConnectContext.
protected IBBCredentials getCredentialsFromConnectContext(IConnectContext connectContext) throws ContainerConnectException {
try {
if (connectContext == null) {
return null;
}
Callback[] callbacks = new Callback[2];
callbacks[0] = new NameCallback("Username");
callbacks[1] = new ObjectCallback();
CallbackHandler handler = connectContext.getCallbackHandler();
if (handler != null) {
handler.handle(callbacks);
}
NameCallback nc = (NameCallback) callbacks[0];
ObjectCallback cb = (ObjectCallback) callbacks[1];
return new Credentials(nc.getName(), (String) cb.getObject());
} catch (Exception e) {
throw new ContainerConnectException("Exception in CallbackHandler.handle(<callbacks>)", e);
}
}
use of org.eclipse.ecf.core.security.ObjectCallback in project ecf by eclipse.
the class MSNContainer method connect.
public void connect(ID targetID, IConnectContext connectContext) throws ContainerConnectException {
if (!(targetID instanceof MSNID)) {
throw new ContainerConnectException(Messages.MSNContainer_TargetIDNotMSNID);
}
client = new MsnClient();
ObjectCallback[] cb = { new ObjectCallback() };
try {
connectContext.getCallbackHandler().handle(cb);
client.addSessionListener(new ISessionListener() {
public void sessionConnected(ChatSession session) {
try {
Contact contact = session.getParticipants()[0];
final ID toID = namespace.createInstance(new Object[] { contact.getEmail() });
chatSessions.put(toID, session);
session.addChatSessionListener(new ChatSessionListener(toID));
} catch (IDCreateException e) {
// ignored since this should not be possible
}
}
});
client.getContactList().addContactListListener(new IContactListListener() {
public void contactAdded(Contact contact) {
final MSNRosterEntry entry = new MSNRosterEntry(MSNContainer.this, contact, namespace);
for (int i = 0; i < entries.size(); i++) {
Object e = entries.get(i);
if (e instanceof MSNRosterGroup) {
MSNRosterGroup group = (MSNRosterGroup) e;
if (group.getGroup().contains(contact)) {
MSNRosterEntry check = group.getEntryFor(contact);
if (check == null) {
check = entry;
contact.addContactListener(new IContactListener() {
public void nameChanged(String name) {
firePresence(entry.getID(), entry.getPresence());
fireRosterUpdate(entry);
}
public void personalMessageChanged(String personalMessage) {
entry.updatePersonalMessage();
firePresence(entry.getID(), entry.getPresence());
fireRosterUpdate(entry);
}
public void statusChanged(Status status) {
firePresence(entry.getID(), entry.getPresence());
fireRosterUpdate(entry);
}
});
group.add(check);
fireRosterEntryAdded(check);
}
fireRosterUpdate(group);
return;
}
} else {
MSNRosterEntry check = (MSNRosterEntry) e;
if (entry.getContact().equals(check.getContact())) {
fireRosterEntryAdded(check);
fireRosterUpdate(check.getParent());
return;
}
}
}
contact.addContactListener(new IContactListener() {
public void nameChanged(String name) {
firePresence(entry.getID(), entry.getPresence());
fireRosterUpdate(entry);
}
public void personalMessageChanged(String personalMessage) {
entry.updatePersonalMessage();
firePresence(entry.getID(), entry.getPresence());
fireRosterUpdate(entry);
}
public void statusChanged(Status status) {
firePresence(entry.getID(), entry.getPresence());
fireRosterUpdate(entry);
}
});
entries.add(entry);
entry.setParent(MSNContainer.this);
fireRosterEntryAdded(entry);
fireRosterUpdate(MSNContainer.this);
}
public void contactRemoved(Contact contact) {
MSNRosterEntry entry = findEntry(entries, contact.getEmail());
if (entry != null) {
fireHandleUnsubscribed(entry.getUser().getID());
fireRosterEntryRemoved(entry);
fireRosterUpdate(entry.getParent());
if (entry.getContact().getGroups().isEmpty()) {
entry.setParent(MSNContainer.this);
fireRosterUpdate(MSNContainer.this);
}
}
}
public void contactAddedUser(String email) {
try {
fireHandleSubscriptionRequest(namespace.createInstance(new Object[] { email }));
} catch (IDCreateException e) {
// ignored
}
}
public void contactRemovedUser(String email) {
// nothing to do
}
public void groupAdded(Group group) {
entries.add(new MSNRosterGroup(MSNContainer.this, group));
}
});
fireContainerEvent(new ContainerConnectingEvent(guid, targetID));
client.connect(targetID.getName(), (String) cb[0].getObject());
connectID = (MSNID) targetID;
fireContainerEvent(new ContainerConnectedEvent(guid, connectID));
Activator.getDefault().registerService(this);
} catch (UnsupportedCallbackException e) {
throw new ContainerConnectException(e);
} catch (IOException e) {
throw new ContainerConnectException(e);
}
}
Aggregations