Search in sources :

Example 11 with XMPPServer

use of org.jivesoftware.openfire.XMPPServer in project Openfire by igniterealtime.

the class UserManagerTest method setUp.

@Before
public void setUp() throws Exception {
    Fixtures.clearExistingProperties();
    // Ensure the cache's are cleared
    CacheFactory.createCache("User").clear();
    CacheFactory.createCache("Remote Users Existence").clear();
    // Use the stub user provider, and a very short timeout
    JiveGlobals.setProperty("provider.user.className", Fixtures.StubUserProvider.class.getName());
    JiveGlobals.setProperty("usermanager.remote-disco-info-timeout-seconds", "0");
    final XMPPServer xmppServer = Fixtures.mockXMPPServer();
    iqRouter = xmppServer.getIQRouter();
    userManager = new UserManager(xmppServer);
    userManager.createUser(USER_ID, "change me", "Test User Name", "test-email@example.com");
    userManager.createUser(USER_ID_2, "change me", "Test User Name 2", "test-email-2@example.com");
    XMPPServer.setInstance(xmppServer);
}
Also used : XMPPServer(org.jivesoftware.openfire.XMPPServer) Before(org.junit.Before)

Example 12 with XMPPServer

use of org.jivesoftware.openfire.XMPPServer in project Openfire by igniterealtime.

the class UpdateManager method getServerUpdateRequest.

private String getServerUpdateRequest() {
    XMPPServer server = XMPPServer.getInstance();
    Element xmlRequest = docFactory.createDocument().addElement("version");
    // Add current openfire version
    Element openfire = xmlRequest.addElement("openfire");
    openfire.addAttribute("current", server.getServerInfo().getVersion().getVersionString());
    return xmlRequest.asXML();
}
Also used : XMPPServer(org.jivesoftware.openfire.XMPPServer) Element(org.dom4j.Element)

Example 13 with XMPPServer

use of org.jivesoftware.openfire.XMPPServer in project Openfire by igniterealtime.

the class RayoComponent method createIQHandlers.

private void createIQHandlers() {
    XMPPServer server = XMPPServer.getInstance();
    onHookIQHandler = new OnHookIQHandler();
    server.getIQRouter().addHandler(onHookIQHandler);
    offHookIQHandler = new OffHookIQHandler();
    server.getIQRouter().addHandler(offHookIQHandler);
    privateIQHandler = new PrivateIQHandler();
    server.getIQRouter().addHandler(privateIQHandler);
    publicIQHandler = new PublicIQHandler();
    server.getIQRouter().addHandler(publicIQHandler);
    muteIQHandler = new MuteIQHandler();
    server.getIQRouter().addHandler(muteIQHandler);
    unmuteIQHandler = new UnmuteIQHandler();
    server.getIQRouter().addHandler(unmuteIQHandler);
    holdIQHandler = new HoldIQHandler();
    server.getIQRouter().addHandler(holdIQHandler);
    recordIQHandler = new RecordIQHandler();
    server.getIQRouter().addHandler(recordIQHandler);
    pauseRecordIQHandler = new PauseRecordIQHandler();
    server.getIQRouter().addHandler(pauseRecordIQHandler);
    resumeRecordIQHandler = new ResumeRecordIQHandler();
    server.getIQRouter().addHandler(resumeRecordIQHandler);
    sayIQHandler = new SayIQHandler();
    server.getIQRouter().addHandler(sayIQHandler);
    pauseSayIQHandler = new PauseSayIQHandler();
    server.getIQRouter().addHandler(pauseSayIQHandler);
    resumeSayIQHandler = new ResumeSayIQHandler();
    server.getIQRouter().addHandler(resumeSayIQHandler);
    acceptIQHandler = new AcceptIQHandler();
    server.getIQRouter().addHandler(acceptIQHandler);
    answerIQHandler = new AnswerIQHandler();
    server.getIQRouter().addHandler(answerIQHandler);
    dialIQHandler = new DialIQHandler();
    server.getIQRouter().addHandler(dialIQHandler);
    hangupIQHandler = new HangupIQHandler();
    server.getIQRouter().addHandler(hangupIQHandler);
    redirectIQHandler = new RedirectIQHandler();
    server.getIQRouter().addHandler(redirectIQHandler);
    dtmfIQHandler = new DtmfIQHandler();
    server.getIQRouter().addHandler(dtmfIQHandler);
}
Also used : XMPPServer(org.jivesoftware.openfire.XMPPServer)

Example 14 with XMPPServer

use of org.jivesoftware.openfire.XMPPServer in project Openfire by igniterealtime.

the class UserCreationPlugin method populateRosters.

