1. Download the
...
appropriate version of the Islandora Drupal Filter
Download the Drupal Filter files from the Release Notes and Downloads page. Extract the contents of the archive and make sure you choose the correct JAR file for your version of Fedora. version of the Drupal Filter file that corresponds to your Fedora version, and copy it to $FEDORA_HOME/tomcat/webapps/fedora/WEB-INF/lib
Place the file in:
Code Block |
---|
|
$ wget https://github.com/Islandora/islandora_drupal_filter/releases/download/v7.1.3/fcrepo-drupalauthfilter-3.7.0.jar
$ cp -v fcrepo-drupalauthfilter-3.x7.x0.jar $FEDORA_HOME/tomcat/webapps/fedora/WEB-INF/lib |
...
Navigate to $FEDORA_HOME/server/config and open the file jaas.conf in a text editor.
To allow the Drupal Servlet Filter to authenticate against Drupal’s database, insert replace the "fedora-auth" entry with the following lines that reference to the DrupalServlet filters class files:
...
Note |
---|
Fedora requires a separate <connection> entry for each connecting Drupal site. |
Note |
---|
The Drupal Filter does not currently escape the database url before attempting to connect to the Mysql database, which can cause problems if the user name or password has '%' symbol within it. |
Code Block |
---|
|
<?xml version="1.0" encoding="UTF-8"?>
<!--File to hold drupal connection info for the FilterDrupal servlet filter. For multisite drupal installs you can include multiple
connection elements. We will query all the databases and assume any user in any drupal db with the same username and password are the same
user. We will gather all roles for that user from all databases. This is a potential security risk if a user in one drupal db has the same
username and password as another user in a separate drupaldb. We are also assuming all drupal dbs to be mysql. This file should be located
in the same directory as the fedora.cfcg file-->
<FilterDrupal_Connection>
<connection server="localhost" dbname="[drupal_database]" user="[drupal_db_user]" password="[drupla_db_password]" port="3306">
<sql>
<!--Different sql statement for each connection. This is for drupal multisites that are setup using one database with
table prefixes. We don't do this but some people might.-->
SELECT DISTINCT u.uid AS userid, u.name AS Name, u.pass AS Pass, r.name AS Role FROM (users u LEFT JOIN users_roles ON
u.uid=users_roles.uid) LEFT JOIN role r ON r.rid=users_roles.rid WHERE u.name=? AND u.pass=?;
</sql>
</connection>
</FilterDrupal_Connection> |
...
5. Test the Drupal Servlet Filter
Unlike Islandora 6, Islandora 7 will test your Fedora connection for you. To verify that the servlet filter is working properly, go to the Islandora configuration page (admin/islandora/configure) and look for the green checkmark. A successful installation will look like this:
...