Package org.eclipse.jgit.http.server
Class GitFilter
- java.lang.Object
-
- org.eclipse.jgit.http.server.glue.MetaFilter
-
- org.eclipse.jgit.http.server.GitFilter
-
- All Implemented Interfaces:
javax.servlet.Filter
public class GitFilter extends MetaFilter
Handles Git repository access over HTTP.Applications embedding this filter should map a directory path within the application to this filter. For a servlet version, see
GitServlet.Applications may wish to add additional repository action URLs to this servlet by taking advantage of its extension from
MetaFilter. Callers may register their own URL suffix translations throughMetaFilter.serve(String), or their regex translations throughMetaFilter.serveRegex(String). Each translation should contain a complete filter pipeline which ends with the HttpServlet that should handle the requested action.
-
-
Field Summary
Fields Modifier and Type Field Description private AsIsFileServiceasIsprivate booleaninitializedprivate ReceivePackErrorHandlerreceivePackErrorHandlerprivate ReceivePackFactory<javax.servlet.http.HttpServletRequest>receivePackFactoryprivate java.util.List<javax.servlet.Filter>receivePackFiltersprivate RepositoryResolver<javax.servlet.http.HttpServletRequest>resolverprivate UploadPackErrorHandleruploadPackErrorHandlerprivate UploadPackFactory<javax.servlet.http.HttpServletRequest>uploadPackFactoryprivate java.util.List<javax.servlet.Filter>uploadPackFilters
-
Constructor Summary
Constructors Constructor Description GitFilter()New servlet that will load its base directory fromweb.xml.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddReceivePackFilter(javax.servlet.Filter filter)Add receive-pack filtervoidaddUploadPackFilter(javax.servlet.Filter filter)Add upload-pack filterprivate voidassertNotInitialized()private static booleangetBoolean(javax.servlet.FilterConfig cfg, java.lang.String param)private static java.io.FilegetFile(javax.servlet.FilterConfig cfg, java.lang.String param)voidinit(javax.servlet.FilterConfig filterConfig)protected ServletBinderregister(ServletBinder binder)Configure a newly created binder.voidsetAsIsFileService(AsIsFileService f)Set AsIsFileServicevoidsetReceivePackErrorHandler(ReceivePackErrorHandler h)Set a custom error handler for git-receive-pack.voidsetReceivePackFactory(ReceivePackFactory<javax.servlet.http.HttpServletRequest> f)Set the receive-pack factoryvoidsetRepositoryResolver(RepositoryResolver<javax.servlet.http.HttpServletRequest> resolver)New servlet configured with a specific resolver.voidsetUploadPackErrorHandler(UploadPackErrorHandler h)Set a custom error handler for git-upload-pack.voidsetUploadPackFactory(UploadPackFactory<javax.servlet.http.HttpServletRequest> f)Set upload-pack factory-
Methods inherited from class org.eclipse.jgit.http.server.glue.MetaFilter
destroy, doFilter, serve, serveRegex, serveRegex
-
-
-
-
Field Detail
-
initialized
private volatile boolean initialized
-
resolver
private RepositoryResolver<javax.servlet.http.HttpServletRequest> resolver
-
asIs
private AsIsFileService asIs
-
uploadPackFactory
private UploadPackFactory<javax.servlet.http.HttpServletRequest> uploadPackFactory
-
uploadPackErrorHandler
private UploadPackErrorHandler uploadPackErrorHandler
-
receivePackFactory
private ReceivePackFactory<javax.servlet.http.HttpServletRequest> receivePackFactory
-
receivePackErrorHandler
private ReceivePackErrorHandler receivePackErrorHandler
-
uploadPackFilters
private final java.util.List<javax.servlet.Filter> uploadPackFilters
-
receivePackFilters
private final java.util.List<javax.servlet.Filter> receivePackFilters
-
-
Method Detail
-
setRepositoryResolver
public void setRepositoryResolver(RepositoryResolver<javax.servlet.http.HttpServletRequest> resolver)
New servlet configured with a specific resolver.- Parameters:
resolver- the resolver to use when matching URL to Git repository. If null thebase-pathparameter will be looked for in the parameter table during init, which usually comes from theweb.xmlfile of the web application.
-
setAsIsFileService
public void setAsIsFileService(AsIsFileService f)
Set AsIsFileService- Parameters:
f- the filter to validate direct access to repository files through a dumb client. Ifnullthen dumb client support is completely disabled.
-
setUploadPackFactory
public void setUploadPackFactory(UploadPackFactory<javax.servlet.http.HttpServletRequest> f)
Set upload-pack factory- Parameters:
f- the factory to construct and configure anUploadPacksession when a fetch or clone is requested by a client.
-
setUploadPackErrorHandler
public void setUploadPackErrorHandler(UploadPackErrorHandler h)
Set a custom error handler for git-upload-pack.- Parameters:
h- A custom error handler for git-upload-pack.
-
addUploadPackFilter
public void addUploadPackFilter(javax.servlet.Filter filter)
Add upload-pack filter- Parameters:
filter- filter to apply before any of the UploadPack operations. The UploadPack instance is available in the request attributeServletUtils.ATTRIBUTE_HANDLER.
-
setReceivePackFactory
public void setReceivePackFactory(ReceivePackFactory<javax.servlet.http.HttpServletRequest> f)
Set the receive-pack factory- Parameters:
f- the factory to construct and configure aReceivePacksession when a push is requested by a client.
-
setReceivePackErrorHandler
public void setReceivePackErrorHandler(ReceivePackErrorHandler h)
Set a custom error handler for git-receive-pack.- Parameters:
h- A custom error handler for git-receive-pack.
-
addReceivePackFilter
public void addReceivePackFilter(javax.servlet.Filter filter)
Add receive-pack filter- Parameters:
filter- filter to apply before any of the ReceivePack operations. The ReceivePack instance is available in the request attributeServletUtils.ATTRIBUTE_HANDLER.
-
assertNotInitialized
private void assertNotInitialized()
-
init
public void init(javax.servlet.FilterConfig filterConfig) throws javax.servlet.ServletException- Specified by:
initin interfacejavax.servlet.Filter- Overrides:
initin classMetaFilter- Throws:
javax.servlet.ServletException
-
getFile
private static java.io.File getFile(javax.servlet.FilterConfig cfg, java.lang.String param) throws javax.servlet.ServletException- Throws:
javax.servlet.ServletException
-
getBoolean
private static boolean getBoolean(javax.servlet.FilterConfig cfg, java.lang.String param) throws javax.servlet.ServletException- Throws:
javax.servlet.ServletException
-
register
protected ServletBinder register(ServletBinder binder)
Configure a newly created binder.- Overrides:
registerin classMetaFilter- Parameters:
binder- the newly created binder.- Returns:
- binder for the caller, potentially after adding one or more filters into the pipeline.
-
-