📄 authenticationcredential.java
字号:
/*
* Copyright (c) 2001 Sun Microsystems, Inc. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Sun Microsystems, Inc. for Project JXTA."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Sun", "Sun Microsystems, Inc.", "JXTA" and "Project JXTA" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact Project JXTA at http://www.jxta.org.
*
* 5. Products derived from this software may not be called "JXTA",
* nor may "JXTA" appear in their name, without prior written
* permission of Sun.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL SUN MICROSYSTEMS OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of Project JXTA. For more
* information on Project JXTA, please see
* <http://www.jxta.org/>.
*
* This license is based on the BSD license adopted by the Apache Foundation.
*
* $Id: AuthenticationCredential.java,v 1.2 2002/03/04 20:17:17 echtcherbina Exp $
*/
package net.jxta.credential;
import java.lang.String;
import net.jxta.document.Element;
import net.jxta.document.MimeMediaType;
import net.jxta.document.StructuredDocument;
import net.jxta.document.StructuredDocumentFactory;
import net.jxta.document.StructuredDocumentUtils;
import net.jxta.document.StructuredTextDocument;
import net.jxta.document.TextElement;
import net.jxta.id.ID;
import net.jxta.membership.MembershipService;
import net.jxta.peer.PeerID;
import net.jxta.peergroup.PeerGroup;
import net.jxta.peergroup.PeerGroupID;
/** Authenication credentials are used by the JXTA MembershipService services as the basis
* for applications for peergroup membership. The AuthenticationCredential provides
* two important pieces of inforamtion, the authetication method being requested
* and the identity information which will be provided to that authentation method.
* Not all authentication methods use the identity information.
*
* @version $Revision: 1.2 $
* @since JXTA 1.0
*/
public final class AuthenticationCredential implements Credential {
/** the authentication method which will be requested when this credential is
* provided during "apply" to a peergroup MembershipService service.
*/
private String authenticationMethod = null;
/** Any optional information which is required by the requested authentication
* method.
*/
private Element identityInfo = null;
/** The peergroup of this AuthenticationCredential
*/
private PeerGroup peergroup = null;
/** Creates new AuthenticationCredential
* @param peergroup The peergroup context in which this AuthenticationCredential is created.
*
* @param method The authentication method which will be requested when the
* AuthentiationCredential is provided to the peergroup MembershipService Service.
* @param indentityInfo Optional additional information about the identity being requested which is used
* by the authentication method. This information is passed to the authentication
* method during the apply operation of the MembershipService Service.
*/
public AuthenticationCredential( PeerGroup peergroup, String method, Element indentityInfo ) {
this.peergroup = peergroup;
authenticationMethod = method;
// FIXME bondolo@jxta.org 20010323 This should do a clone of the elments. Clone doesnt work yet though.
if( null != indentityInfo )
this.identityInfo = indentityInfo;
}
/** Always reutrns null since this type of credential is not associated with a
* particular membership service.
* @return null because this type of credential is not associated with any membership
* service.
*/
public MembershipService getSourceService() {
return null;
}
/** Returns the PeerGroupID associated with this AuthenticationCredential.
* AuthenticationCredentials are created in the context of a PeerGroup though they
* are generally independant of peergroups. The intent is that the
* AuthenticationCredential will be passed to the MembershipService service of the same
* peergroup as the AuthenticationCredenitals.
* @return PeerGroupID associated with this AuthenticationCredential.
*/
public ID getPeerGroupID() {
return peergroup.getPeerGroupID();
}
/** Returns the PeerID associated with this AuthenticationCredential.
* @return PeerID associated with this AuthenticationCredential.
*/
public ID getPeerID() {
return peergroup.getPeerID();
}
/** Returns the AuthenticationMethod which this AuthenticationCredential will be
* requesting when it is provided to a MembershipService service during the Apply
* operation.
*
* @return String containing the authentication methdod being requested.
*/
public String getMethod() {
return authenticationMethod;
}
/** Returns the StructuredDocument Element containing the identity information which was
* originally provided when this AuthenticationCredential was created.
* @return StructuredDocument Element containing the identity information which was
* originally provided when this AuthenticationCredential was created.
*/
public Element getIdentityInfo() {
return identityInfo;
}
/** Write credential into a document. as is a mime media-type
* specification and provides the form of the document which is being
* requested. Two standard document forms are defined. "text/text" encodes
* the document in a form nice for printing out and "text/xml" which
* provides an XML format.
*
* @param as The mime media type of the encoding format being requested.
* @throws Exception When errors occur.
* @return the StructuredDocument which represents this credential.
*/
public StructuredDocument getDocument(MimeMediaType as) throws Exception {
StructuredDocument doc = StructuredDocumentFactory.newStructuredDocument(
as, "AuthenticationCredential" );
Element e = doc.createElement( "Method", getMethod() );
doc.appendChild( e );
e = doc.createElement( "PeerGroupID", getPeerGroupID().toString() );
doc.appendChild( e );
e = doc.createElement( "PeerID", getPeerID().toString() );
doc.appendChild( e );
if( null != identityInfo ) {
e = doc.createElement( "IdentityInfo");
doc.appendChild( e );
StructuredDocumentUtils.copyElements( doc, e, identityInfo );
}
return doc;
}
// FIXME 20010327 bondolo@jxta.org Need a way to make a Authentication credential from a document.
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -