<!--
  ~ This work is part of OpenLDAP Software <http://www.openldap.org/>.
  ~
  ~ Copyright 1998-2014 The OpenLDAP Foundation.
  ~ All rights reserved.
  ~
  ~ Redistribution and use in source and binary forms, with or without
  ~ modification, are permitted only as authorized by the OpenLDAP
  ~ Public License.
  ~
  ~ A copy of this license is available in the file LICENSE in the
  ~ top-level directory of the distribution or, alternatively, at
  ~ <http://www.OpenLDAP.org/license.html>.
  -->
<html>
<head>
    <title>Package Documentation for Fortress Sentry</title>
</head>
<body>
<p>
    This package is the Fortress Realm component. The Fortress Realm provides APIs that are used by
    Java EE applications to perform authentication, authorization and audit within runtime
    application server environments. The APIs are called by the application server during runtime policy enforcement
    but may also be invoked directly by any Java client program for security access control.
</p>
</body>
</html>
