org.eclipse.jgit.http.server.resolver
Class AsIsFileService

java.lang.Object
  extended by org.eclipse.jgit.http.server.resolver.AsIsFileService

public class AsIsFileService
extends java.lang.Object

Controls access to bare files in a repository.

Older HTTP clients which do not speak the smart HTTP variant of the Git protocol fetch from a repository by directly getting its objects and pack files. This class, along with the http.getanyfile per-repository configuration setting, can be used by GitServlet to control whether or not these older clients are permitted to read these direct files.


Field Summary
static AsIsFileService DISABLED
          Always throws ServiceNotEnabledException.
 
Constructor Summary
AsIsFileService()
           
 
Method Summary
 void access(javax.servlet.http.HttpServletRequest req, Repository db)
          Determine if access to any bare file of the repository is allowed.
protected static boolean isEnabled(Repository db)
          Determine if http.getanyfile is enabled in the configuration.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DISABLED

public static final AsIsFileService DISABLED
Always throws ServiceNotEnabledException.

Constructor Detail

AsIsFileService

public AsIsFileService()
Method Detail

isEnabled

protected static boolean isEnabled(Repository db)
Determine if http.getanyfile is enabled in the configuration.

Parameters:
db - the repository to check.
Returns:
false if http.getanyfile was explicitly set to false in the repository's configuration file; otherwise true.

access

public void access(javax.servlet.http.HttpServletRequest req,
                   Repository db)
            throws ServiceNotEnabledException,
                   ServiceNotAuthorizedException
Determine if access to any bare file of the repository is allowed.

This method silently succeeds if the request is allowed, or fails by throwing a checked exception if access should be denied.

The default implementation of this method checks http.getanyfile, throwing ServiceNotEnabledException if it was explicitly set to false, and otherwise succeeding silently.

Parameters:
req - current HTTP request, in case information from the request may help determine the access request.
db - the repository the request would obtain a bare file from.
Throws:
ServiceNotEnabledException - bare file access is not allowed on the target repository, by any user, for any reason.
ServiceNotAuthorizedException - bare file access is not allowed for this HTTP request and repository, such as due to a permission error.


Copyright © 2011. All Rights Reserved.