Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Running Fedora without authorization means that the REST API is available to any request coming from the container and lacks any finer-grained security. This is useful when Fedora is running behind another application that connects to Fedora and implements its own security checks. In addition, this This configuration is also useful for temporary demonstrations and for running software tests that do not require security.

This configuration Disabling auth in Fedora does not preclude the use of container authentication to secure Fedora. However, container roles are not used for any further authorization within Fedora. All requests are treated as superusers.

The security bypass for REST endpoint is accomplished by supplying an alternate ModeShape authentication provider. This provider permits all actions at the Modeshape levelAuth is disabled by default in the Jetty one-click version of Fedora.

Step-by-Step Configuration

  1. Open your Spring configuration file.Remove any beans that are instances of org.Set the fcrepo.auth.common.ShiroAuthenticationProvider.
  2. Remove the depends-on attribute from the modeshapeRepofactory bean, if there is one.
  3. Open your web.xml file.
    1. Remove all occurences of "shiroFilter" (<filter> and <filter-mapping>)
    2. Comment out <security-constraint> and <login-config> sections
  4. Open your Modeshape repository configuration file (repository.json).
    1. Under security, configure the BypassSecurityServletAuthenticationProvider, as shown in the example below.

...

languagejs
titleExample repository.json (security section)

...

  1. enabled property to false. This can be done in a properties file or with a -D argument.
  2. Edit Fedora's web.xml so that all of the auth related configuration is removed or commented out. Here is an example of what the modified web.xml should look like. The web.xml is located in the WEB-INF directory within the Fedora webapp when it is deployed in Tomcat.