Package com.atlassian.bitbucket.scm.http
Interface HttpScmRequestHandler
public interface HttpScmRequestHandler
Plugin point for providing handlers for HTTP requests for SCM hosting operations.
Bitbucket will automatically attempt to authenticate requests using its standard authentication stack
(which includes support for Basic Auth). If authentication is required but was not provided or there were invalid
credentials, sendAuthenticationError(com.atlassian.bitbucket.scm.AuthenticationState, java.lang.String, java.lang.String, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
will be called.
-
Method Summary
Modifier and TypeMethodDescriptioncreate
(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) Returns anHttpScmRequest
to service the supplied request, orOptional.empty()
if the request could not be created.void
sendAuthenticationError
(AuthenticationState state, String summary, String detailMessage, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) void
sendError
(String summary, String detailMessage, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) boolean
supports
(HttpRequestDetails requestDetails) Returns whether the handler can service the supplied request.
-
Method Details
-
create
@Nonnull Optional<HttpScmRequest> create(@Nonnull javax.servlet.http.HttpServletRequest request, @Nonnull javax.servlet.http.HttpServletResponse response) Returns anHttpScmRequest
to service the supplied request, orOptional.empty()
if the request could not be created. This method is only called whensupports(com.atlassian.bitbucket.scm.http.HttpRequestDetails)
returnedtrue
for that request.- Parameters:
request
- anHttpServletRequest
targeting /scm/* (e.g. an HTTP request from the git client binary)response
- theHttpServletResponse
- Returns:
- an
HttpScmRequest
to service the request, orOptional.empty()
- Throws:
com.atlassian.bitbucket.repository.NoSuchRepositoryException
- if the repository could not be foundcom.atlassian.bitbucket.AuthorisationException
- if the repository is not accessible
-
sendAuthenticationError
void sendAuthenticationError(@Nonnull AuthenticationState state, @Nonnull String summary, @Nonnull String detailMessage, @Nonnull javax.servlet.http.HttpServletRequest request, @Nonnull javax.servlet.http.HttpServletResponse response) throws IOException - Parameters:
state
- the current state of the user's authentication, seeAuthenticationState
for detailssummary
- an i18n'd message to (optionally) send to the client if it supports displaying custom messagesdetailMessage
- a longer detailed explanation of the problemrequest
- anHttpServletRequest
targeting /scm/* (e.g. an HTTP request from the git client binary)response
- theHttpServletResponse
- Throws:
IOException
- if there was a problem reading from the request or writing to the response
-
sendError
void sendError(@Nonnull String summary, @Nonnull String detailMessage, @Nonnull javax.servlet.http.HttpServletRequest request, @Nonnull javax.servlet.http.HttpServletResponse response) throws IOException - Parameters:
summary
- an i18n'd message to (optionally) send to the client if it supports displaying custom messagesdetailMessage
- a longer detailed explanation of the problemrequest
- anHttpServletRequest
targeting /scm/* (e.g. an HTTP request from the git client binary)response
- theHttpServletResponse
- Throws:
IOException
- if there was a problem writing to the response
-
supports
Returns whether the handler can service the supplied request.false
means that the request will be passed on to theHttpScmRequestHandler
provided by theHttpScmRequestHandlerModuleDescriptor
with the next heaviest weight.- Parameters:
requestDetails
-HttpRequestDetails
from the request targeting /scm/* (e.g. an HTTP request from the git client binary)- Returns:
true
if the handler can service this request,false
otherwise
-