Commit 0ec3ce37 authored by Liang Ding's avatar Liang Ding

🎨 细化 403 消息

parent 157cbf1e
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
package org.b3log.solo.processor; package org.b3log.solo.processor;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.b3log.latke.Keys;
import org.b3log.latke.ioc.Inject; import org.b3log.latke.ioc.Inject;
import org.b3log.latke.logging.Level; import org.b3log.latke.logging.Level;
import org.b3log.latke.logging.Logger; import org.b3log.latke.logging.Logger;
...@@ -43,7 +44,7 @@ import java.util.Map; ...@@ -43,7 +44,7 @@ import java.util.Map;
* Error processor. * Error processor.
* *
* @author <a href="http://88250.b3log.org">Liang Ding</a> * @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.0.1.7, Jan 25, 2019 * @version 1.0.1.8, Mar 4, 2019
* @since 0.4.5 * @since 0.4.5
*/ */
@RequestProcessor @RequestProcessor
...@@ -91,8 +92,7 @@ public class ErrorProcessor { ...@@ -91,8 +92,7 @@ public class ErrorProcessor {
if (StringUtils.equals("GET", context.method())) { if (StringUtils.equals("GET", context.method())) {
final String requestURI = context.requestURI(); final String requestURI = context.requestURI();
final String templateName = statusCode + ".ftl"; final String templateName = statusCode + ".ftl";
LOGGER.log(Level.TRACE, "Shows error page[requestURI={0}, templateName={1}]", LOGGER.log(Level.TRACE, "Shows error page [requestURI={0}, templateName={1}]", requestURI, templateName);
requestURI, templateName);
final AbstractFreeMarkerRenderer renderer = new SkinRenderer(context, "error/" + templateName); final AbstractFreeMarkerRenderer renderer = new SkinRenderer(context, "error/" + templateName);
final Map<String, Object> dataModel = renderer.getDataModel(); final Map<String, Object> dataModel = renderer.getDataModel();
...@@ -101,9 +101,11 @@ public class ErrorProcessor { ...@@ -101,9 +101,11 @@ public class ErrorProcessor {
dataModel.putAll(langs); dataModel.putAll(langs);
final JSONObject preference = optionQueryService.getPreference(); final JSONObject preference = optionQueryService.getPreference();
dataModelService.fillCommon(context, dataModel, preference); dataModelService.fillCommon(context, dataModel, preference);
final String msg = (String) context.attr(Keys.MSG);
dataModel.put(Keys.MSG, msg);
dataModel.put(Common.LOGIN_URL, userQueryService.getLoginURL(Common.ADMIN_INDEX_URI)); dataModel.put(Common.LOGIN_URL, userQueryService.getLoginURL(Common.ADMIN_INDEX_URI));
} catch (final Exception e) { } catch (final Exception e) {
LOGGER.log(Level.ERROR, e.getMessage(), e); LOGGER.log(Level.ERROR, "Shows error page failed", e);
context.sendError(HttpServletResponse.SC_NOT_FOUND); context.sendError(HttpServletResponse.SC_NOT_FOUND);
} }
......
...@@ -28,6 +28,7 @@ import org.b3log.latke.logging.Level; ...@@ -28,6 +28,7 @@ import org.b3log.latke.logging.Level;
import org.b3log.latke.logging.Logger; import org.b3log.latke.logging.Logger;
import org.b3log.latke.model.Role; import org.b3log.latke.model.Role;
import org.b3log.latke.model.User; import org.b3log.latke.model.User;
import org.b3log.latke.service.LangPropsService;
import org.b3log.latke.servlet.HttpMethod; import org.b3log.latke.servlet.HttpMethod;
import org.b3log.latke.servlet.RequestContext; import org.b3log.latke.servlet.RequestContext;
import org.b3log.latke.servlet.annotation.RequestProcessing; import org.b3log.latke.servlet.annotation.RequestProcessing;
...@@ -53,7 +54,7 @@ import java.util.concurrent.ConcurrentHashMap; ...@@ -53,7 +54,7 @@ import java.util.concurrent.ConcurrentHashMap;
* </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.6, Mar 2, 2019 * @version 1.0.0.7, Mar 4, 2019
* @since 2.9.5 * @since 2.9.5
*/ */
@RequestProcessor @RequestProcessor
...@@ -99,6 +100,12 @@ public class OAuthProcessor { ...@@ -99,6 +100,12 @@ public class OAuthProcessor {
@Inject @Inject
private InitService initService; private InitService initService;
/**
* Language service.
*/
@Inject
private LangPropsService langPropsService;
/** /**
* Redirects to auth page. * Redirects to auth page.
* *
...@@ -184,6 +191,7 @@ public class OAuthProcessor { ...@@ -184,6 +191,7 @@ public class OAuthProcessor {
user = userQueryService.getUserByName(userName); user = userQueryService.getUserByName(userName);
if (null == user) { if (null == user) {
if (!optionQueryService.allowRegister()) { if (!optionQueryService.allowRegister()) {
context.attr(Keys.MSG, langPropsService.get("notAllowRegisterLabel"));
context.sendError(HttpServletResponse.SC_FORBIDDEN); context.sendError(HttpServletResponse.SC_FORBIDDEN);
return; return;
......
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
<h2>403 Forbidden!</h2> <h2>403 Forbidden!</h2>
<img class="img-error" src="${staticServePath}/images/403.png" alt="403" title="403 Forbidden!" /> <img class="img-error" src="${staticServePath}/images/403.png" alt="403" title="403 Forbidden!" />
<div class="a-error"> <div class="a-error">
${msg!}
Return to <a href="${servePath}">Index</a>. Return to <a href="${servePath}">Index</a>.
</div> </div>
</@commonPage> </@commonPage>
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