public void populateRosters(String userPrefix, int from, int total, int usersPerRoster) {
    XMPPServer server = XMPPServer.getInstance();
    RosterManager rosterManager = server.getRosterManager();
    int batchTotal = total / usersPerRoster;
    System.out.println("Total batches of users: " + batchTotal);
    for (int batchNumber = 0; batchNumber < batchTotal; batchNumber++) {
        System.out.println("Current batch: " + batchNumber + ". Users: " + batchNumber * usersPerRoster + " - " + ((batchNumber * usersPerRoster) + usersPerRoster));
        // Add rosters items between connected users
        for (int i = (batchNumber * usersPerRoster) + from; i < (batchNumber * usersPerRoster) + usersPerRoster + from; i++) {
            String username = userPrefix + i;
            Roster roster;
            try {
                roster = rosterManager.getRoster(username);
            } catch (UserNotFoundException e) {
                continue;
            }
            if (roster.getRosterItems().size() >= usersPerRoster) {
                // Roster already populated. Skip it.
                continue;
            }
            for (int j = (batchNumber * usersPerRoster) + from; j < (batchNumber * usersPerRoster) + usersPerRoster + from; j++) {
                if (i == j) {
                    continue;
                }
                try {
                    Roster recipientRoster = rosterManager.getRoster(userPrefix + j);
                    manageSub(server.createJID(userPrefix + j, null), true, Presence.Type.subscribe, roster);
                    manageSub(server.createJID(username, null), false, Presence.Type.subscribe, recipientRoster);
                    manageSub(server.createJID(userPrefix + j, null), true, Presence.Type.subscribed, roster);
                    manageSub(server.createJID(username, null), false, Presence.Type.subscribed, recipientRoster);
                } catch (UserNotFoundException e) {
                // Ignore
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    }
    System.out.println("Rosters populated with " + usersPerRoster + " contacts.");
}
Also used : UserNotFoundException(org.jivesoftware.openfire.user.UserNotFoundException) XMPPServer(org.jivesoftware.openfire.XMPPServer) Roster(org.jivesoftware.openfire.roster.Roster) RosterManager(org.jivesoftware.openfire.roster.RosterManager) DocumentException(org.dom4j.DocumentException) SharedGroupException(org.jivesoftware.openfire.SharedGroupException) UserAlreadyExistsException(org.jivesoftware.openfire.user.UserAlreadyExistsException) UserNotFoundException(org.jivesoftware.openfire.user.UserNotFoundException)

Example 15 with XMPPServer

use of org.jivesoftware.openfire.XMPPServer in project Openfire by igniterealtime.

the class UserManager method isRegisteredUser.

/**
     * Returns true if the specified JID belongs to a local or remote registered user. For
     * remote users (i.e. domain does not match local domain) a disco#info request is going
     * to be sent to the bare JID of the user.
     *
     * @param user to JID of the user to check it it's a registered user.
     * @return true if the specified JID belongs to a local or remote registered user.
     */
public boolean isRegisteredUser(JID user) {
    XMPPServer server = XMPPServer.getInstance();
    if (server.isLocal(user)) {
        try {
            getUser(user.getNode());
            return true;
        } catch (UserNotFoundException e) {
            return false;
        }
    } else {
        // Look up in the cache using the full JID
        Boolean isRegistered = remoteUsersCache.get(user.toString());
        if (isRegistered == null) {
            // Check if the bare JID of the user is cached
            isRegistered = remoteUsersCache.get(user.toBareJID());
            if (isRegistered == null) {
                // No information is cached so check user identity and cache it
                // A disco#info is going to be sent to the bare JID of the user. This packet
                // is going to be handled by the remote server.
                IQ iq = new IQ(IQ.Type.get);
                iq.setFrom(server.getServerInfo().getXMPPDomain());
                iq.setTo(user.toBareJID());
                iq.setChildElement("query", "http://jabber.org/protocol/disco#info");
                // Send the disco#info request to the remote server. The reply will be
                // processed by the IQResultListener (interface that this class implements)
                server.getIQRouter().addIQResultListener(iq.getID(), this);
                synchronized (user.toBareJID().intern()) {
                    server.getIQRouter().route(iq);
                    // Wait for the reply to be processed. Time out in 1 minute.
                    try {
                        user.toBareJID().intern().wait(60000);
                    } catch (InterruptedException e) {
                    // Do nothing
                    }
                }
                // Get the discovered result
                isRegistered = remoteUsersCache.get(user.toBareJID());
                if (isRegistered == null) {
                    // Disco failed for some reason (i.e. we timed out before getting a result)
                    // so assume that user is not anonymous and cache result
                    isRegistered = Boolean.FALSE;
                    remoteUsersCache.put(user.toString(), isRegistered);
                }
            }
        }
        return isRegistered;
    }
}
Also used : XMPPServer(org.jivesoftware.openfire.XMPPServer) IQ(org.xmpp.packet.IQ)

Aggregations

XMPPServer (org.jivesoftware.openfire.XMPPServer)27 JID (org.xmpp.packet.JID)11 UserNotFoundException (org.jivesoftware.openfire.user.UserNotFoundException)8 GroupNotFoundException (org.jivesoftware.openfire.group.GroupNotFoundException)5 NamingException (javax.naming.NamingException)3 LdapName (javax.naming.ldap.LdapName)3 Group (org.jivesoftware.openfire.group.Group)3 User (org.jivesoftware.openfire.user.User)3 Presence (org.xmpp.packet.Presence)3 PrintWriter (java.io.PrintWriter)2 Locale (java.util.Locale)2 TreeSet (java.util.TreeSet)2 Matcher (java.util.regex.Matcher)2 Pattern (java.util.regex.Pattern)2 NamingEnumeration (javax.naming.NamingEnumeration)2 Attribute (javax.naming.directory.Attribute)2 Attributes (javax.naming.directory.Attributes)2 SearchControls (javax.naming.directory.SearchControls)2 SearchResult (javax.naming.directory.SearchResult)2 Plugin (org.jivesoftware.openfire.container.Plugin)2