in github-oauth/src/main/java/com/googlesource/gerrit/plugins/github/oauth/GitHubLogin.java [92:120]
public void login(
HttpServletRequest request,
HttpServletResponse response,
OAuthProtocol oauth,
Scope... scopes)
throws IOException {
log.debug("Login " + this);
if (OAuthProtocol.isOAuthFinal(request)) {
log.debug("Login-FINAL " + this);
login(oauth.loginPhase2(request, response, state));
this.state = ""; // Make sure state is used only once
if (isLoggedIn()) {
log.debug("Login-SUCCESS " + this);
response.sendRedirect(OAuthProtocol.getTargetUrl(request));
}
} else {
Set<ScopeKey> configuredScopesProfiles = config.scopes.keySet();
String scopeRequested = getScopesKey(request, response);
if (Strings.isNullOrEmpty(scopeRequested) && configuredScopesProfiles.size() > 1) {
response.sendRedirect(config.getScopeSelectionUrl(request));
} else {
this.loginScopes = getScopes(MoreObjects.firstNonNull(scopeRequested, "scopes"), scopes);
log.debug("Login-PHASE1 " + this);
state = oauth.loginPhase1(request, response, loginScopes);
}
}
}