Commit 3d127489 authored by Liang Ding's avatar Liang Ding

🎨 #12645

parent 94257e6b
...@@ -121,7 +121,11 @@ public class OAuthGitHubProcessor { ...@@ -121,7 +121,11 @@ public class OAuthGitHubProcessor {
*/ */
@RequestProcessing(value = "/oauth/github/redirect", method = HttpMethod.GET) @RequestProcessing(value = "/oauth/github/redirect", method = HttpMethod.GET)
public void redirectGitHub(final RequestContext context) { public void redirectGitHub(final RequestContext context) {
final String state = Latkes.getServePath() + ":::" + RandomStringUtils.randomAlphanumeric(16); String referer = context.header("referer");
if (StringUtils.isBlank(referer)) {
referer = Latkes.getServePath();
}
final String state = referer + ":::" + RandomStringUtils.randomAlphanumeric(16);
STATES.put(state, URLs.encode(state)); STATES.put(state, URLs.encode(state));
final String path = "https://github.com/login/oauth/authorize" + "?client_id=" + CLIENT_ID + "&state=" + state final String path = "https://github.com/login/oauth/authorize" + "?client_id=" + CLIENT_ID + "&state=" + state
...@@ -145,6 +149,8 @@ public class OAuthGitHubProcessor { ...@@ -145,6 +149,8 @@ public class OAuthGitHubProcessor {
return; return;
} }
STATES.remove(state); STATES.remove(state);
referer = URLs.decode(referer);
referer = StringUtils.substringBeforeLast(referer, ":::");
final String accessToken = context.param("ak"); final String accessToken = context.param("ak");
final JSONObject userInfo = GitHubs.getGitHubUserInfo(accessToken); final JSONObject userInfo = GitHubs.getGitHubUserInfo(accessToken);
...@@ -203,7 +209,7 @@ public class OAuthGitHubProcessor { ...@@ -203,7 +209,7 @@ public class OAuthGitHubProcessor {
user = userQueryService.getUserByEmailOrUserName(userName); user = userQueryService.getUserByEmailOrUserName(userName);
Solos.login(user, response); Solos.login(user, response);
context.sendRedirect(Latkes.getServePath()); context.sendRedirect(referer);
LOGGER.log(Level.INFO, "Logged in [email={0}, remoteAddr={1}] with GitHub oauth", userEmail, Requests.getRemoteAddr(request)); LOGGER.log(Level.INFO, "Logged in [email={0}, remoteAddr={1}] with GitHub oauth", userEmail, Requests.getRemoteAddr(request));
} }
} }
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
<div class="content-wrap"> <div class="content-wrap">
<div class="content"> <div class="content">
<div class="logo"> <div class="logo">
<a href="https://b3log.org" target="_blank"> <a href="https://solo.b3log.org" target="_blank">
<img width="128" border="0" alt="Solo" title="Solo" src="${staticServePath}/images/logo.png"/> <img width="128" border="0" alt="Solo" title="Solo" src="${staticServePath}/images/logo.png"/>
</a> </a>
</div> </div>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment