Class OAuthPopupControllerBase
- java.lang.Object
-
- org.springframework.context.support.ApplicationObjectSupport
-
- org.springframework.web.context.support.WebApplicationObjectSupport
-
- org.springframework.web.servlet.support.WebContentGenerator
-
- org.springframework.web.servlet.mvc.AbstractController
-
- jetbrains.buildServer.controllers.BaseController
-
- jetbrains.buildServer.serverSide.oauth.OAuthPopupControllerBase
-
- All Implemented Interfaces:
org.springframework.beans.factory.Aware,org.springframework.context.ApplicationContextAware,org.springframework.web.context.ServletContextAware,org.springframework.web.servlet.mvc.Controller
- Direct Known Subclasses:
AzureDevOpsGetTokenPopupController,AzureDevOpsShowRepositoriesController,GetTokenPopupController,GetTokenPopupController,GetTokenPopupController,GitLabShowRepositoriesController,ShowRepositoriesController,ShowRepositoriesController,SpaceOAuthPopupControllerBase
public abstract class OAuthPopupControllerBase extends BaseController
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static classOAuthPopupControllerBase.HandlerContext
-
Field Summary
Fields Modifier and Type Field Description protected AdminPermissionsUtilmyAdminPermissionsUtilprotected OAuthConnectionsManagermyOauthConnectionsManagerprotected OAuthTokensStoragemyOAuthTokensStorageprotected StringmyPathprotected SSLTrustStoreProvidermySslTrustStoreProvider-
Fields inherited from class jetbrains.buildServer.controllers.BaseController
myServer
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedOAuthPopupControllerBase(String path, WebControllerManager controllerManager, OAuthConnectionsManager oauthConnectionsManager, ProjectManager projectManager, OAuthTokensStorage OAuthTokensStorage, AdminPermissionsUtil adminPermissionsUtil, WebLoginModel webLoginModel, SSLTrustStoreProvider sslTrustStoreProvider)
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected StringbuildCallbackUrl(javax.servlet.http.HttpServletRequest request, String projectId, String connectionId, String showMode)protected StringbuildNewTokenRequestParams(javax.servlet.http.HttpServletRequest request, String projectId, String connectionId, String showMode)protected org.springframework.web.servlet.ModelAndViewcheckRepositoryAccess(javax.servlet.http.HttpServletRequest request, org.springframework.web.servlet.ModelAndView modelAndView)protected Set<String>determineAccessibleEntities(javax.servlet.http.HttpServletRequest request)protected Set<SProject>determineProjectScope(javax.servlet.http.HttpServletRequest request)protected TokenIntentdetermineTokenIntent(javax.servlet.http.HttpServletRequest request)protected TokenIntentTypedetermineTokenIntentType(javax.servlet.http.HttpServletRequest request)protected org.springframework.web.servlet.ModelAndViewdoHandle(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)Performs actual request processingprotected abstract org.springframework.web.servlet.ModelAndViewdoWithToken(OAuthToken curOAuthToken, OAuthConnectionDescriptor opb, org.springframework.web.servlet.ModelAndView modelAndView, String vcsType)Do something with the token that we acquired, e.g.protected OAuthTokenfindExistingToken(TokenStorageUserQuery query)protected OAuthTokenfindMatchingToken(javax.servlet.http.HttpServletRequest request, SProject project, String connectionId)protected OAuthTokenfindNewlyIssuedToken(javax.servlet.http.HttpServletRequest request, SProject project)protected org.springframework.web.servlet.ModelAndViewfinish(OAuthPopupControllerBase.HandlerContext context)protected abstract StringgetAccessTokenControllerPath()protected SProjectgetCurrentProject(String projectId)protected StringgetScope(OAuthConnectionDescriptor opb)Deprecated.please implementgetScope(OAuthConnectionDescriptor, TokenIntent)insteadprotected StringgetScope(OAuthConnectionDescriptor opb, TokenIntent tokenIntent)protected StringgetShowMode(javax.servlet.http.HttpServletRequest request)protected booleanhandleTokenObtained(OAuthPopupControllerBase.HandlerContext context)protected static booleanisReuseWindow(javax.servlet.http.HttpServletRequest request)protected booleanloadAndUseTokenIfPossible(OAuthPopupControllerBase.HandlerContext context)protected abstract org.springframework.web.servlet.ModelAndViewnewModelAndView(boolean pageMode)protected static booleannoExplicitProjectScopeRequested(javax.servlet.http.HttpServletRequest request)protected org.springframework.web.servlet.ModelAndViewpostProcessAfterToken(javax.servlet.http.HttpServletRequest request, SProject project, OAuthConnectionDescriptor connection, org.springframework.web.servlet.ModelAndView modelAndView, OAuthToken token)Allows implementations to post process the model oncedoWithToken(jetbrains.buildServer.serverSide.oauth.OAuthToken, jetbrains.buildServer.serverSide.oauth.OAuthConnectionDescriptor, org.springframework.web.servlet.ModelAndView, java.lang.String)is done.protected OAuthPopupControllerBase.HandlerContextprepareContext(javax.servlet.http.HttpServletRequest request, boolean pageMode, OAuthConnectionDescriptor opb, SProject project, String showMode)protected booleanprepareToAcquireToken(OAuthPopupControllerBase.HandlerContext context)protected org.springframework.web.servlet.ModelAndViewredirectToAccessTokenController(javax.servlet.http.HttpServletRequest request, String projectId, String connectionId, OAuthConnectionDescriptor opb, String showMode)protected StringrememberIssueTokenParameters(javax.servlet.http.HttpServletRequest request)protected org.springframework.web.servlet.ModelAndViewstartAuthCodeFlowIfNecessary(javax.servlet.http.HttpServletRequest request, String projectId, String connectionId, OAuthConnectionDescriptor opb, String showMode)protected booleanvalidateVcsTypeParameter(OAuthPopupControllerBase.HandlerContext context)-
Methods inherited from class jetbrains.buildServer.controllers.BaseController
getOrCreateMessages, handleRequest, handleRequestInternal, isGet, isPost, redirectTo, setExceptionResolvers, simpleView
-
Methods inherited from class org.springframework.web.servlet.mvc.AbstractController
isSynchronizeOnSession, setSynchronizeOnSession
-
Methods inherited from class org.springframework.web.servlet.support.WebContentGenerator
applyCacheControl, applyCacheSeconds, applyCacheSeconds, cacheForSeconds, cacheForSeconds, checkAndPrepare, checkAndPrepare, checkRequest, getAllowHeader, getCacheControl, getCacheSeconds, getSupportedMethods, getVaryByRequestHeaders, isAlwaysMustRevalidate, isRequireSession, isUseCacheControlHeader, isUseCacheControlNoStore, isUseExpiresHeader, prepareResponse, preventCaching, setAlwaysMustRevalidate, setCacheControl, setCacheSeconds, setRequireSession, setSupportedMethods, setUseCacheControlHeader, setUseCacheControlNoStore, setUseExpiresHeader, setVaryByRequestHeaders
-
Methods inherited from class org.springframework.web.context.support.WebApplicationObjectSupport
getServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, isContextRequired, setServletContext
-
-
-
-
Field Detail
-
myOauthConnectionsManager
protected final OAuthConnectionsManager myOauthConnectionsManager
-
myOAuthTokensStorage
protected final OAuthTokensStorage myOAuthTokensStorage
-
myAdminPermissionsUtil
protected final AdminPermissionsUtil myAdminPermissionsUtil
-
myPath
protected final String myPath
-
mySslTrustStoreProvider
@NotNull protected final SSLTrustStoreProvider mySslTrustStoreProvider
-
-
Constructor Detail
-
OAuthPopupControllerBase
protected OAuthPopupControllerBase(@NotNull String path, @NotNull WebControllerManager controllerManager, @NotNull OAuthConnectionsManager oauthConnectionsManager, @NotNull ProjectManager projectManager, @NotNull OAuthTokensStorage OAuthTokensStorage, @NotNull AdminPermissionsUtil adminPermissionsUtil, @NotNull WebLoginModel webLoginModel, @NotNull SSLTrustStoreProvider sslTrustStoreProvider)
-
-
Method Detail
-
doHandle
@Nullable protected org.springframework.web.servlet.ModelAndView doHandle(@NotNull javax.servlet.http.HttpServletRequest request, @NotNull javax.servlet.http.HttpServletResponse response) throws ExceptionDescription copied from class:BaseControllerPerforms actual request processing- Specified by:
doHandlein classBaseController- Parameters:
request- HTTP requestresponse- HTTP response- Returns:
- model and view components
- Throws:
Exception- exception
-
startAuthCodeFlowIfNecessary
@Nullable protected org.springframework.web.servlet.ModelAndView startAuthCodeFlowIfNecessary(@NotNull javax.servlet.http.HttpServletRequest request, @NotNull String projectId, @NotNull String connectionId, @NotNull OAuthConnectionDescriptor opb, @NotNull String showMode)
-
prepareContext
@NotNull protected OAuthPopupControllerBase.HandlerContext prepareContext(@NotNull javax.servlet.http.HttpServletRequest request, boolean pageMode, @NotNull OAuthConnectionDescriptor opb, @NotNull SProject project, @NotNull String showMode)
-
validateVcsTypeParameter
protected boolean validateVcsTypeParameter(@NotNull OAuthPopupControllerBase.HandlerContext context)
-
handleTokenObtained
protected boolean handleTokenObtained(@NotNull OAuthPopupControllerBase.HandlerContext context)
-
loadAndUseTokenIfPossible
protected boolean loadAndUseTokenIfPossible(@NotNull OAuthPopupControllerBase.HandlerContext context) throws Exception- Throws:
Exception
-
prepareToAcquireToken
protected boolean prepareToAcquireToken(@NotNull OAuthPopupControllerBase.HandlerContext context)
-
findNewlyIssuedToken
@Nullable protected OAuthToken findNewlyIssuedToken(@NotNull javax.servlet.http.HttpServletRequest request, @NotNull SProject project)
-
findMatchingToken
@Nullable protected OAuthToken findMatchingToken(@NotNull javax.servlet.http.HttpServletRequest request, @NotNull SProject project, @NotNull String connectionId)
-
checkRepositoryAccess
@NotNull protected org.springframework.web.servlet.ModelAndView checkRepositoryAccess(@NotNull javax.servlet.http.HttpServletRequest request, @NotNull org.springframework.web.servlet.ModelAndView modelAndView)
-
redirectToAccessTokenController
@NotNull protected org.springframework.web.servlet.ModelAndView redirectToAccessTokenController(@NotNull javax.servlet.http.HttpServletRequest request, @NotNull String projectId, @NotNull String connectionId, @NotNull OAuthConnectionDescriptor opb, @NotNull String showMode)
-
buildCallbackUrl
@NotNull protected String buildCallbackUrl(@NotNull javax.servlet.http.HttpServletRequest request, @NotNull String projectId, @NotNull String connectionId, @NotNull String showMode)
-
rememberIssueTokenParameters
@NotNull protected String rememberIssueTokenParameters(@NotNull javax.servlet.http.HttpServletRequest request)
-
determineTokenIntentType
@Nullable protected TokenIntentType determineTokenIntentType(@NotNull javax.servlet.http.HttpServletRequest request)
-
determineTokenIntent
@NotNull protected TokenIntent determineTokenIntent(@NotNull javax.servlet.http.HttpServletRequest request)
-
determineAccessibleEntities
@Nullable protected Set<String> determineAccessibleEntities(@NotNull javax.servlet.http.HttpServletRequest request)
-
determineProjectScope
@Nullable protected Set<SProject> determineProjectScope(@NotNull javax.servlet.http.HttpServletRequest request)
-
buildNewTokenRequestParams
@NotNull protected String buildNewTokenRequestParams(@NotNull javax.servlet.http.HttpServletRequest request, @NotNull String projectId, @NotNull String connectionId, @NotNull String showMode)
-
findExistingToken
@Nullable protected OAuthToken findExistingToken(@NotNull TokenStorageUserQuery query)
-
getScope
@Deprecated @Nullable protected String getScope(OAuthConnectionDescriptor opb)
Deprecated.please implementgetScope(OAuthConnectionDescriptor, TokenIntent)insteadThis method does not support token intent information, please usegetScope(OAuthConnectionDescriptor, TokenIntent).
-
getScope
@Nullable protected String getScope(@NotNull OAuthConnectionDescriptor opb, @NotNull TokenIntent tokenIntent)
-
getShowMode
@NotNull protected String getShowMode(javax.servlet.http.HttpServletRequest request)
-
newModelAndView
@NotNull protected abstract org.springframework.web.servlet.ModelAndView newModelAndView(boolean pageMode)
-
doWithToken
@NotNull protected abstract org.springframework.web.servlet.ModelAndView doWithToken(@NotNull OAuthToken curOAuthToken, @NotNull OAuthConnectionDescriptor opb, @NotNull org.springframework.web.servlet.ModelAndView modelAndView, @Nullable String vcsType) throws ExceptionDo something with the token that we acquired, e.g. list repositories.- Parameters:
curOAuthToken- tokenopb- connection describermodelAndView- model and viewvcsType- VCS type- Throws:
Exception
-
getAccessTokenControllerPath
@NotNull protected abstract String getAccessTokenControllerPath()
-
postProcessAfterToken
@NotNull protected org.springframework.web.servlet.ModelAndView postProcessAfterToken(@NotNull javax.servlet.http.HttpServletRequest request, @NotNull SProject project, @NotNull OAuthConnectionDescriptor connection, @NotNull org.springframework.web.servlet.ModelAndView modelAndView, @NotNull OAuthToken token)Allows implementations to post process the model oncedoWithToken(jetbrains.buildServer.serverSide.oauth.OAuthToken, jetbrains.buildServer.serverSide.oauth.OAuthConnectionDescriptor, org.springframework.web.servlet.ModelAndView, java.lang.String)is done.- Parameters:
request- the http requestproject- the current projectconnection- the current connectionmodelAndView- the model and viewtoken-- Returns:
- some model and view
-
finish
@NotNull protected org.springframework.web.servlet.ModelAndView finish(@NotNull OAuthPopupControllerBase.HandlerContext context)
-
isReuseWindow
protected static boolean isReuseWindow(@NotNull javax.servlet.http.HttpServletRequest request)
-
noExplicitProjectScopeRequested
protected static boolean noExplicitProjectScopeRequested(@NotNull javax.servlet.http.HttpServletRequest request)
-
-