index.php 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. <?php
  2. if ($_SERVER['HTTP_HOST']=='acegisecurity.sourceforge.net')
  3. header('Location: http://acegisecurity.org');
  4. ?>
  5. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head><title>Acegi Security System for Spring - Acegi Security System for Spring</title><style type="text/css" media="all">
  6. @import url("./style/maven-base.css");
  7. @import url("./style/maven-theme.css");</style><link rel="stylesheet" href="./style/print.css" type="text/css" media="print"></link><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"></meta></head><body class="composite"><div id="banner"><a href="http://sourceforge.net/projects/acegisecurity" id="organizationLogo"><img alt="Acegi Technology Pty Limited" src="http://sourceforge.net/sflogo.php?group_id=104215&amp;type=5"></img></a><a href="http://acegisecurity.sourceforge.net/" id="projectLogo"><img alt="Acegi Security System for Spring" src="http://acegisecurity.sourceforge.net/logo.gif"></img></a><div class="clear"><hr></hr></div></div><div id="breadcrumbs"><div class="xleft">
  8. Last published: 23 October 2005
  9. | Doc for 0.9.0-SNAPSHOT</div><div class="xright">
  10. <a href="http://sourceforge.net/projects/acegisecurity" class="externalLink" title="External Link">Acegi Security on Sourceforge</a>
  11. </div><div class="clear"><hr></hr></div></div><div id="leftColumn"><div id="navcolumn"><div id="menuOverview"><h5>Overview</h5><ul><li class="none"><a href="index.html">Home</a></li><li class="none"><a href="building.html">Building with Maven</a></li><li class="none"><a href="downloads.html">Downloads</a></li></ul></div><div id="menuDocumentation"><h5>Documentation</h5><ul><li class="none"><a href="suggested.html">Suggested Steps</a></li><li class="none"><a href="reference.html">Reference Guide</a></li><li class="none"><a href="dbinit.txt">Sample SQL Schema</a></li><li class="none"><a href="faq.html">FAQ</a></li><li class="none"><a href="articles.html">External Web Articles</a></li><li class="none"><a href="powering.html">Products using Acegi</a></li><li class="none"><a href="standalone.html">Use without Spring</a></li><li class="none"><a href="upgrade/upgrade-070-080.html">Upgrading to 0.8.0</a></li><li class="none"><a href="upgrade/upgrade-06-070.html">Upgrading to 0.7.0</a></li><li class="none"><a href="upgrade/upgrade-05-06.html">Upgrading to 0.6</a></li><li class="none"><a href="upgrade/upgrade-04-05.html">Upgrading to 0.5</a></li><li class="none"><a href="upgrade/upgrade-03-04.html">Upgrading to 0.4</a></li><li class="none"><a href="multiproject/acegi-security/apidocs/index.html" class="newWindow" title="New Window" target="_blank">Core JavaDocs</a></li><li class="none"><a href="policies.html">Project Policies</a></li></ul></div><div id="menuProjects"><h5>Projects</h5><ul><li class="none"><a href="multiproject/acegi-security/index.html">Core Framework</a></li><li class="none"><a href="multiproject/acegi-security-cas/index.html">CAS Adapter</a></li><li class="none"><a href="multiproject/acegi-security-catalina/index.html">Catalina Adapter</a></li><li class="none"><a href="multiproject/acegi-security-jboss/index.html">JBoss Adapter</a></li><li class="none"><a href="multiproject/acegi-security-jetty/index.html">Jetty Adapter</a></li><li class="none"><a href="multiproject/acegi-security-resin/index.html">Resin Adapter</a></li></ul></div><div id="menuSamples"><h5>Samples</h5><ul><li class="none"><a href="multiproject/acegi-security-sample-contacts/index.html">Contacts</a></li><li class="none"><a href="multiproject/acegi-security-sample-attributes/index.html">Attributes</a></li></ul></div><div id="search"><h5>Search Acegi Security System for Spring</h5><form action="http://www.google.com/search" method="get"><a href="http://www.google.com" class="navlink"><img height="32" width="75" alt="Google" src="http://www.google.com/logos/Logo_25wht.gif"></img></a><input name="q" maxlength="255" size="15" type="text" value="" id="q"></input><input name="btnG" type="submit" value="Go" id="btnG"></input><input name="domains" type="hidden" value="http://acegisecurity.sourceforge.net"></input><input name="sitesearch" type="hidden" value="http://acegisecurity.sourceforge.net" id="search"></input></form></div><div id="menuProject_Documentation"><h5>Project Documentation</h5><ul><li class="none"><strong><a href="index.html">About Acegi Security System for Spring</a></strong></li><li class="none"><a href="downloads.html">Downloads</a></li><li class="collapsed"><a href="project-info.html">Project Info</a></li><li class="collapsed"><a href="maven-reports.html">Project Reports</a></li><li class="none"><a href="http://maven.apache.org/development-process.html" class="externalLink" title="External Link">Development Process</a></li></ul></div><div><ul><li class="none"><a href="http://www.springframework.org/" class="externalLink" title="External Link"><img title="Spring Framework" style="border: 1px" src="http://www.springframework.org/buttons/spring_white.png" alt="Spring Framework"></img></a></li><li class="none"><a href="http://www.cenqua.com/clover/" class="externalLink" title="External Link"><img title="Code Coverage by Clover" style="border: 1px" src="http://www.cenqua.com/clover/images/clovered1.gif" alt="Code Coverage by Clover"></img></a></li></ul></div><a href="http://maven.apache.org/" title="Built by Maven" id="poweredBy"><img alt="Built by Maven" src="./images/logos/maven-button-1.png"></img></a></div></div><div id="bodyColumn"><div class="contentBox"><div class="section"><center>
  12. </center><br></br><br></br><font face="Arial" size="-1">
  13. <center><b>
  14. <hr></hr>
  15. </b><center><b>Mission Statement</b></center>
  16. <hr></hr>
  17. <br></br>To provide comprehensive security services for <a href="http://www.springframework.org/" class="externalLink" title="External Link"><i>The Spring Framework</i></a>.
  18. </center><br></br><b>
  19. <hr></hr>
  20. </b><center><b>Key Features</b></center>
  21. <hr></hr>
  22. <br></br>
  23. <ul>
  24. <li><b>It is ready NOW.</b> As explained in the reference guide, the API
  25. is now quite stable. We also use the <a href="http://apr.apache.org/versioning.html" class="externalLink" title="External Link">Apache APR Project
  26. Versioning Guidelines</a> so you can identify backward
  27. compatibility.<br></br><br></br>
  28. </li><li><b>Fast results:</b> View our <a href="suggested.html">suggested steps</a>
  29. for the fastest way to develop complex, security-compliant applications.<br></br><br></br>
  30. </li><li><b>Enterprise-wide single sign on:</b> Using Yale University's open
  31. source <a href="http://www.yale.edu/tp/auth/" class="externalLink" title="External Link">Central Authentication
  32. Service</a> (CAS), the Acegi Security System for Spring can participate
  33. in an enterprise-wide single sign on environment. You no longer need
  34. every web application to have its own authentication database. Nor are
  35. you restricted to single sign on across a single web container. Advanced
  36. single sign on features like proxy support and forced refresh of logins
  37. are supported by both CAS and Acegi Security.<br></br><br></br>
  38. </li><li><b>Reuses your Spring expertise:</b> We use Spring application
  39. contexts for all configuration, which should help Spring developers get
  40. up-to-speed nice and quickly.<br></br><br></br>
  41. </li><li><b>Domain object instance security:</b> In many applications it's
  42. desirable to define Access Control Lists (ACLs) for individual domain
  43. object instances. We provide a comprehensive ACL package with features
  44. including integer bit masking, permission inheritence (including
  45. blocking), a JDBC-backed ACL repository, caching and a pluggable,
  46. interface-driven design.<br></br><br></br>
  47. </li><li><b>Non-intrusive setup:</b> The entire security system can operate
  48. within a single web application using the provided filters. There is no
  49. need to make special changes or deploy libraries to your Servlet or EJB
  50. container.<br></br><br></br>
  51. </li><li><b>Full (but optional) container integration:</b> The credential
  52. collection and authorization capabilities of your Servlet or EJB
  53. container can be fully utilised via included "container adapters". We
  54. currently support Catalina (Tomcat), Jetty, JBoss and Resin, with
  55. additional containers easily added.<br></br><br></br>
  56. </li><li><b>Keeps your objects free of security code:</b> Many applications
  57. need to secure data at the bean level based on any combination of
  58. parameters (user, time of day, authorities held, method being invoked,
  59. parameter on method being invoked....). This package gives you this
  60. flexibility without adding security code to your Spring business
  61. objects.<br></br><br></br>
  62. </li><li><b>After invocation security:</b> Acegi Security can not only protect
  63. methods from being invoked in the first place, but it can also
  64. deal with the Objects returned from the methods. Included implementations
  65. of after invocation security can throw an exception or mutate the returned
  66. object based on ACLs.<br></br><br></br>
  67. </li><li><b>Secures your HTTP requests as well:</b> In addition to securing
  68. your beans, the project also secures your HTTP requests. No longer is it
  69. necessary to rely on web.xml security constraints. Best of all, your
  70. HTTP requests can now be secured by your choice of regular expressions
  71. or Apache Ant paths, along with pluggable authentication, authorization
  72. and run-as replacement managers.<br></br><br></br>
  73. </li><li><b>Channel security:</b> The Acegi Security System for Spring can
  74. automatically redirect requests across an appropriate transport channel.
  75. Whilst flexible enough to support any of your "channel" requirements (eg
  76. the remote user is a human, not a robot), a common channel security
  77. feature is to ensure your secure pages will only be available over
  78. HTTPS, and your public pages only over HTTP. Acegi Security also
  79. supports unusual port combinations and pluggable transport decision
  80. managers.<br></br><br></br>
  81. </li><li><b>Supports HTTP BASIC authentication:</b> Perfect for remoting
  82. protocols or those web applications that prefer a simple browser pop-up
  83. (rather than a form login), Acegi Security can directly process HTTP
  84. BASIC authentication requests as per RFC 1945.<br></br><br></br>
  85. </li><li><b>Supports HTTP Digest authentication:</b> For greater security than
  86. offered by BASIC authentcation, Acegi Security also supports Digest Authentication
  87. (which never sends the user's password across the wire). Digest Authentication
  88. is widely supported by modern browsers. Acegi Security's implementation complies
  89. with both RFC 2617 and RFC 2069.<br></br><br></br>
  90. </li><li><b>Convenient security taglib:</b> Your JSP files can use our taglib
  91. to ensure that protected content like links and messages are only
  92. displayed to users holding the appropriate granted authorities. The taglib
  93. also fully integrates with Acegi Security's ACL services.<br></br><br></br>
  94. </li><li><b>Application context or attribute-based configuration:</b> You
  95. select the method used to configure your security environment. The
  96. project supports configuration via Spring application contexts as well
  97. as Jakarta Commons Attributes.<br></br><br></br>
  98. </li><li><b>Various authentication backends:</b> We include the ability to
  99. retrieve your user and granted authority definitions from either an XML
  100. file or JDBC datasource. Alternatively, you can implement the
  101. single-method DAO interface and obtain authentication details from
  102. anywhere you like.<br></br><br></br>
  103. </li><li><b>Event support:</b> Building upon Spring's
  104. <code>ApplicationEvent</code> services, you can write your own listeners
  105. for authentication-related events, along with authorisation-related events.
  106. This enables you to implement account lockout and audit log systems, with
  107. complete decoupling from Acegi Security code.<br></br><br></br>
  108. </li><li><b>Easy integration with existing databases:</b> Our implementations
  109. have been designed to make it very easy to use your existing
  110. authentication schema and data (without modification). Of course,
  111. you can also provide your own Data Access Object if you wish.<br></br><br></br>
  112. </li><li><b>Caching:</b> Acegi Security integrates with Spring's <a href="http://ehcache.sourceforge.net/" class="externalLink" title="External Link">EHCACHE</a> factory.
  113. This flexibility means your database (or other authentication
  114. repository) is not repeatedly queried for authentication
  115. information.<br></br><br></br>
  116. </li><li><b>Pluggable architecture:</b> Every critical aspect of the package
  117. has been modelled using high cohesion, loose coupling, interface-driven
  118. design principles. You can easily replace, customise or extend parts of
  119. the package.<br></br><br></br>
  120. </li><li><b>Startup-time validation:</b> Every critical object dependency and
  121. configuration parameter is validated at application context startup
  122. time. Security configuration errors are therefore detected early and
  123. corrected quickly.<br></br><br></br>
  124. </li><li><b>Remoting support:</b> Does your project use a rich client? Not a
  125. problem. Acegi Security integrates with standard Spring remoting
  126. protocols, because it automatically processes the HTTP BASIC
  127. authentication headers they present. Add our BASIC authentication filter
  128. to your web.xml and you're done.<br></br><br></br>
  129. </li><li><b>Advanced password encoding:</b> Of course, passwords in your
  130. authentication repository need not be in plain text. We support both SHA
  131. and MD5 encoding, and also pluggable "salt" providers to maximise
  132. password security.<br></br><br></br>
  133. </li><li><b>Run-as replacement:</b> The security system fully supports
  134. temporarily replacing the authenticated user for the duration of the web
  135. request or bean invocation. This enables you to build public-facing
  136. object tiers with different security configurations than your backend
  137. objects.<br></br><br></br>
  138. </li><li><b>Transparent security propagation:</b> Acegi Security can automatically
  139. transfer its core authentication information from one machine to another,
  140. using a variety of protocols including RMI and Spring's HttpInvoker.<br></br><br></br>
  141. </li><li><b>Compatible with HttpServletRequest.getRemoteUser():</b> Even though
  142. Acegi Security can deliver authentication using a range of pluggable mechanisms
  143. (most of which require no web container configuration), we allow you to access
  144. the resulting Authentication object via the getRemoteUser() method.<br></br><br></br>
  145. </li><li><b>Unit tests:</b> A must-have of any quality security project, unit
  146. tests are included. Our unit test coverage is very high, as shown in the
  147. <a href="multiproject/acegi-security/clover/index.html">coverage report</a>.<br></br><br></br>
  148. </li><li><b>Built by Maven:</b> This assists you in effectively reusing the Acegi
  149. Security artifacts in your own Maven-based projects.<br></br><br></br>
  150. </li><li><b>Supports your own unit tests:</b> We provide a number of classes
  151. that assist with your own unit testing of secured business objects. For
  152. example, you can change the authentication identity and its associated
  153. granted authorities directly within your test methods.<br></br><br></br>
  154. </li><li><b>Peer reviewed:</b> Whilst nothing is ever completely secure,
  155. using an open source security package leverages the continuous design
  156. and code quality improvements that emerge from peer review.<br></br><br></br>
  157. </li><li><b>Thorough documentation:</b> All APIs are fully documented using
  158. <a href="http://acegisecurity.sourceforge.net/multiproject/acegi-security/apidocs/index.html" class="externalLink" title="External Link">JavaDoc</a>, with a 40+ page
  159. <a href="reference.html">Reference Guide</a> providing an easy-to-follow
  160. introduction. More documentation is provided on this web site, as
  161. shown in the left hand navigation sidebar.<br></br><br></br>
  162. </li><li><b>Apache license.</b><br></br><br></br></li></ul><br></br><b>
  163. <hr></hr>
  164. </b><center><b>Project Resources</b></center>
  165. <hr></hr>
  166. <br></br>
  167. <center><a href="http://forum.springframework.org/" class="externalLink" title="External Link"><b>Support
  168. Forums</b></a><br></br><br></br><a href="http://sourceforge.net/project/showfiles.php?group_id=104215" class="externalLink" title="External Link"><b>Downloads</b></a>
  169. </center></font></div></div></div><div class="clear"><hr></hr></div><div id="footer"><div class="xright">© 2004-2005, Acegi Technology Pty Limited</div><div class="clear"><hr></hr></div></div></body></html>