|
@@ -26,7 +26,7 @@
|
|
|
|
|
|
<subtitle>Reference Documentation</subtitle>
|
|
|
|
|
|
- <releaseinfo>1.0.0 RC 2</releaseinfo>
|
|
|
+ <releaseinfo>1.0.0</releaseinfo>
|
|
|
|
|
|
<authorgroup>
|
|
|
<author>
|
|
@@ -1846,13 +1846,14 @@ public aspect DomainObjectInstanceSecurityAspect implements InitializingBean {
|
|
|
username and other properties you deem relevant.</para>
|
|
|
|
|
|
<para>Advanced tip & word to the wise: the
|
|
|
- <literal>SiteminderAuthenticationProcessingFilter</literal> actually extends
|
|
|
- <literal>AuthenticationProcessingFilter</literal> and thus additionally supports form
|
|
|
- validation. If you configure the filter to support both, and code
|
|
|
- your <literal>daoAuthenticationProvider</literal> 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!</para>
|
|
|
+ <literal>SiteminderAuthenticationProcessingFilter</literal> actually
|
|
|
+ extends <literal>AuthenticationProcessingFilter</literal> and thus
|
|
|
+ additionally supports form validation. If you configure the filter
|
|
|
+ to support both, and code your
|
|
|
+ <literal>daoAuthenticationProvider</literal> 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!</para>
|
|
|
</sect3>
|
|
|
</sect2>
|
|
|
|
|
@@ -5150,7 +5151,54 @@ INSERT INTO acl_permission VALUES (null, 6, 'scott', 1);</programlisting></para>
|
|
|
<para>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.</para>
|
|
|
+ above), you should try to implement equivalent constraints. The
|
|
|
+ equivalent Oracle configuration is:</para>
|
|
|
+
|
|
|
+ <para><programlisting>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> </programlisting></para>
|
|
|
|
|
|
<para>The <literal>JdbcDaoImpl</literal> will only respond to requests
|
|
|
for <literal>NamedEntityObjectIdentity</literal>s. It converts such
|