⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nonemembershipservice.java

📁 JXTA&#8482 is a set of open, generalized peer-to-peer (P2P) protocols that allow any networked devi
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                        if (null == getPeerID()) {                throw new IllegalArgumentException("peer id was never initialized.");            }                        // FIXME bondolo@jxta.org 20030409 should check for duplicate elements and for peergroup element        }                /**         *  Add a listener         *         *  @param listener the listener         **/        public void addPropertyChangeListener(PropertyChangeListener listener) {            support.addPropertyChangeListener(listener);        }                /**         *  Add a listener         *         *  @param propertyName the property to watch         *  @param listener the listener         **/        public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) {            support.addPropertyChangeListener(propertyName, listener);        }                /**         *  Remove a listener         *         *  @param listener the listener         **/        public void removePropertyChangeListener(PropertyChangeListener listener) {            support.removePropertyChangeListener(listener);        }                /**         *  Remove a listener         *         *  @param propertyName the property which was watched         *  @param listener the listener         **/        public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) {            support.removePropertyChangeListener(propertyName, listener);        }    }        /**     *  Authenticator Class for the None Membership Service. Pre-filled in and     *  ready for <code>join()</code>.     **/    public final static class NoneAuthenticator implements Authenticator {                MembershipService source;        AuthenticationCredential application;                String whoami = "nobody";                /**         * Creates an authenticator for the null membership service. Anything entered         * into the identity info section of the Authentication credential is         * ignored.         *         *  @param source The instance of the null membership service which         *  created this authenticator.         *  @param application Anything entered into the identity info section of         *  the Authentication credential is ignored.         **/        NoneAuthenticator(NoneMembershipService source, AuthenticationCredential application) {            this.source = source;            this.application = application;        }                /**         * Returns the service which generated this authenticator.         **/        public MembershipService getSourceService() {            return source;        }                /**         * {@inheritDoc}         *         *  <p/>This implementation is <strong>always</strong> ready for         *  <code>join()</code>         **/        synchronized public boolean isReadyForJoin() {            // always ready.            return true;        }                /**         * {@inheritDoc}         **/        public String getMethodName() {            return "NullAuthentication";        }                /**         * {@inheritDoc}         **/        public AuthenticationCredential getAuthenticationCredential() {            return application;        }                public void setAuth1Identity(String who) {            if (null == who) {                throw new IllegalArgumentException("You must supply an identity");            }            whoami = who;        }                public String getAuth1Identity() {            return whoami;        }    }        private ModuleImplAdvertisement implAdvertisement = null;        /**     *  The peergroup we live in.     **/    private PeerGroup peergroup = null;        /**     *  our current credentials     **/    private List principals;        /**     *  our current auth credentials     **/    private List principalsAuth;        /**     *  the default "nobody" credential     **/    private NoneCredential  defaultCredential = null;        /**     *  property change support     **/    private PropertyChangeSupport support;        /**     *  default constructor. Normally called only by the peer group.     **/    public NoneMembershipService() throws PeerGroupException {        principals = new ArrayList();        principalsAuth = new ArrayList();        support = new PropertyChangeSupport(getInterface());    }        /**     *  Add a listener     *     *  @param listener the listener     **/    public void addPropertyChangeListener(PropertyChangeListener listener) {        support.addPropertyChangeListener(listener);    }        /**     *  Add a listener     *     *  @param propertyName the property to watch     *  @param listener the listener     **/    public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) {        support.addPropertyChangeListener(propertyName, listener);    }        /**     *  Remove a listener     *     *  @param listener the listener     **/    public void removePropertyChangeListener(PropertyChangeListener listener) {        support.removePropertyChangeListener(listener);    }        /**     *  Remove a listener     *     *  @param propertyName the property which was watched     *  @param listener the listener     **/    public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) {        support.removePropertyChangeListener(propertyName, listener);    }        /**     * {@inheritDoc}     **/    public void init(PeerGroup group, ID assignedID, Advertisement impl) throws PeerGroupException {                implAdvertisement = (ModuleImplAdvertisement) impl;                peergroup = group;                if (Logging.SHOW_CONFIG && LOG.isLoggable(Level.CONFIG)) {            StringBuilder configInfo = new StringBuilder("Configuring None Membership Service : " + assignedID);            configInfo.append("\n\tImplementation:");            configInfo.append("\n\t\tModule Spec ID: " + implAdvertisement.getModuleSpecID());            configInfo.append("\n\t\tImpl Description : " + implAdvertisement.getDescription());            configInfo.append("\n\t\tImpl URI : " + implAdvertisement.getUri());            configInfo.append("\n\t\tImpl Code : " + implAdvertisement.getCode());            configInfo.append("\n\tGroup Params:");            configInfo.append("\n\t\tGroup: " + group.getPeerGroupName());            configInfo.append("\n\t\tGroup ID: " + group.getPeerGroupID());            configInfo.append("\n\t\tPeer ID: " + group.getPeerID());            LOG.config(configInfo.toString());        }                defaultCredential = new NoneCredential(this, "nobody");                resign();    }        /**     * {@inheritDoc}     **/    public Service getInterface() {        return this; // we have no method access control    }        /**     * {@inheritDoc}     **/    public int startApp(String[] arg) {        return 0;    }        /**     * {@inheritDoc}     **/    public void stopApp() {        resign();                peergroup = null;    }        /**     * {@inheritDoc}     **/    public Advertisement getImplAdvertisement() {        return implAdvertisement;    }        /**     * {@inheritDoc}     **/    public Authenticator apply(AuthenticationCredential application) throws PeerGroupException, ProtocolNotSupportedException {                String method = application.getMethod();                if ((null != method) && !"StringAuthentication".equals(method) && !"NoneAuthentication".equals(method)) {            throw new ProtocolNotSupportedException("Authentication method not recognized");        }                return new NoneAuthenticator(this, application);    }        /**     * {@inheritDoc}     **/    public Credential getDefaultCredential() {        return defaultCredential;    }        /**     * {@inheritDoc}     **/    public synchronized Enumeration<Credential> getCurrentCredentials() {        return Collections.enumeration(principals);    }        /**     * {@inheritDoc}     **/    public synchronized Enumeration<AuthenticationCredential> getAuthCredentials() {        return Collections.enumeration(principalsAuth);    }        /**     * {@inheritDoc}     **/    public Credential join(Authenticator authenticated) throws PeerGroupException {                if (!(authenticated instanceof NoneAuthenticator)) {            throw new ClassCastException("This is not my authenticator!");        }                if (!authenticated.isReadyForJoin()) {            throw new PeerGroupException("Not ready to join()!");        }                NoneAuthenticator myAuthenticated = (NoneAuthenticator) authenticated;                Credential newCred;        synchronized (this) {            newCred = new NoneCredential(this, myAuthenticated.getAuth1Identity());                        principals.add(newCred);            principalsAuth.add(myAuthenticated.application);        }                support.firePropertyChange("addCredential", null, newCred);                return newCred;    }        /**     * {@inheritDoc}     **/    public void resign() {        List allCreds = new ArrayList();        allCreds.addAll(principals);        allCreds.remove(defaultCredential);                synchronized (this) {            // remove all existing credentials            principals.clear();            principalsAuth.clear();                        // re-add the default credential.            principals.add(defaultCredential);        }                Iterator eachCred = allCreds.iterator();                while (eachCred.hasNext()) {            NoneCredential aCred = (NoneCredential) eachCred.next();                        aCred.setValid(false);        }    }        /**     * {@inheritDoc}     **/    public Credential makeCredential(Element element) throws PeerGroupException, Exception {        return new NoneCredential(this, element);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -