dlestrat 2005/02/21 13:34:10 Modified: components/security/xdocs navigation.xml Added: portal/src/webapp/WEB-INF/assembly security-spi-atn.xml security-managers.xml security-spi-atz.xml security-atz.xml security-providers.xml security-spi.xml security-atn.xml components/security/xdocs config.xml Removed: portal/src/webapp/WEB-INF/assembly authentication.xml security.xml spi.xml Log: http://issues.apache.org/jira/browse/JS2-188#action_59540 LDAP Security Implementation. Services Code provided by Mike Long. Revision Changes Path 1.1 jakarta-jetspeed-2/portal/src/webapp/WEB-INF/assembly/security-spi-atn.xml Index: security-spi-atn.xml =================================================================== <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <!-- Copyright 2004 The Apache Software Foundation Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <beans> <!-- ************** Security SPI Handlers ************** --> <bean id="org.apache.jetspeed.security.spi.CredentialPasswordValidator" class="org.apache.jetspeed.security.spi.impl.DefaultCredentialPasswordValidator"/> <bean id="org.apache.jetspeed.security.spi.CredentialPasswordEncoder" class="org.apache.jetspeed.security.spi.impl.MessageDigestCredentialPasswordEncoder"> <constructor-arg index="0"><value>SHA-1</value></constructor-arg> </bean> <bean id="org.apache.jetspeed.security.spi.PasswordCredentialProvider" class="org.apache.jetspeed.security.spi.impl.DefaultPasswordCredentialProvider"> <constructor-arg index="0"><ref bean="org.apache.jetspeed.security.spi.CredentialPasswordValidator"/></constructor-arg> <constructor-arg index="1"><ref bean="org.apache.jetspeed.security.spi.CredentialPasswordEncoder"/></constructor-arg> </bean> <bean id="org.apache.jetspeed.security.spi.InternalPasswordCredentialInterceptor" class="org.apache.jetspeed.security.spi.impl.InternalPasswordCredentialHistoryHandlingInterceptor"> <!-- maxNumberOfAuthenticationFailures --> <constructor-arg index="0"><value>3</value></constructor-arg> <!-- maxLifeSpanInDays --> <constructor-arg index="1"><value>60</value></constructor-arg> <!-- historySize --> <constructor-arg index="2"><value>3</value></constructor-arg> </bean> <!-- Security SPI: CredentialHandler --> <bean id="org.apache.jetspeed.security.spi.CredentialHandler" class="org.apache.jetspeed.security.spi.impl.DefaultCredentialHandler" > <constructor-arg index="0"><ref bean="org.apache.jetspeed.security.spi.SecurityAccess"/></constructor-arg> <constructor-arg index="1"><ref bean="org.apache.jetspeed.security.spi.PasswordCredentialProvider"/></constructor-arg> <constructor-arg index="2"><ref bean="org.apache.jetspeed.security.spi.InternalPasswordCredentialInterceptor"/></constructor-arg> </bean> <!-- Security SPI: UserSecurityHandler --> <!-- The DefaultUSerSecurityHandler uses the raw SecurityAccessImpl so that it may demarcate its own transactions --> <bean id="org.apache.jetspeed.security.spi.UserSecurityHandlerImpl" class="org.apache.jetspeed.security.spi.impl.DefaultUserSecurityHandler" > <constructor-arg ><ref bean="org.apache.jetspeed.security.spi.SecurityAccess"/></constructor-arg> </bean> <bean id="org.apache.jetspeed.security.spi.UserSecurityHandler" parent="baseTransactionProxy" name="userSecurityHandler" > <property name="proxyInterfaces"> <value>org.apache.jetspeed.security.spi.UserSecurityHandler</value> </property> <property name="target"> <ref bean="org.apache.jetspeed.security.spi.UserSecurityHandlerImpl"/> </property> <property name="transactionAttributes"> <props> <prop key="*">PROPAGATION_REQUIRED</prop> </props> </property> </bean> </beans> 1.1 jakarta-jetspeed-2/portal/src/webapp/WEB-INF/assembly/security-managers.xml Index: security-managers.xml =================================================================== <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <!-- Copyright 2004 The Apache Software Foundation Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <beans> <!-- Security: User Manager --> <bean id="org.apache.jetspeed.security.UserManager" class="org.apache.jetspeed.security.impl.UserManagerImpl" > <constructor-arg ><ref bean="org.apache.jetspeed.security.SecurityProvider"/></constructor-arg> </bean> <!-- Security: Group Manager --> <bean id="org.apache.jetspeed.security.GroupManager" class="org.apache.jetspeed.security.impl.GroupManagerImpl" > <constructor-arg ><ref bean="org.apache.jetspeed.security.SecurityProvider"/></constructor-arg> </bean> <!-- Security: Role Manager --> <bean id="org.apache.jetspeed.security.RoleManager" class="org.apache.jetspeed.security.impl.RoleManagerImpl" > <constructor-arg ><ref bean="org.apache.jetspeed.security.SecurityProvider"/></constructor-arg> </bean> <!-- Security: Permission Manager --> <bean id="org.apache.jetspeed.security.impl.PermissionManagerImpl" class="org.apache.jetspeed.security.impl.PermissionManagerImpl" /> <bean id="org.apache.jetspeed.security.PermissionManager" parent="baseTransactionProxy" name="permissionManager" > <property name="proxyInterfaces"> <value>org.apache.jetspeed.security.PermissionManager</value> </property> <property name="target"> <ref bean="org.apache.jetspeed.security.impl.PermissionManagerImpl"/> </property> <property name="transactionAttributes"> <props> <prop key="remove*">PROPAGATION_REQUIRED</prop> <prop key="grant*">PROPAGATION_REQUIRED</prop> <prop key="revoke*">PROPAGATION_REQUIRED</prop> <prop key="grant*">PROPAGATION_REQUIRED</prop> <prop key="add*">PROPAGATION_REQUIRED</prop> <prop key="*">PROPAGATION_SUPPORTS</prop> </props> </property> </bean> </beans> 1.1 jakarta-jetspeed-2/portal/src/webapp/WEB-INF/assembly/security-spi-atz.xml Index: security-spi-atz.xml =================================================================== <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <!-- Copyright 2004 The Apache Software Foundation Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <beans> <!-- ************** Security SPI Handlers ************** --> <!-- Security SPI: RoleSecurityHandler --> <bean id="org.apache.jetspeed.security.spi.RoleSecurityHandler" class="org.apache.jetspeed.security.spi.impl.DefaultRoleSecurityHandler" > <constructor-arg ><ref bean="org.apache.jetspeed.security.spi.SecurityAccess"/></constructor-arg> </bean> <!-- Security SPI: GroupSecurityHandler --> <bean id="org.apache.jetspeed.security.spi.GroupSecurityHandler" class="org.apache.jetspeed.security.spi.impl.DefaultGroupSecurityHandler" > <constructor-arg ><ref bean="org.apache.jetspeed.security.spi.SecurityAccess"/></constructor-arg> </bean> <!-- Security SPI: SecurityMappingHandler --> <bean id="org.apache.jetspeed.security.spi.SecurityMappingHandler" class="org.apache.jetspeed.security.spi.impl.DefaultSecurityMappingHandler" > <constructor-arg ><ref bean="org.apache.jetspeed.security.spi.SecurityAccess"/></constructor-arg> <!-- Default role hierarchy strategy is by generalization. Add contructor-arg to change the strategy. --> <!-- Default group hierarchy strategy is by generalization. Add contructor-arg to change the strategy. --> </bean> </beans> 1.1 jakarta-jetspeed-2/portal/src/webapp/WEB-INF/assembly/security-atz.xml Index: security-atz.xml =================================================================== <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <!-- Copyright 2004 The Apache Software Foundation Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <beans> <!-- Security: RDBMS Policy implementation for JAAS --> <bean id="org.apache.jetspeed.security.impl.RdbmsPolicy" class="org.apache.jetspeed.security.impl.RdbmsPolicy" > <constructor-arg ><ref bean="org.apache.jetspeed.security.PermissionManager"/></constructor-arg> </bean> </beans> 1.1 jakarta-jetspeed-2/portal/src/webapp/WEB-INF/assembly/security-providers.xml Index: security-providers.xml =================================================================== <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <!-- Copyright 2004 The Apache Software Foundation Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <beans> <!-- ************** Security Providers ************** --> <!-- Security: Default Authentication Provider --> <bean id="org.apache.jetspeed.security.AuthenticationProvider" class="org.apache.jetspeed.security.impl.AuthenticationProviderImpl" > <constructor-arg index="0"><value>DefaultAuthenticator</value></constructor-arg> <constructor-arg index="1"><value>The default authenticator</value></constructor-arg> <constructor-arg index="2"><value>login.conf</value></constructor-arg> <constructor-arg index="3"><ref bean="org.apache.jetspeed.security.spi.CredentialHandler"/></constructor-arg> <constructor-arg index="4"><ref bean="org.apache.jetspeed.security.spi.UserSecurityHandler"/></constructor-arg> </bean> <!-- Security: Authentication Provider Proxy --> <bean id="org.apache.jetspeed.security.AuthenticationProviderProxy" class="org.apache.jetspeed.security.impl.AuthenticationProviderProxyImpl" > <constructor-arg > <list> <ref bean="org.apache.jetspeed.security.AuthenticationProvider"/> </list> </constructor-arg> <constructor-arg ><value>DefaultAuthenticator</value></constructor-arg> </bean> <!-- Security: Security Provider --> <bean id="org.apache.jetspeed.security.SecurityProvider" class="org.apache.jetspeed.security.impl.SecurityProviderImpl" > <constructor-arg ><ref bean="org.apache.jetspeed.security.AuthenticationProviderProxy"/></constructor-arg> <constructor-arg ><ref bean="org.apache.jetspeed.security.spi.RoleSecurityHandler"/></constructor-arg> <constructor-arg ><ref bean="org.apache.jetspeed.security.spi.GroupSecurityHandler"/></constructor-arg> <constructor-arg ><ref bean="org.apache.jetspeed.security.spi.SecurityMappingHandler"/></constructor-arg> </bean> <!-- Security: Authorization Provider --> <bean id="org.apache.jetspeed.security.AuthorizationProvider" class="org.apache.jetspeed.security.impl.AuthorizationProviderImpl" > <constructor-arg ><ref bean="org.apache.jetspeed.security.impl.RdbmsPolicy"/></constructor-arg> </bean> </beans> 1.1 jakarta-jetspeed-2/portal/src/webapp/WEB-INF/assembly/security-spi.xml Index: security-spi.xml =================================================================== <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <!-- Copyright 2004 The Apache Software Foundation Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <beans> <!-- ************** Security SPI Handlers ************** --> <!-- Security SPI: CommonQueries --> <bean id="org.apache.jetspeed.security.spi.impl.SecurityAccessImpl" class="org.apache.jetspeed.security.spi.impl.SecurityAccessImpl" init-method="init" > <constructor-arg ><value>META-INF/security_repository.xml</value></constructor-arg> </bean> <bean id="org.apache.jetspeed.security.spi.SecurityAccess" parent="baseTransactionProxy" name="SecurityCommonQueries" > <property name="proxyInterfaces"> <value>org.apache.jetspeed.security.spi.SecurityAccess</value> </property> <property name="target"> <ref bean="org.apache.jetspeed.security.spi.impl.SecurityAccessImpl"/> </property> <property name="transactionAttributes"> <props> <prop key="remove*">PROPAGATION_REQUIRED</prop> <prop key="set*">PROPAGATION_REQUIRED</prop> <prop key="*">PROPAGATION_SUPPORTS</prop> </props> </property> </bean> </beans> 1.1 jakarta-jetspeed-2/portal/src/webapp/WEB-INF/assembly/security-atn.xml Index: security-atn.xml =================================================================== <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <!-- Copyright 2004 The Apache Software Foundation Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <beans> <!-- ************** Login Module ************** --> <!-- Security: Login Module Proxy --> <bean id="org.apache.jetspeed.security.LoginModuleProxy" class="org.apache.jetspeed.security.impl.LoginModuleProxyImpl" > <constructor-arg ><ref bean="org.apache.jetspeed.security.UserManager"/></constructor-arg> </bean> </beans> 1.3 +1 -1 jakarta-jetspeed-2/components/security/xdocs/navigation.xml Index: navigation.xml =================================================================== RCS file: /home/cvs/jakarta-jetspeed-2/components/security/xdocs/navigation.xml,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- navigation.xml 17 Oct 2004 19:22:38 -0000 1.2 +++ navigation.xml 21 Feb 2005 21:34:09 -0000 1.3 @@ -25,7 +25,7 @@ <item name="Authorization Security Services" href="#"/> <item name="Aggregate Security Services" href="#"/> <item name="SPI Architecture" href="#"/> - <item name="Security Services Configuration" href="#"/> + <item name="Security Services Configuration" href="config.html"/> </menu> <menu name="Misc."> <item name="Tasks" href="tasks.html"/> 1.1 jakarta-jetspeed-2/components/security/xdocs/config.xml Index: config.xml =================================================================== <?xml version="1.0"?> <!-- Copyright 2004 The Apache Software Foundation Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <document> <properties> <title>Jetspeed 2 Security Services Configuration</title> <authors> <person name="David Le Strat" email="[EMAIL PROTECTED]"/> </authors> </properties> <body> <section name="Default configuration"> <p> Jetspeed 2 default security services configuration leverages a relational database as its default persitent datastore for security information. Jetspeed 2 security service provider interface provides a mechanism to replace the default datastore configured. </p> <p> 3 files are involved when configuring Jetspeed 2 security SPI. All the SPI configuration files are located under <i>${jetspeed-source-home}/portal/src/webapp/WEB-INF/assembly/</i>. </p> <subsection name="security-spi.xml"> <p> This configuration file contains configuration that are common to the authentication and authorization SPIs. </p> <table> <tr> <th>Bean</th> <th>Description</th> </tr> <tr> <td>org.apache.jetspeed.security.spi.SecurityAccess</td> <td>Used internally by the default OJB based SPI. Provide access to common action/methods for the various SPI implementations. The <i>SecurityAccess</i> bean is used by both the Authentication and Authorization SPIs.</td> </tr> </table> </subsection> <subsection name="security-spi-atn.xml"> <p> This configuratio file contains all the configurations for configuring the authentication SPI. </p> <table> <tr> <th>Bean</th> <th>Description</th> </tr> <tr> <td>org.apache.jetspeed.security.spi.CredentialHandler</td> <td>The <i>CredentialHandler</i> encapsulates the operations involving manipulation of credentials. The default implementation provides support for password protection as defined by the <i>PasswordCredentialProvider</i>; as well as lifecycle management of credentials through <i>InternalPasswordCredentialInterceptor</i> which manages parameters such as maximum number of authentication failures, maximum life span of a credential in days and how much history to retain for a given credential.</td> </tr> <tr> <td>org.apache.jetspeed.security.spi.UserSecurityHandler</td> <td>The <i>UserSecurityHandler</i> encapuslated all the operations around the user principals.</td> </tr> </table> </subsection> <subsection name="security-spi-atz.xml"> <p> This configuratio file contains all the configurations for configuring the authorization SPI. </p> <table> <tr> <th>Bean</th> <th>Description</th> </tr> <tr> <td>org.apache.jetspeed.security.spi.RoleSecurityHandler</td> <td>The <i>RoleSecurityHandler</i> encapsulates all the operations around the role principals.</td> </tr> <tr> <td>org.apache.jetspeed.security.spi.GroupSecurityHandler</td> <td>The <i>GroupSecurityHandler</i> encapsulates all the operations around the group principals.</td> </tr> <tr> <td>org.apache.jetspeed.security.spi.SecurityMappingHandler</td> <td>The <i>SecurityMappingHandler</i> encapsulates all the operations involving mapping between principals. It contains the logic managing hierarchy resolution for hierarchical principals (roles or groups). The default hierarchy resolution provided is a hierarchy by generalization (see overview for definitions). A <i>contructor-arg</i> can be added to the <i>SecurityMappingHandler</i> to change the hierarchy resolution strategy. Jetspeed 2 also support a hierarchy resolution by aggregation.</td> </tr> </table> </subsection> </section> <section name="LDAP Configuration"> <p> Jetspeed 2 provides LDAP support for authentication. Configuring LDAP authentication can be done by replacing the configuration files located under <i>${jetspeed-source-home}/portal/src/webapp/WEB-INF/assembly/</i> by the files located under as indicated <i>${jetspeed-source-home}/components/security/etc/</i>. below. </p> <p> Jetspeed 2 <b>does not currently provide an embedded LDAP directory</b>. A external LDAP directory must be configured in order to leverage this functionality. </p> <p> <i>security-spi-atn.xml</i> should be replaced by <i>security-spi-ldap-atn.xml</i> and <i>security-spi-ldap.xml</i> should be copied to the assembly directory as well. </p> <p> The <i>security-spi-ldap-atn.xml</i> preforms the same functions as the <i>security-spi-atn.xml</i> described above. It replaces the default implementation for <i>CredentialHandler</i> and <i>UserSecurityHandler</i> with an LDAP specific implementation. </p> <p> Additionally, <i>ldap.properties</i> located under <i>${jetspeed-source-home}/components/security/etc/</i> should be copied under <i>${jetspeed-source-home}/portal/src/webapp/WEB-INF/conf/</i>. </p> <subsection name="ldap.properties"> <table> <tr> <th>Property</th> <th>Value</th> </tr> <tr> <td>org.apache.jetspeed.ldap.ldapServerName</td> <td>The LDAP server name to connect to. E.g. <i>localhost</i></td> </tr> <tr> <td>org.apache.jetspeed.ldap.rootDn</td> <td>The root domain name. E.g. <i>cn=Manager,dc=proto,dc=dataline,dc=com</i>. In properties files the "=" in the value should be escaped, i.e. <i>cn\=Manager,dc\=proto,dc\=dataline,dc\=com</i></td> </tr> <tr> <td>org.apache.jetspeed.ldap.rootPassword</td> <td>The root password.</td> </tr> <tr> <td>org.apache.jetspeed.ldap.rootContext</td> <td>The root context. E.g. <i>dc=proto,dc=dataline,dc=com</i></td> </tr> <tr> <td>org.apache.jetspeed.ldap.defaultDnSuffix</td> <td>The default suffix. E.g. <i>ou=Norfolk,o=Dataline</i></td> </tr> </table> </subsection> </section> </body> </document>
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]