Commit c83e45e8 authored by Van's avatar Van

Merge remote-tracking branch 'origin/3.1.0-dev' into 3.1.0-dev

parents 7f04e27b 61629ab5
...@@ -22,11 +22,16 @@ package org.b3log.solo.model; ...@@ -22,11 +22,16 @@ package org.b3log.solo.model;
* *
* @author <a href="http://88250.b3log.org">Liang Ding</a> * @author <a href="http://88250.b3log.org">Liang Ding</a>
* @author <a href="https://hacpai.com/member/e">Dongxu Wang</a> * @author <a href="https://hacpai.com/member/e">Dongxu Wang</a>
* @version 1.7.0.2, Feb 11, 2019 * @version 1.7.0.3, Feb 27, 2019
* @since 0.3.1 * @since 0.3.1
*/ */
public final class Common { public final class Common {
/**
* Key of URL.
*/
public static final String URL = "url";
/** /**
* Key of referer. * Key of referer.
*/ */
......
...@@ -34,7 +34,6 @@ import org.b3log.latke.servlet.annotation.RequestProcessing; ...@@ -34,7 +34,6 @@ import org.b3log.latke.servlet.annotation.RequestProcessing;
import org.b3log.latke.servlet.annotation.RequestProcessor; import org.b3log.latke.servlet.annotation.RequestProcessor;
import org.b3log.latke.util.Requests; import org.b3log.latke.util.Requests;
import org.b3log.latke.util.URLs; import org.b3log.latke.util.URLs;
import org.b3log.solo.model.Common;
import org.b3log.solo.model.Option; import org.b3log.solo.model.Option;
import org.b3log.solo.model.UserExt; import org.b3log.solo.model.UserExt;
import org.b3log.solo.service.*; import org.b3log.solo.service.*;
...@@ -48,23 +47,23 @@ import java.util.Map; ...@@ -48,23 +47,23 @@ import java.util.Map;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
/** /**
* OAuth GitHub processor. * OAuth processor.
* <ul> * <ul>
* <li>Redirects to GitHub auth page (/oauth/github/redirect), GET</li> * <li>Redirects to auth page (/oauth/github/redirect), GET</li>
* <li>GitHub callback (/oauth/github), GET</li> * <li>OAuth callback (/oauth/github), GET</li>
* </ul> * </ul>
* *
* @author <a href="http://88250.b3log.org">Liang Ding</a> * @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.0.0.4, Feb 15, 2019 * @version 1.0.0.5, Feb 27, 2019
* @since 2.9.5 * @since 2.9.5
*/ */
@RequestProcessor @RequestProcessor
public class OAuthGitHubProcessor { public class OAuthProcessor {
/** /**
* Logger. * Logger.
*/ */
private static final Logger LOGGER = Logger.getLogger(OAuthGitHubProcessor.class); private static final Logger LOGGER = Logger.getLogger(OAuthProcessor.class);
/** /**
* OAuth parameters - state. * OAuth parameters - state.
...@@ -120,7 +119,7 @@ public class OAuthGitHubProcessor { ...@@ -120,7 +119,7 @@ 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 HttpResponse res = HttpRequest.get("https://hacpai.com/oauth/solo/client").trustAllCerts(true). final HttpResponse res = HttpRequest.get("https://hacpai.com/oauth/solo/client2").trustAllCerts(true).
connectionTimeout(3000).timeout(7000).header("User-Agent", Solos.USER_AGENT).send(); connectionTimeout(3000).timeout(7000).header("User-Agent", Solos.USER_AGENT).send();
if (HttpServletResponse.SC_OK != res.statusCode()) { if (HttpServletResponse.SC_OK != res.statusCode()) {
LOGGER.log(Level.ERROR, "Gets oauth client id failed: " + res.toString()); LOGGER.log(Level.ERROR, "Gets oauth client id failed: " + res.toString());
...@@ -136,7 +135,9 @@ public class OAuthGitHubProcessor { ...@@ -136,7 +135,9 @@ public class OAuthGitHubProcessor {
return; return;
} }
final String clientId = result.optString(Common.DATA); final JSONObject data = result.optJSONObject(Keys.DATA);
final String clientId = data.optString("clientId");
final String loginAuthURL = data.optString("loginAuthURL");
String referer = context.param("referer"); String referer = context.param("referer");
if (StringUtils.isBlank(referer)) { if (StringUtils.isBlank(referer)) {
...@@ -146,7 +147,7 @@ public class OAuthGitHubProcessor { ...@@ -146,7 +147,7 @@ public class OAuthGitHubProcessor {
final String state = referer + ":::" + RandomStringUtils.randomAlphanumeric(16) + ":::cb=" + cb + ":::"; final String state = referer + ":::" + RandomStringUtils.randomAlphanumeric(16) + ":::cb=" + cb + ":::";
STATES.put(state, URLs.encode(state)); STATES.put(state, URLs.encode(state));
final String path = "https://github.com/login/oauth/authorize" + "?client_id=" + clientId + "&state=" + state final String path = loginAuthURL + "?client_id=" + clientId + "&state=" + state
+ "&scope=public_repo,read:user,user:email,user:follow"; + "&scope=public_repo,read:user,user:email,user:follow";
context.sendRedirect(path); context.sendRedirect(path);
......
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