Merge "Deliver expiresAt and providerId for access token"
diff --git a/src/main/java/com/googlesource/gerrit/plugins/cfoauth/CFOAuthService.java b/src/main/java/com/googlesource/gerrit/plugins/cfoauth/CFOAuthService.java
index d754307..9647f1d 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/cfoauth/CFOAuthService.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/cfoauth/CFOAuthService.java
@@ -78,10 +78,7 @@
if (token == null) {
throw new UAAClientException("Must provide an access token");
}
- AccessToken accessToken = uaaClient.toAccessToken(token.getToken());
- UserInfo userInfo = accessToken.getUserInfo();
- userInfo.setDisplayName(uaaClient.getDisplayName(token.getToken()));
- return getAsOAuthUserInfo(userInfo);
+ return getAsOAuthUserInfo(uaaClient.toAccessToken(token.getToken()));
}
@Override
@@ -113,10 +110,7 @@
// token; if that succeeds the user is authenticated
accessToken = uaaClient.getAccessToken(username, secret);
}
- UserInfo userInfo = accessToken.getUserInfo();
- userInfo.setDisplayName(
- uaaClient.getDisplayName(accessToken.getValue()));
- return getAsOAuthUserInfo(userInfo);
+ return getAsOAuthUserInfo(accessToken);
}
} catch (UAAClientException e) {
throw new IOException("Authentication error", e);
@@ -138,7 +132,10 @@
accessToken.getExpiresAt() * 1000, providerId);
}
- private static OAuthUserInfo getAsOAuthUserInfo(UserInfo userInfo) {
+ private OAuthUserInfo getAsOAuthUserInfo(AccessToken accessToken) {
+ UserInfo userInfo = accessToken.getUserInfo();
+ userInfo.setDisplayName(
+ uaaClient.getDisplayName(accessToken.getValue()));
return new OAuthUserInfo(userInfo.getExternalId(),
userInfo.getUserName(), userInfo.getEmailAddress(),
userInfo.getDisplayName(), null);
diff --git a/src/main/java/com/googlesource/gerrit/plugins/cfoauth/InitOAuthConfig.java b/src/main/java/com/googlesource/gerrit/plugins/cfoauth/InitOAuthConfig.java
index c532357..c2c54ff 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/cfoauth/InitOAuthConfig.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/cfoauth/InitOAuthConfig.java
@@ -36,6 +36,7 @@
private final InitFlags flags;
private final ConsoleUI ui;
private final Section cfg;
+ private final String redirectUrl;
@Inject
InitOAuthConfig(InitFlags flags, ConsoleUI ui,
@@ -44,6 +45,7 @@
this.flags = flags;
this.ui = ui;
this.cfg = sections.get(PLUGIN_SECTION, pluginName);
+ this.redirectUrl = getRedirectUrl(sections);
}
@Override
@@ -60,7 +62,13 @@
cfg.set(VERIFIY_SIGNATURES, Boolean.toString(
ui.yesno(true, "Verify token signatures", VERIFIY_SIGNATURES)));
flags.cfg.setString("auth", null, "logouturl", CharMatcher.is('/')
- .trimTrailingFrom(cfg.get(SERVER_URL)) + "/logout.do");
+ .trimTrailingFrom(cfg.get(SERVER_URL)) + "/logout.do?redirect="
+ + redirectUrl);
+ }
+
+ private static String getRedirectUrl(Section.Factory sections) {
+ Section gerrit = sections.get("gerrit", null);
+ return CharMatcher.is('/').trimTrailingFrom(gerrit.get("canonicalWebUrl"));
}
@Override