Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you 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
https://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.
Apache Fortress 2.0.6 and ApacheDS Quickstart System Architecture
Minimum software requirements:
Everything else covered in steps that follow. Tested on Debian & Centos systems.
a. Download either the 32 or 64-bit linux binary
b. For 32-bit (as sudo or root):
chmod a+x *.bin ./apacheds-[version]-32bit.bin
b. For 64-bit (as sudo or root):
chmod a+x *.bin ./apacheds-[version]-64bit.bin
Accept the defaults.
sudo vi /opt/apacheds-[version]/conf/wrapper.conf
wrapper.java.command=/usr/bin/java
contains fully qualified location of target machine's java.
Save and exit.
After installation start the directory server process. From system command prompt (as sudo or root):
/etc/init.d/apacheds-[version]-default start
/etc/init.d/apacheds-[version]-default status ApacheDS - default is running (70041).
git clone --branch 2.0.6 https://gitbox.apache.org/repos/asf/directory-fortress-core.git cd directory-fortress-core
b. or download package:
wget https://www.apache.org/dist/directory/fortress/dist/2.0.6/fortress-core-2.0.6-source-release.zip unzip fortress-core-2.0.6-source-release.zip cd fortress-core-2.0.6
cp build.properties.example build.properties
build.properties.example contains the apacheds default config. Learn more about the config here: README-CONFIG
export JAVA_HOME=... export M2_HOME=... export PATH=$PATH:$M2_HOME/bin
a. Java 8 target
mvn clean install
-- OR --
b. Java 11 target
mvn clean install -Djava.version=11
There are many ways to import an ldif file into an LDAP server like ApacheDS. For example an LDAP browser like Apache Directory Studio can be used. This guide shows how to use the OpenLDAP client.
a. Test to see if it is already installed. From the command prompt enter:
ldapmodify
b. If the command was not found we need to install the OpenLDAP client:
i. For Redhat / Centos based systems:
yum install -y openldap-clients
ii. Else for Debian based systems:
sudo apt-get install ldap-utils
Load the fortress schema to ApacheDS instance using ldapmodify command.
ldapmodify -h localhost -p 10389 -D uid=admin,ou=system -w secret -a -f ./ldap/schema/apacheds-fortress.ldif
From fortress core base folder, enter the following command:
mvn install -Dload.file=./ldap/setup/refreshLDAPData.xml
These will build the Directory Information Tree (DIT), create the config and data policies needed for the integration test to follow.
Enter the following command:
mvn -Dtest=FortressJUnitTest test
Tests the APIs against your LDAP server.
Tests run: Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 372.708 sec - in org.apache.directory.fortress.core.impl.FortressJUnitTest Results: Tests run: Failures: 0, Errors: 0, Skipped: 0 [INFO] [INFO] --- maven-antrun-plugin:1.8:run (default) @ fortress-core --- [INFO] Executing tasks fortress-load: [INFO] Executed tasks [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------
mvn -Dtest=FortressJUnitTest test
Tests Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 778.501 sec - in org.apache.directory.fortress.core.impl.FortressJUnitTest Results : Tests run: Failures: 0, Errors: 0, Skipped: 0 [INFO] [INFO] --- maven-antrun-plugin:1.8:run (default) @ fortress-core --- [INFO] Executing tasks fortress-load: [INFO] Executed tasks [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------
Notice more tests ran this time vs the first time, due to teardown.
Test Notes:
During this section, you will be asked to setup Apache Tomcat 8 and prepare for usage with Apache Fortress
wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.0.30/bin/apache-tomcat-8.0.30.tar.gz tar -xvf apache-tomcat-8.0.30.tar.gz sudo mv apache-tomcat-8.0.30 /usr/local/tomcat8
Change the tomcat version as neeeded - v7 and beyond are ok. For BSD variants (i.e. Mac) append / to the folder name above on mv command.*
sudo wget https://repo.maven.apache.org/maven2/org/apache/directory/fortress/fortress-realm-proxy/2.0.6/fortress-realm-proxy-2.0.6.jar -P /usr/local/tomcat8/lib
sudo vi /usr/local/tomcat8/conf/tomcat-users.xml
<role rolename="manager-script"/> <role rolename="manager-gui"/> <user username="tcmanager" password="m@nager123" roles="manager-script"/> <user username="tcmanagergui" password="m@nager123" roles="manager-gui"/>
Save and exit tomcat-users.xml file
Configure Tomcat as a service (optional)
a. Edit the config file:
vi /etc/init.d/tomcat
b. Add the following:
#!/bin/bash # description: Tomcat Start Stop Restart # processname: tomcat # chkconfig: 234 20 80 CATALINA_HOME=/usr/local/tomcat8 case $1 in start) sh $CATALINA_HOME/bin/startup.sh ;; stop) sh $CATALINA_HOME/bin/shutdown.sh ;; restart) sh $CATALINA_HOME/bin/shutdown.sh sh $CATALINA_HOME/bin/startup.sh ;; esac exit 0
c. Add the init script to startup for run level 2, 3 and 4:
cd /etc/init.d chmod 755 tomcat chkconfig --add tomcat chkconfig --level 234 tomcat on
a. If running Tomcat as a service:
service tomcat start
b. Else
sudo /usr/local/tomcat8/bin/startup.sh
tail -f -n10000 /usr/local/tomcat8/logs/catalina.out
http://hostname:8080/manager
During this section, you will be asked to setup Apache Fortress Rest Application
a. from git:
git clone --branch 2.0.6 https://gitbox.apache.org/repos/asf/directory-fortress-enmasse.git cd directory-fortress-enmasse
b. or download package:
wget https://www.apache.org/dist/directory/fortress/dist/2.0.6/fortress-rest-2.0.6-source-release.zip unzip fortress-rest-2.0.6-source-release.zip cd fortress-rest-2.0.6
cp ../[FORTRESS-CORE-HOME]/config/fortress.properties src/main/resources
where FORTRESS-CORE-HOME is package location on your machine
mvn clean install -Dload.file=./src/main/resources/FortressRestServerPolicy.xml tomcat:deploy
mvn tomcat:redeploy
mvn test -Dtest=EmTest
During this section, you will be asked to setup Apache Fortress Web Application
a. from git:
git clone --branch 2.0.6 https://gitbox.apache.org/repos/asf/directory-fortress-commander.git cd directory-fortress-commander
b. or download package:
wget https://www.apache.org/dist/directory/fortress/dist/2.0.6/fortress-web-2.0.6-source-release.zip unzip fortress-web-2.0.6-source-release.zip cd fortress-web-2.0.6
cp ../[FORTRESS-CORE-HOME]/config/fortress.properties src/main/resources
where FORTRESS-CORE-HOME is package location on your machine
mvn clean install -Dload.file=./src/main/resources/FortressWebDemoUsers.xml tomcat:deploy
mvn tomcat:redeploy
http://hostname:8080/fortress-web
Click on the links, to pull up various views on the data stored in the directory.
Run the Selenium Web driver integration tests with Firefox (default):
mvn test -Dtest=FortressWebSeleniumITCase
mvn test -Dtest=FortressWebSeleniumITCase -Dweb.driver=chrome
Note: The Selenium tests require that: