diff --git a/doc/docbook/acegi.xml b/doc/docbook/acegi.xml
index 86085b8ff1..f5c6c5a8d4 100644
--- a/doc/docbook/acegi.xml
+++ b/doc/docbook/acegi.xml
@@ -26,7 +26,7 @@
Reference Documentation
- 1.0.0 RC 2
+ 1.0.0
@@ -1846,13 +1846,14 @@ public aspect DomainObjectInstanceSecurityAspect implements InitializingBean {
username and other properties you deem relevant.
Advanced tip & word to the wise: the
- SiteminderAuthenticationProcessingFilter actually extends
- AuthenticationProcessingFilter and thus additionally supports form
- validation. If you configure the filter to support both, and code
- your daoAuthenticationProvider to match the
- username and passwords as described above, you'll potentially defeat
- any security you have in place if the web server's Siteminder agent
- is deactivated. Don't do this, especially in production!
+ SiteminderAuthenticationProcessingFilter actually
+ extends AuthenticationProcessingFilter and thus
+ additionally supports form validation. If you configure the filter
+ to support both, and code your
+ daoAuthenticationProvider to match the username
+ and passwords as described above, you'll potentially defeat any
+ security you have in place if the web server's Siteminder agent is
+ deactivated. Don't do this, especially in production!
@@ -5150,7 +5151,54 @@ INSERT INTO acl_permission VALUES (null, 6, 'scott', 1);
As can be seen, database-specific constraints are used
extensively to ensure the integrity of the ACL information. If you
need to use a different database (Hypersonic SQL statements are shown
- above), you should try to implement equivalent constraints.
+ above), you should try to implement equivalent constraints. The
+ equivalent Oracle configuration is:
+
+ CREATE TABLE ACL_OBJECT_IDENTITY (
+ ID number(19,0) not null,
+ OBJECT_IDENTITY varchar2(255) NOT NULL,
+ PARENT_OBJECT number(19,0),
+ ACL_CLASS varchar2(255) NOT NULL,
+ primary key (ID)
+);
+ALTER TABLE ACL_OBJECT_IDENTITY ADD CONTRAINT FK_PARENT_OBJECT foreign key (ID) references ACL_OBJECT_IDENTITY
+
+CREATE SEQUENCE ACL_OBJECT_IDENTITY_SEQ;
+
+CREATE OR REPLACE TRIGGER ACL_OBJECT_IDENTITY_ID
+BEFORE INSERT ON ACL_OBJECT_IDENTITY
+FOR EACH ROW
+BEGIN
+ SELECT ACL_OBJECT_IDENTITY_SEQ.NEXTVAL INTO :new.id FROM dual;
+END;
+
+CREATE TABLE ACL_PERMISSION (
+ ID number(19,0) not null,
+ ACL_OBJECT_IDENTITY number(19,0) NOT NULL,
+ RECIPIENT varchar2(255) NOT NULL,
+ MASK number(19,0) NOT NULL,
+ primary key (ID)
+);
+
+ALTER TABLE ACL_PERMISSION ADD CONTRAINT UNIQUE_ID_RECIPIENT unique (acl_object_identity, recipient);
+
+CREATE SEQUENCE ACL_PERMISSION_SEQ;
+
+CREATE OR REPLACE TRIGGER ACL_PERMISSION_ID
+BEFORE INSERT ON ACL_PERMISSION
+FOR EACH ROW
+BEGIN
+ SELECT ACL_PERMISSION_SEQ.NEXTVAL INTO :new.id FROM dual;
+END;
+
+<bean id="basicAclExtendedDao" class="org.acegisecurity.acl.basic.jdbc.JdbcExtendedDaoImpl">
+ <property name="dataSource">
+ <ref bean="dataSource"/>
+ </property>
+ <property name="objectPropertiesQuery" value="${acegi.objectPropertiesQuery}"/>
+</bean>
+
+<prop key="acegi.objectPropertiesQuery">SELECT CHILD.ID, CHILD.OBJECT_IDENTITY, CHILD.ACL_CLASS, PARENT.OBJECT_IDENTITY as PARENT_OBJECT_IDENTITY FROM acl_object_identity as CHILD LEFT OUTER JOIN acl_object_identity as PARENT ON CHILD.parent_object=PARENT.id WHERE CHILD.object_identity = ?</prop>
The JdbcDaoImpl will only respond to requests
for NamedEntityObjectIdentitys. It converts such