Commit c4d5cbe3 authored by Liang Ding's avatar Liang Ding

重构请求路由 #61

parent 68fbab4b
......@@ -73,7 +73,7 @@
</scm>
<properties>
<org.b3log.latke.version>3.2.3</org.b3log.latke.version>
<org.b3log.latke.version>3.2.4-SNAPSHOT</org.b3log.latke.version>
<jsoup.version>1.12.1</jsoup.version>
<flexmark.version>0.50.40</flexmark.version>
......
This diff is collapsed.
......@@ -30,7 +30,6 @@ import org.b3log.latke.event.Event;
import org.b3log.latke.event.EventManager;
import org.b3log.latke.http.RequestContext;
import org.b3log.latke.http.Response;
import org.b3log.latke.http.annotation.Before;
import org.b3log.latke.http.renderer.AbstractFreeMarkerRenderer;
import org.b3log.latke.ioc.Inject;
import org.b3log.latke.ioc.Singleton;
......@@ -61,11 +60,10 @@ import java.util.*;
* Admin console render processing.
*
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.7.0.18, Jan 25, 2020
* @version 2.0.0.0, Feb 9, 2020
* @since 0.4.1
*/
@Singleton
@Before(ConsoleAuthAdvice.class)
public class AdminConsole {
/**
......
......@@ -26,7 +26,6 @@ import org.b3log.latke.Keys;
import org.b3log.latke.Latkes;
import org.b3log.latke.http.Request;
import org.b3log.latke.http.RequestContext;
import org.b3log.latke.http.annotation.Before;
import org.b3log.latke.http.renderer.JsonRenderer;
import org.b3log.latke.ioc.Inject;
import org.b3log.latke.ioc.Singleton;
......@@ -50,11 +49,10 @@ import java.util.stream.Collectors;
* Article console request processing.
*
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.2.0.4, Jan 11, 2020
* @version 2.0.0.0, Feb 9, 2020
* @since 0.4.0
*/
@Singleton
@Before(ConsoleAuthAdvice.class)
public class ArticleConsole {
/**
......
......@@ -25,10 +25,9 @@ import org.apache.logging.log4j.Logger;
import org.b3log.latke.Keys;
import org.b3log.latke.Latkes;
import org.b3log.latke.http.RequestContext;
import org.b3log.latke.http.annotation.Before;
import org.b3log.latke.http.annotation.RequestProcessor;
import org.b3log.latke.http.renderer.JsonRenderer;
import org.b3log.latke.ioc.Inject;
import org.b3log.latke.ioc.Singleton;
import org.b3log.latke.service.LangPropsService;
import org.b3log.latke.service.ServiceException;
import org.b3log.latke.util.URLs;
......@@ -52,11 +51,10 @@ import java.util.Set;
*
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @author <a href="https://hacpai.com/member/lzh984294471">lzh984294471</a>
* @version 1.1.3.6, Sep 1, 2019
* @version 2.0.0.0, Feb 9, 2020
* @since 2.0.0
*/
@RequestProcessor
@Before(ConsoleAdminAuthAdvice.class)
@Singleton
public class CategoryConsole {
/**
......
......@@ -23,10 +23,9 @@ import org.apache.logging.log4j.Logger;
import org.b3log.latke.Keys;
import org.b3log.latke.Latkes;
import org.b3log.latke.http.RequestContext;
import org.b3log.latke.http.annotation.Before;
import org.b3log.latke.http.annotation.RequestProcessor;
import org.b3log.latke.http.renderer.JsonRenderer;
import org.b3log.latke.ioc.Inject;
import org.b3log.latke.ioc.Singleton;
import org.b3log.latke.service.LangPropsService;
import org.b3log.solo.model.Comment;
import org.b3log.solo.service.CommentMgmtService;
......@@ -40,11 +39,10 @@ import java.util.List;
* Comment console request processing.
*
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.1.0.0, Apr 18, 2019
* @version 2.0.0.0, Feb 9, 2020
* @since 0.4.0
*/
@RequestProcessor
@Before(ConsoleAuthAdvice.class)
@Singleton
public class CommentConsole {
/**
......
......@@ -17,32 +17,26 @@
*/
package org.b3log.solo.processor.console;
import org.b3log.latke.Keys;
import org.b3log.latke.http.RequestContext;
import org.b3log.latke.http.advice.ProcessAdvice;
import org.b3log.latke.http.advice.RequestProcessAdviceException;
import org.b3log.latke.ioc.Singleton;
import org.b3log.solo.util.Solos;
import org.json.JSONObject;
/**
* The common auth check before advice for admin console.
*
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.0.1.3, Oct 5, 2018
* @version 2.0.0.0, Feb 9, 2020
* @since 2.9.5
*/
@Singleton
public class ConsoleAdminAuthAdvice extends ProcessAdvice {
public class ConsoleAdminAuthAdvice {
@Override
public void doAdvice(final RequestContext context) throws RequestProcessAdviceException {
public void handle(final RequestContext context) {
if (!Solos.isAdminLoggedIn(context)) {
final JSONObject exception401 = new JSONObject();
exception401.put(Keys.MSG, "Unauthorized to request [" + context.requestURI() + "], please signin using admin account");
exception401.put(Keys.STATUS_CODE, 401);
throw new RequestProcessAdviceException(exception401);
context.sendError(401);
context.abort();
}
context.handle();
}
}
......@@ -17,10 +17,7 @@
*/
package org.b3log.solo.processor.console;
import org.b3log.latke.Keys;
import org.b3log.latke.http.RequestContext;
import org.b3log.latke.http.advice.ProcessAdvice;
import org.b3log.latke.http.advice.RequestProcessAdviceException;
import org.b3log.latke.ioc.Singleton;
import org.b3log.latke.model.Role;
import org.b3log.latke.model.User;
......@@ -31,30 +28,25 @@ import org.json.JSONObject;
* The common auth check before advice for admin console.
*
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.0.1.3, Feb 7, 2019
* @version 2.0.0.0, Feb 9, 2020
* @since 2.9.5
*/
@Singleton
public class ConsoleAuthAdvice extends ProcessAdvice {
public class ConsoleAuthAdvice {
@Override
public void doAdvice(final RequestContext context) throws RequestProcessAdviceException {
public void handle(final RequestContext context) {
final JSONObject currentUser = Solos.getCurrentUser(context.getRequest(), context.getResponse());
if (null == currentUser) {
final JSONObject exception401 = new JSONObject();
exception401.put(Keys.MSG, "Unauthorized to request [" + context.requestURI() + "], please signin");
exception401.put(Keys.STATUS_CODE, 401);
throw new RequestProcessAdviceException(exception401);
context.sendError(401);
context.abort();
}
final String userRole = currentUser.optString(User.USER_ROLE);
if (Role.VISITOR_ROLE.equals(userRole)) {
final JSONObject exception403 = new JSONObject();
exception403.put(Keys.MSG, "Forbidden to request [" + context.requestURI() + "]");
exception403.put(Keys.STATUS_CODE, 403);
throw new RequestProcessAdviceException(exception403);
context.sendError(403);
context.abort();
}
context.handle();
}
}
......@@ -24,10 +24,9 @@ import org.apache.logging.log4j.Logger;
import org.b3log.latke.Keys;
import org.b3log.latke.Latkes;
import org.b3log.latke.http.RequestContext;
import org.b3log.latke.http.annotation.Before;
import org.b3log.latke.http.annotation.RequestProcessor;
import org.b3log.latke.http.renderer.JsonRenderer;
import org.b3log.latke.ioc.Inject;
import org.b3log.latke.ioc.Singleton;
import org.b3log.latke.service.LangPropsService;
import org.b3log.solo.model.Common;
import org.b3log.solo.model.Link;
......@@ -41,11 +40,10 @@ import org.json.JSONObject;
* Link console request processing.
*
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.0.1.4, Dec 11, 2018
* @version 2.0.0.0, Feb 9, 2020
* @since 0.4.0
*/
@RequestProcessor
@Before(ConsoleAdminAuthAdvice.class)
@Singleton
public class LinkConsole {
/**
......
......@@ -22,10 +22,9 @@ import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.b3log.latke.Keys;
import org.b3log.latke.http.RequestContext;
import org.b3log.latke.http.annotation.Before;
import org.b3log.latke.http.annotation.RequestProcessor;
import org.b3log.latke.http.renderer.JsonRenderer;
import org.b3log.latke.ioc.Inject;
import org.b3log.latke.ioc.Singleton;
import org.b3log.latke.service.LangPropsService;
import org.b3log.solo.service.ArchiveDateMgmtService;
import org.b3log.solo.service.TagMgmtService;
......@@ -35,10 +34,10 @@ import org.json.JSONObject;
* Other console request processing.
*
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.0.0.0, Mar 20, 2019
* @version 2.0.0.0, Feb 9, 2020
* @since 3.4.0
*/
@RequestProcessor
@Singleton
public class OtherConsole {
/**
......@@ -77,7 +76,6 @@ public class OtherConsole {
*
* @param context the specified request context
*/
@Before(ConsoleAdminAuthAdvice.class)
public void removeUnusedArchives(final RequestContext context) {
final JsonRenderer renderer = new JsonRenderer();
context.setRenderer(renderer);
......@@ -109,7 +107,6 @@ public class OtherConsole {
*
* @param context the specified request context
*/
@Before(ConsoleAdminAuthAdvice.class)
public void removeUnusedTags(final RequestContext context) {
final JsonRenderer renderer = new JsonRenderer();
context.setRenderer(renderer);
......
......@@ -24,10 +24,9 @@ import org.apache.logging.log4j.Logger;
import org.b3log.latke.Keys;
import org.b3log.latke.Latkes;
import org.b3log.latke.http.RequestContext;
import org.b3log.latke.http.annotation.Before;
import org.b3log.latke.http.annotation.RequestProcessor;
import org.b3log.latke.http.renderer.JsonRenderer;
import org.b3log.latke.ioc.Inject;
import org.b3log.latke.ioc.Singleton;
import org.b3log.latke.service.LangPropsService;
import org.b3log.latke.service.ServiceException;
import org.b3log.solo.model.Common;
......@@ -43,11 +42,10 @@ import org.json.JSONObject;
* Plugin console request processing.
*
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.0.0.12, Apr 22, 2019
* @version 2.0.0.0, Feb 9, 2020
* @since 0.4.0
*/
@RequestProcessor
@Before(ConsoleAdminAuthAdvice.class)
@Singleton
public class PageConsole {
/**
......
......@@ -23,10 +23,9 @@ import org.apache.logging.log4j.Logger;
import org.b3log.latke.Keys;
import org.b3log.latke.Latkes;
import org.b3log.latke.http.RequestContext;
import org.b3log.latke.http.annotation.Before;
import org.b3log.latke.http.annotation.RequestProcessor;
import org.b3log.latke.http.renderer.JsonRenderer;
import org.b3log.latke.ioc.Inject;
import org.b3log.latke.ioc.Singleton;
import org.b3log.latke.model.Plugin;
import org.b3log.latke.service.LangPropsService;
import org.b3log.solo.service.PluginMgmtService;
......@@ -41,11 +40,10 @@ import java.util.Map;
*
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @author <a href="https://hacpai.com/member/mainlove">Love Yao</a>
* @version 1.1.0.5, Dec 11, 2018
* @version 2.0.0.0, Feb 9, 2020
* @since 0.4.0
*/
@RequestProcessor
@Before(ConsoleAdminAuthAdvice.class)
@Singleton
public class PluginConsole {
/**
......
......@@ -22,10 +22,9 @@ import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.b3log.latke.Keys;
import org.b3log.latke.http.RequestContext;
import org.b3log.latke.http.annotation.Before;
import org.b3log.latke.http.annotation.RequestProcessor;
import org.b3log.latke.http.renderer.JsonRenderer;
import org.b3log.latke.ioc.Inject;
import org.b3log.latke.ioc.Singleton;
import org.b3log.latke.service.LangPropsService;
import org.b3log.latke.service.ServiceException;
import org.b3log.solo.model.Option;
......@@ -41,11 +40,10 @@ import org.json.JSONObject;
*
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @author <a href="https://github.com/hzchendou">hzchendou</a>
* @version 1.2.0.26, Jan 25, 2020
* @version 2.0.0.0, Feb 9, 2020
* @since 0.4.0
*/
@RequestProcessor
@Before(ConsoleAdminAuthAdvice.class)
@Singleton
public class PreferenceConsole {
/**
......
......@@ -22,10 +22,9 @@ import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.b3log.latke.Latkes;
import org.b3log.latke.http.RequestContext;
import org.b3log.latke.http.annotation.Before;
import org.b3log.latke.http.annotation.RequestProcessor;
import org.b3log.latke.http.renderer.TextHtmlRenderer;
import org.b3log.latke.ioc.Inject;
import org.b3log.latke.ioc.Singleton;
import org.b3log.latke.repository.*;
import org.b3log.solo.model.Option;
import org.b3log.solo.repository.ArchiveDateArticleRepository;
......@@ -44,11 +43,10 @@ import java.util.List;
* Provides patches on some special issues.
*
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.3.0.0, Nov 11, 2019
* @version 2.0.0.0, Feb 9, 2020
* @since 0.3.1
*/
@RequestProcessor
@Before(ConsoleAuthAdvice.class)
@Singleton
public class RepairConsole {
/**
......
......@@ -25,10 +25,9 @@ import org.b3log.latke.Latkes;
import org.b3log.latke.http.Cookie;
import org.b3log.latke.http.RequestContext;
import org.b3log.latke.http.Response;
import org.b3log.latke.http.annotation.Before;
import org.b3log.latke.http.annotation.RequestProcessor;
import org.b3log.latke.http.renderer.JsonRenderer;
import org.b3log.latke.ioc.Inject;
import org.b3log.latke.ioc.Singleton;
import org.b3log.latke.service.LangPropsService;
import org.b3log.latke.service.ServiceException;
import org.b3log.solo.model.Common;
......@@ -45,11 +44,10 @@ import java.util.Set;
* Skin console request processing.
*
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.0.0.0, Mar 29, 2019
* @version 2.0.0.0, Feb 9, 2020
* @since 3.5.0
*/
@RequestProcessor
@Before(ConsoleAdminAuthAdvice.class)
@Singleton
public class SkinConsole {
/**
......
......@@ -25,13 +25,10 @@ import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.b3log.latke.Latkes;
import org.b3log.latke.http.HttpMethod;
import org.b3log.latke.http.RequestContext;
import org.b3log.latke.http.annotation.Before;
import org.b3log.latke.http.annotation.RequestProcessing;
import org.b3log.latke.http.annotation.RequestProcessor;
import org.b3log.latke.ioc.BeanManager;
import org.b3log.latke.ioc.Inject;
import org.b3log.latke.ioc.Singleton;
import org.b3log.latke.service.LangPropsService;
import org.b3log.latke.util.CollectionUtils;
import org.b3log.latke.util.Strings;
......@@ -52,11 +49,10 @@ import java.util.List;
* Static site console request processing. HTML 静态站点生成 https://github.com/88250/solo/issues/19
*
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.0.0.1, Jan 14, 2020
* @version 2.0.0.0, Feb 9, 2020
* @since 3.9.0
*/
@RequestProcessor
@Before(ConsoleAdminAuthAdvice.class)
@Singleton
public class StaticSiteConsole {
/**
......@@ -75,7 +71,6 @@ public class StaticSiteConsole {
*
* @param context the specified request context
*/
@RequestProcessing(value = "/console/staticsite", method = HttpMethod.PUT)
public synchronized void genSite(final RequestContext context) {
try {
final JSONObject requestJSONObject = context.requestJSON();
......
......@@ -22,10 +22,9 @@ import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.b3log.latke.Keys;
import org.b3log.latke.http.RequestContext;
import org.b3log.latke.http.annotation.Before;
import org.b3log.latke.http.annotation.RequestProcessor;
import org.b3log.latke.http.renderer.JsonRenderer;
import org.b3log.latke.ioc.Inject;
import org.b3log.latke.ioc.Singleton;
import org.b3log.solo.model.Common;
import org.b3log.solo.model.Tag;
import org.b3log.solo.service.TagQueryService;
......@@ -38,10 +37,10 @@ import java.util.List;
* Tag console request processing.
*
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.0.0.3, Dec 11, 2018
* @version 2.0.0.0, Feb 9, 2020
* @since 0.4.0
*/
@RequestProcessor
@Singleton
public class TagConsole {
/**
......@@ -72,7 +71,6 @@ public class TagConsole {
*
* @param context the specified request context
*/
@Before(ConsoleAuthAdvice.class)
public void getTags(final RequestContext context) {
final JsonRenderer renderer = new JsonRenderer();
context.setRenderer(renderer);
......@@ -106,7 +104,6 @@ public class TagConsole {
*
* @param context the specified request context
*/
@Before(ConsoleAdminAuthAdvice.class)
public void getUnusedTags(final RequestContext context) {
final JsonRenderer renderer = new JsonRenderer();
context.setRenderer(renderer);
......
......@@ -24,10 +24,9 @@ import org.apache.logging.log4j.Logger;
import org.b3log.latke.Keys;
import org.b3log.latke.Latkes;
import org.b3log.latke.http.RequestContext;
import org.b3log.latke.http.annotation.Before;
import org.b3log.latke.http.annotation.RequestProcessor;
import org.b3log.latke.http.renderer.JsonRenderer;
import org.b3log.latke.ioc.Inject;
import org.b3log.latke.ioc.Singleton;
import org.b3log.latke.model.User;
import org.b3log.latke.service.LangPropsService;
import org.b3log.latke.service.ServiceException;
......@@ -42,10 +41,10 @@ import org.json.JSONObject;
*
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @author <a href="https://hacpai.com/member/DASHU">DASHU</a>
* @version 1.2.1.7, Mar 29, 2019
* @version 2.0.0.0, Feb 9, 2020
* @since 0.4.0
*/
@RequestProcessor
@Singleton
public class UserConsole {
/**
......@@ -99,7 +98,6 @@ public class UserConsole {
*
* @param context the specified request context
*/
@Before(ConsoleAdminAuthAdvice.class)
public void updateUser(final RequestContext context) {
final JsonRenderer renderer = new JsonRenderer();
context.setRenderer(renderer);
......@@ -135,7 +133,6 @@ public class UserConsole {
*
* @param context the specified request context
*/
@Before(ConsoleAdminAuthAdvice.class)
public void removeUser(final RequestContext context) {
final JsonRenderer renderer = new JsonRenderer();
context.setRenderer(renderer);
......@@ -182,7 +179,6 @@ public class UserConsole {
*
* @param context the specified request context
*/
@Before(ConsoleAdminAuthAdvice.class)
public void getUsers(final RequestContext context) {
final JsonRenderer renderer = new JsonRenderer();
context.setRenderer(renderer);
......@@ -229,7 +225,6 @@ public class UserConsole {
*
* @param context the specified request context
*/
@Before(ConsoleAdminAuthAdvice.class)
public void getUser(final RequestContext context) {
final JsonRenderer renderer = new JsonRenderer();
context.setRenderer(renderer);
......@@ -262,7 +257,6 @@ public class UserConsole {
*
* @param context the specified request context
*/
@Before(ConsoleAdminAuthAdvice.class)
public void changeUserRole(final RequestContext context) {
final JsonRenderer renderer = new JsonRenderer();
context.setRenderer(renderer);
......
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