/* * Jicofo, the Jitsi Conference Focus. * * Distributable under LGPL license. * See terms of license at gnu.org. */ package org.jitsi.jicofo.auth; /** * FIXME work in progress * This interface is intended to encapsulate authorization method like * Shibboleth, OAuth or XMPP domain. * * @author Pawel Domas */ public interface AuthenticationAuthority { /** * Checks if given user is allowed to create the room. * @param peerJid the Jabber ID of the user. * @param roomName the name of the conference room to be checked. * @return <tt>true</tt> if it's OK to create the room for given name on * behalf of verified user or <tt>false</tt> otherwise. */ boolean isAllowedToCreateRoom(String peerJid, String roomName); /** * Registers to the list of <tt>AuthenticationListener</tt>s. * @param l the <tt>AuthenticationListener</tt> to be added to listeners * list. */ void addAuthenticationListener(AuthenticationListener l); /** * Unregisters from the list of <tt>AuthenticationListener</tt>s. * @param l the <tt>AuthenticationListener</tt> that will be removed from * authentication listeners list. */ void removeAuthenticationListener(AuthenticationListener l); /** * Returns <tt>true</tt> if user is authenticated in given conference room. * @param jabberID the Jabber ID of the user to be verified. * @param roomName conference room name which is the context of * authentication. */ boolean isUserAuthenticated(String jabberID, String roomName); String createAuthenticationUrl(String peerFullJid, String roomName); /** * Returns <tt>true</tt> if this is external authentication method that * requires user to visit authentication URL. */ boolean isExternal(); void start(); void stop(); }