diff --git a/docs/manual/src/docbook/namespace-config.xml b/docs/manual/src/docbook/namespace-config.xml
index 21ded8dc85..c9681d4059 100644
--- a/docs/manual/src/docbook/namespace-config.xml
+++ b/docs/manual/src/docbook/namespace-config.xml
@@ -496,18 +496,18 @@
- OpenID Login
+ OpenID SupportThe namespace supports OpenID login either
instead of, or in addition to normal form-based login, with a simple change:
- ]]> You should then register yourself with an OpenID provider (such as
+]]>You should then register yourself with an OpenID provider (such as
myopenid.com), and add the user information to your in-memory
<user-service> :
- ]]> You should be able to login using the myopenid.com site to
+]]> You should be able to login using the myopenid.com site to
authenticate. It is also possible to select a specific
UserDetailsService bean for use OpenID by setting the
user-service-ref attribute on the openid-login
@@ -517,6 +517,32 @@
the authorities for the user. A random password will be generate internally, preventing you
from accidentally using this user data as an authentication source elsewhere in your
configuration.
+
+ Attribute Exchange
+ Support for OpenID attribute
+ exchange. As an example, the following configuration would attempt to retrieve
+ the email and full name from the OpenID provider, for use by the application:
+
+
+
+
+ ]]>The type of each OpenID attribute is a URI,
+ determined by a particular schema, in this case http://axschema.org/. If an attribute must be retrieved for successful
+ authentication, the required attribute can be set. The exact schema and
+ attributes supported will depend on your OpenID provider. The attribute values are
+ returned as part of the authentication process and can be accessed afterwards using the
+ following
+ code:OpenIDAuthenticationToken token = SecurityContextHolder.getContext().getAuthentication();
+List<OpenIDAttribute> attributes = token.getAttributes();The
+ OpenIDAttribute contains the attribute type and the retrieved
+ value (or values in the case of multi-valued attributes). We'll see more about how the
+ SecurityContextHolder class is used when we look at core Spring
+ Security components in the technical overview
+ chapter.
+ Adding in Your Own Filters