<?xml version='1.0' encoding="iso-8859-1" ?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "../lib/docbook-dtd/docbookx.dtd"
[
<!ENTITY preface 			SYSTEM "preface.xml">
<!ENTITY terminology		SYSTEM "terminology.xml">
<!ENTITY overview			SYSTEM "overview.xml">
<!ENTITY security-manager	SYSTEM "security-manager.xml">
<!ENTITY realms             SYSTEM "realms.xml">
<!ENTITY authentication		SYSTEM "authentication.xml">
<!ENTITY authorization		SYSTEM "authorization.xml">
<!ENTITY sessions			SYSTEM "sessions.xml">
<!ENTITY cryptography		SYSTEM "cryptography.xml">
<!ENTITY caching            SYSTEM "caching.xml">
<!ENTITY web-support		SYSTEM "web-support.xml">
<!ENTITY web-filter         SYSTEM "web-filter.xml">
<!ENTITY web-taglibs        SYSTEM "web-taglibs.xml">
<!ENTITY jsecurity.tld      SYSTEM "jsecurity.tld.xml">
]>
<book>
	<bookinfo>
		<title>JSecurity Reference Documentation</title>
		<releaseinfo>1.0</releaseinfo>
		<authorgroup>
			<author>
				<firstname>Les</firstname>
				<surname>Hazlewood</surname>
			</author>
		</authorgroup>
		<legalnotice>
			<para>Copies of this document may be made for your own use and for
			distribution to others, provided that you do not charge any
			fee for such copies and further provided that each copy
			contains this Copyright Notice, whether distributed in print
			or electronically.</para>
		</legalnotice>
	</bookinfo>
	<!-- front matter -->
	<toc/>
	&preface;
    &terminology;
    &overview;
	<part id="jsecurity-core">
		<title>Core Components</title>
		<partintro id="jsecurity-core-intro">
			<para>
                This initial part of the reference documentation covers
                JSecurity's core architectural components that support
                all functionality.
            </para>
			<para>
				Foremost amongst these is the Spring Framework's
				Inversion of Control (IoC) container. A thorough treatment
				of the Spring Framework's IoC container is closely followed
				by comprehensive coverage of Spring's Aspect-Oriented
				Programming (AOP) technologies. The Spring Framework has
				its own AOP	framework, which is conceptually easy to understand,
				and	which successfully addresses the 80% sweet spot of AOP
				requirements in Java enterprise programming.
			</para>
			<para>
				Coverage of Spring's integration with AspectJ (currently
				the richest - in terms of features - and certainly most
				mature AOP implementation in the Java enterprise space)
				is also provided.
			</para>
			<para>
			    Finally, the adoption of the test-driven-development (TDD)
			    approach to software development is certainly advocated by
			    the Spring team, and so coverage of Spring's support for
			    integration testing is covered (alongside best practices for
			    unit testing). The Spring team have found that the correct
			    use of IoC certainly does make both unit and integration
			    testing easier (in that the presence of setter methods and
			    appropriate constructors on classes makes them
			    easier to wire together on a test without having to set up
			    service locator registries and suchlike)... the chapter
			    dedicated solely to testing will hopefully convince you of
			    this as well.
			</para>
			<itemizedlist>
				<listitem>
					<para><xref linkend="security-manager"/></para>
				</listitem>
				<listitem>
					<para><xref linkend="authentication"/></para>
				</listitem>
				<listitem>
					<para><xref linkend="authorization"/></para>
				</listitem>
				<listitem>
					<para><xref linkend="realms"/></para>
				</listitem>
				<listitem>
					<para><xref linkend="sessions"/></para>
				</listitem>
				<listitem>
					<para><xref linkend="cryptography"/></para>
				</listitem>
			</itemizedlist>
		</partintro>
		&security-manager;
		&authentication;
		&authorization;
		&realms;
		&sessions;
		&cryptography;
	</part>
	<!-- <part id="jsecurity-web">
		<title>Web Support</title>
		<partintro id="jsecurity-web-intro">
			<para>
				This part of the reference documentation covers
                JSecurity's web support, specificly using JSecurity in
                a Servlet container for web-based applications.
			</para>
			<para>
				The Spring Framework's own web framework,
				<link linkend="mvc">Spring Web MVC</link>, is covered in
				the first couple of chapters. A number of the remaining
				chapters in this part of the reference documentation are
				concerned with the Spring Framework's integration with
				other web technologies, such as <link linkend="struts">Struts</link>
				and <link linkend="jsf">JSF</link> (to name but two).
			</para>
			<para>
				This section concludes with coverage of Spring's MVC
				<link linkend="portlet">portlet framework</link>.
			</para>
			<itemizedlist>
				<listitem>
					<para><xref linkend="mvc"/></para>
				</listitem>
				<listitem>
					<para><xref linkend="view"/></para>
				</listitem>
				<listitem>
					<para><xref linkend="web-integration"/></para>
				</listitem>
				<listitem>
					<para><xref linkend="portlet"/></para>
				</listitem>
			</itemizedlist>
		</partintro>
		&mvc;
		&view;
		&web-integration;
		&portlet;
	</part>
	<part id="jsecurity-integration">
		<title>Integration</title>
		<partintro id="jsecurity-integration-intro">
			<para>
				This part of the reference documentation covers JSecurity's
                integration with other technologies that might be
                useful in application deployments.
			</para>
			<itemizedlist>
				<listitem>
					<para><xref linkend="remoting"/></para>
				</listitem>
				<listitem>
					<para><xref linkend="ejb"/></para>
				</listitem>
				<listitem>
					<para><xref linkend="jms"/></para>
				</listitem>
				<listitem>
					<para><xref linkend="jmx"/></para>
				</listitem>
				<listitem>
					<para><xref linkend="cci"/></para>
				</listitem>
				<listitem>
					<para><xref linkend="mail"/></para>
				</listitem>
				<listitem>
					<para><xref linkend="scheduling"/></para>
				</listitem>
				<listitem>
					<para><xref linkend="dynamic-language"/></para>
				</listitem>
				<listitem>
					<para><xref linkend="metadata"/></para>
				</listitem>
			</itemizedlist>
		</partintro>
	</part> -->
	<!-- back matter -->
	&jsecurity.tld;
</book>