blob: 9a3fdf34c7d04beb10af0bf8ac0ae87ece307504 [file] [log] [blame]
J. Duke319a3b92007-12-01 00:00:00 +00001<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
2<html>
3<head>
4<!--
5Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved.
6DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
7
8This code is free software; you can redistribute it and/or modify it
9under the terms of the GNU General Public License version 2 only, as
10published by the Free Software Foundation. Sun designates this
11particular file as subject to the "Classpath" exception as provided
12by Sun in the LICENSE file that accompanied this code.
13
14This code is distributed in the hope that it will be useful, but WITHOUT
15ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
16FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
17version 2 for more details (a copy is included in the LICENSE file that
18accompanied this code).
19
20You should have received a copy of the GNU General Public License version
212 along with this work; if not, write to the Free Software Foundation,
22Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
23
24Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
25CA 95054 USA or visit www.sun.com if you need additional information or
26have any questions.
27-->
28</head>
29<body bgcolor="white">
30
31Contains class and interfaces for supporting SASL.
32
33This package defines classes and interfaces for SASL mechanisms.
34It is used by developers to add authentication support for
35connection-based protocols that use SASL.
36
37<h4>SASL Overview</h4>
38<p>
39
40Simple Authentication and Security Layer (SASL) specifies a
41challenge-response protocol in which data is exchanged between the
42client and the server for the purposes of
43authentication and (optional) establishment of a security layer on
44which to carry on subsequent communications. It is used with
45connection-based protocols such as LDAPv3 or IMAPv4. SASL is
46described in
47<A HREF="http://www.ietf.org/rfc/rfc2222.txt">RFC 2222</A>.
48
49<p>
50There are various <em>mechanisms</em> defined for SASL.
51Each mechanism defines the data that must be exchanged between the
52client and server in order for the authentication to succeed.
53This data exchange required for a particular mechanism is referred to
54to as its <em>protocol profile</em>.
55The following are some examples of mechanims that have been defined by
56the Internet standards community.
57<ul>
58<li>DIGEST-MD5 (<A HREF="http://www.ietf.org/rfc/rfc2831.txt">RFC 2831</a>).
59This mechanism defines how HTTP Digest Authentication can be used as a SASL
60mechanism.
61<li>Anonymous (<A HREF="http://www.ietf.org/rfc/rfc2245.txt">RFC 2245</a>).
62This mechamism is anonymous authentication in which no credentials are
63necessary.
64<li>External (<A HREF="http://www.ietf.org/rfc/rfc2222.txt">RFC 2222</A>).
65This mechanism obtains authentication information
66from an external source (such as TLS or IPsec).
67<li>S/Key (<A HREF="http://www.ietf.org/rfc/rfc2222.txt">RFC 2222</A>).
68This mechanism uses the MD4 digest algorithm to exchange data based on
69a shared secret.
70<li>GSSAPI (<A HREF="http://www.ietf.org/rfc/rfc2222.txt">RFC 2222</A>).
71This mechanism uses the
72<A HREF="http://www.ietf.org/rfc/rfc2078.txt">GSSAPI</A>
73for obtaining authentication information.
74</ul>
75
76<p>
77Some of these mechanisms provide both authentication and establishment
78of a security layer, others only authentication. Anonymous and
79S/Key do not provide for any security layers. GSSAPI and DIGEST-MD5
80allow negotiation of the security layer. For External, the
81security layer is determined by the external protocol.
82
83<h4>Usage</h4>
84
85<p>
86Users of this API are typically developers who produce
87client library implementations for connection-based protocols,
88such as LDAPv3 and IMAPv4,
89and developers who write servers (such as LDAP servers and IMAP servers).
90Developers who write client libraries use the
91<tt>SaslClient</tt> and <tt>SaslClientFactory</tt> interfaces.
92Developers who write servers use the
93<tt>SaslServer</tt> and <tt>SaslServerFactory</tt> interfaces.
94<p>
95Among these two groups of users, each can be further divided into two groups:
96those who <em>produce</em> the SASL mechanisms and those
97who <em>use</em> the SASL mechanisms.
98The producers of SASL mechanisms need to provide implementations
99for these interfaces, while users of the SASL mechanisms use
100the APIs in this package to access those implementations.
101
102<h2>Related Documentation</h2>
103
104Please refer to the
105<a href="../../../../technotes/guides/security/sasl/sasl-refguide.html">Java
106SASL Programming Guide</a> for information on how to use this API.
107
108
109@since 1.5
110
111
112</body>
113</html>
114