|
@@ -73,7 +73,7 @@
|
|
|
authentication provider to read the authorities which were externally allocated to the user. We'll look at a concrete
|
|
|
example next.
|
|
|
</para>
|
|
|
- <section>
|
|
|
+ <section xml:id="j2ee-preauth-details">
|
|
|
<title>J2eeBasedPreAuthenticatedWebAuthenticationDetailsSource</title>
|
|
|
<para>
|
|
|
If the filter is configured with an <literal>authenticationDetailsSource</literal> which is an instance of this
|
|
@@ -126,10 +126,37 @@
|
|
|
<section>
|
|
|
<title>Concrete Implementations</title>
|
|
|
<para>
|
|
|
- TODO.
|
|
|
+ X.509 authentication is covered in its <link xlink:href="#x509">own chapter</link>. Here we'll look at some classes
|
|
|
+ which provide support for other pre-authenticated scenarios.
|
|
|
</para>
|
|
|
+
|
|
|
+ <section>
|
|
|
+ <title>Request-Header Authentication (Siteminder)</title>
|
|
|
+ <para>
|
|
|
+ An external authentication system may supply information to the application by setting specific headers on the HTTP request.
|
|
|
+ A well known example of this is is Siteminder, which passes the username in a header called <literal>SM_USER</literal>.
|
|
|
+ This mechanism is supported by the class <classname>RequestHeaderPreAuthenticatedProcessingFilter</classname> which
|
|
|
+ simply extracts the username from the header. It defaults to using the name <literal>SM_USER</literal> as the
|
|
|
+ header name. See the Javadoc for more details.
|
|
|
+ </para>
|
|
|
+ <tip>
|
|
|
+ <para>Note that when using a system like this, the framework performs no authentication checks at all and
|
|
|
+ it is <emphasis>extremely</emphasis> important that the external system is configured properly and protects all
|
|
|
+ access to the application. If an attacker is able to forge the headers in their original request without this being
|
|
|
+ detected then they could potentially choose any userame they wished.
|
|
|
+ </para>
|
|
|
+ </tip>
|
|
|
+ </section>
|
|
|
+
|
|
|
+ <section>
|
|
|
+ <title>J2EE Container Authentication</title>
|
|
|
+ <para>
|
|
|
+ The class <classname>J2eePreAuthenticatedProcessingFilter</classname> will extract the username from the
|
|
|
+ <literal>userPrincipal</literal> property of the <interfacename>HttpServletRequest</interfacename>. use of this
|
|
|
+ filter would usually be combined with the use of J2EE roles as described above in <xref linkend="j2ee-preauth-details"/>.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ </section>
|
|
|
</section>
|
|
|
|
|
|
-
|
|
|
-
|
|
|
</chapter>
|