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 class
OAuthPopupControllerBase.HandlerContext
-
Field Summary
Fields Modifier and Type Field Description protected AdminPermissionsUtil
myAdminPermissionsUtil
protected OAuthConnectionsManager
myOauthConnectionsManager
protected OAuthTokensStorage
myOAuthTokensStorage
protected String
myPath
protected SSLTrustStoreProvider
mySslTrustStoreProvider
-
Fields inherited from class jetbrains.buildServer.controllers.BaseController
myServer
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
OAuthPopupControllerBase(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 String
buildCallbackUrl(javax.servlet.http.HttpServletRequest request, String projectId, String connectionId, String showMode)
protected String
buildNewTokenRequestParams(javax.servlet.http.HttpServletRequest request, String projectId, String connectionId, String showMode)
protected org.springframework.web.servlet.ModelAndView
checkRepositoryAccess(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 TokenIntent
determineTokenIntent(javax.servlet.http.HttpServletRequest request)
protected TokenIntentType
determineTokenIntentType(javax.servlet.http.HttpServletRequest request)
protected org.springframework.web.servlet.ModelAndView
doHandle(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
Performs actual request processingprotected abstract org.springframework.web.servlet.ModelAndView
doWithToken(OAuthToken curOAuthToken, OAuthConnectionDescriptor opb, org.springframework.web.servlet.ModelAndView modelAndView, String vcsType)
Do something with the token that we acquired, e.g.protected OAuthToken
findExistingToken(TokenStorageUserQuery query)
protected OAuthToken
findMatchingToken(javax.servlet.http.HttpServletRequest request, SProject project, String connectionId)
protected OAuthToken
findNewlyIssuedToken(javax.servlet.http.HttpServletRequest request, SProject project)
protected org.springframework.web.servlet.ModelAndView
finish(OAuthPopupControllerBase.HandlerContext context)
protected abstract String
getAccessTokenControllerPath()
protected SProject
getCurrentProject(String projectId)
protected String
getScope(OAuthConnectionDescriptor opb)
Deprecated.please implementgetScope(OAuthConnectionDescriptor, TokenIntent)
insteadprotected String
getScope(OAuthConnectionDescriptor opb, TokenIntent tokenIntent)
protected String
getShowMode(javax.servlet.http.HttpServletRequest request)
protected boolean
handleTokenObtained(OAuthPopupControllerBase.HandlerContext context)
protected static boolean
isReuseWindow(javax.servlet.http.HttpServletRequest request)
protected boolean
loadAndUseTokenIfPossible(OAuthPopupControllerBase.HandlerContext context)
protected abstract org.springframework.web.servlet.ModelAndView
newModelAndView(boolean pageMode)
protected static boolean
noExplicitProjectScopeRequested(javax.servlet.http.HttpServletRequest request)
protected org.springframework.web.servlet.ModelAndView
postProcessAfterToken(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.HandlerContext
prepareContext(javax.servlet.http.HttpServletRequest request, boolean pageMode, OAuthConnectionDescriptor opb, SProject project, String showMode)
protected boolean
prepareToAcquireToken(OAuthPopupControllerBase.HandlerContext context)
protected org.springframework.web.servlet.ModelAndView
redirectToAccessTokenController(javax.servlet.http.HttpServletRequest request, String projectId, String connectionId, OAuthConnectionDescriptor opb, String showMode)
protected String
rememberIssueTokenParameters(javax.servlet.http.HttpServletRequest request)
protected org.springframework.web.servlet.ModelAndView
startAuthCodeFlowIfNecessary(javax.servlet.http.HttpServletRequest request, String projectId, String connectionId, OAuthConnectionDescriptor opb, String showMode)
protected boolean
validateVcsTypeParameter(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 Exception
Description copied from class:BaseController
Performs actual request processing- Specified by:
doHandle
in 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 Exception
Do 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)
-
-