diff --git a/modules/core/src/main/java/com/jeesite/common/shiro/filter/FormAuthenticationFilter.java b/modules/core/src/main/java/com/jeesite/common/shiro/filter/FormAuthenticationFilter.java index a77fbbd9..d4b52e36 100644 --- a/modules/core/src/main/java/com/jeesite/common/shiro/filter/FormAuthenticationFilter.java +++ b/modules/core/src/main/java/com/jeesite/common/shiro/filter/FormAuthenticationFilter.java @@ -240,11 +240,11 @@ public class FormAuthenticationFilter extends org.apache.shiro.web.filter.authc. protected boolean onLoginFailure(AuthenticationToken token, AuthenticationException e, ServletRequest request, ServletResponse response) { String className = e.getClass().getName(), message = ""; if (IncorrectCredentialsException.class.getName().equals(className) || UnknownAccountException.class.getName().equals(className)) { - message = "账号或密码错误, 请重试."; + message = Global.getText("sys.login.failure"); } else if (e.getMessage() != null && StringUtils.startsWith(e.getMessage(), "msg:")) { message = StringUtils.replace(e.getMessage(), "msg:", ""); } else { - message = "对不起,系统遇见了点问题,请稍后再试!"; + message = Global.getText("sys.login.error"); logger.error(message, e); // 输出到日志文件 } request.setAttribute(getFailureKeyAttribute(), className); diff --git a/modules/core/src/main/java/com/jeesite/common/shiro/filter/LogoutFilter.java b/modules/core/src/main/java/com/jeesite/common/shiro/filter/LogoutFilter.java index 4fd9c932..9abfc69b 100644 --- a/modules/core/src/main/java/com/jeesite/common/shiro/filter/LogoutFilter.java +++ b/modules/core/src/main/java/com/jeesite/common/shiro/filter/LogoutFilter.java @@ -37,7 +37,8 @@ public class LogoutFilter extends org.apache.shiro.web.filter.authc.LogoutFilter //try/catch added for SHIRO-298: try { // 记录用户退出日志 - LogUtils.saveLog(UserUtils.getUser(), ServletUtils.getRequest(), "系统退出", Log.TYPE_LOGIN_LOGOUT); + LogUtils.saveLog(UserUtils.getUser(), ServletUtils.getRequest(), + "系统退出", Log.TYPE_LOGIN_LOGOUT); // 退出登录 subject.logout(); } catch (SessionException ise) { @@ -46,7 +47,8 @@ public class LogoutFilter extends org.apache.shiro.web.filter.authc.LogoutFilter // 如果是Ajax请求,返回Json字符串。 if (ServletUtils.isAjaxRequest((HttpServletRequest)request)){ - ServletUtils.renderResult((HttpServletResponse)response, Global.TRUE, "退出成功!"); + ServletUtils.renderResult((HttpServletResponse)response, + Global.TRUE, Global.getText("sys.logout.success")); return false; } diff --git a/modules/core/src/main/java/com/jeesite/modules/sys/web/LoginController.java b/modules/core/src/main/java/com/jeesite/modules/sys/web/LoginController.java index 9e7a12a0..8d07130e 100644 --- a/modules/core/src/main/java/com/jeesite/modules/sys/web/LoginController.java +++ b/modules/core/src/main/java/com/jeesite/modules/sys/web/LoginController.java @@ -104,7 +104,7 @@ public class LoginController extends BaseController{ // 如果是Ajax请求,返回Json字符串。 if (ServletUtils.isAjaxRequest((HttpServletRequest)request)){ model.addAttribute("result", "login"); - model.addAttribute("message", text("未登录或登录超时。请重新登录,谢谢!")); + model.addAttribute("message", text("sys.login.notLongIn")); return ServletUtils.renderObject(response, model); } @@ -255,9 +255,9 @@ public class LoginController extends BaseController{ if (loginInfo.getParam("lang") != null){ Global.setLang(loginInfo.getParam("lang"), request, response); } - model.addAttribute("message", text("登录成功!")); + model.addAttribute("message", text("sys.login.success")); }else{ - model.addAttribute("message", text("获取信息成功!")); + model.addAttribute("message", text("sys.login.getInfo")); } model.addAttribute("sessionid", (String)session.getId()); diff --git a/modules/core/src/main/resources/i18n/core/i18n_en.properties b/modules/core/src/main/resources/i18n/core/i18n_en.properties new file mode 100644 index 00000000..4817e3f3 --- /dev/null +++ b/modules/core/src/main/resources/i18n/core/i18n_en.properties @@ -0,0 +1,27 @@ + +sys.login.notLongIn=No login or login timeout.Please login again, thank you! +sys.login.success=Login successful! +sys.login.getInfo=Get info successful! +sys.login.failure=Account or password error, please try again. +sys.login.error=Sorry, system error. Please try again later. +sys.logout.success=Logout successful! + +sys.error.400.title=Request parameter error +sys.error.400.message=Request parameter error, server cannot parse. +sys.error.403.title=Insufficient permissions +sys.error.403.message=Your permissions are not sufficient! +sys.error.404.title=Page doesn't exist +sys.error.404.message=The page you visited does not exist! +sys.error.500.title=Internal system error +sys.error.500.message=The page you visited error! +sys.error.returnButton=Previous page + +# #### 学习、举例 #### # + +#没有参数=No parameters +#有\ {0}\ 个参数= There are {0} parameters + +# #### 测试视图写法 #### # + +# ${text('没有参数')} +# ${text('有\ {0}\ 个参数', 3)} diff --git a/modules/core/src/main/resources/i18n/core/i18n_zh_CN.properties b/modules/core/src/main/resources/i18n/core/i18n_zh_CN.properties new file mode 100644 index 00000000..8395444b --- /dev/null +++ b/modules/core/src/main/resources/i18n/core/i18n_zh_CN.properties @@ -0,0 +1,17 @@ + +sys.login.notLongIn=未登录或登录超时。请重新登录,谢谢! +sys.login.success=登录成功! +sys.login.getInfo=获取信息成功! +sys.login.failure=账号或密码错误,请重试。 +sys.login.error=对不起,系统遇见了点问题,请稍后再试! +sys.logout.success=退出成功! + +sys.error.400.title=请求参数错误 +sys.error.400.message=请求参数错误,服务器无法解析。 +sys.error.403.title=操作权限不足 +sys.error.403.message=您的操作权限不足! +sys.error.404.title=页面不存在 +sys.error.404.message=您访问的页面不存在! +sys.error.500.title=系统内部错误 +sys.error.500.message=您访问的页面出错啦! +sys.error.returnButton=返回上一页 diff --git a/modules/core/src/main/resources/i18n/sys/i18n_en.properties b/modules/core/src/main/resources/i18n/sys/i18n_en.properties deleted file mode 100644 index 66b0ab29..00000000 --- a/modules/core/src/main/resources/i18n/sys/i18n_en.properties +++ /dev/null @@ -1,8 +0,0 @@ -没有参数=No parameters -有\ {0}\ 个参数= There are {0} parameters - - -# 测试视图写法 - -# ${text('没有参数')} -# ${text('有\ {0}\ 个参数', 3)} diff --git a/modules/core/src/main/resources/i18n/sys/i18n_zh_CN.properties b/modules/core/src/main/resources/i18n/sys/i18n_zh_CN.properties deleted file mode 100644 index e69de29b..00000000 diff --git a/modules/core/src/main/resources/views/error/400.html b/modules/core/src/main/resources/views/error/400.html new file mode 100644 index 00000000..cc690d3d --- /dev/null +++ b/modules/core/src/main/resources/views/error/400.html @@ -0,0 +1,57 @@ +<% +@servlet.getResponse().setStatus(403); + +var message = @ObjectUtils.toString(@request.getAttribute('message')); + +if (isBlank(message)){ + var ex = @ExceptionUtils.getThrowable(request); + if (ex != null){ + if(@StringUtils.startsWith(@ex.getMessage(), 'msg:')){ + message = @StringUtils.replace(@ex.getMessage(), 'msg:', ''); + }else if (ex.class.name == 'org.springframework.validation.BindException'){ + for (var e in ex.globalErrors){ + message = message + '☆' + e.defaultMessage + '(' + e.objectName + ')
'; + } + for (var e in ex.fieldErrors){ + message = message + '☆' + e.defaultMessage + '(' + e.field + ')
'; + } + }else if (ex.class.name == 'javax.validation.ConstraintViolationException'){ + for (var v in ex.constraintViolations) { + message = message + '☆' + v.message + '(' + v.propertyPath + ')
'; + } + }else{ + message = message + ex.message; + } + @org.slf4j.LoggerFactory.getLogger('error/400').info(ex.message, ex); + } +} + +if (isBlank(message)){ + message = text('sys.error.400.message'); +} + +// 如果是异步请求或是手机端,则直接返回信息 +if (@ServletUtils.isAjaxRequest(request)) { + print(message); +} + +// 输出异常信息页面 +else { +%> +<% layout('/layouts/default.html', {title: '400 - '+text('sys.error.400.title')}){ %> + +
+
400
+
+

${text('sys.error.400.title')}

+

${message}

+ +
+ +
+<% } %> +<% } %> \ No newline at end of file diff --git a/modules/core/src/main/resources/views/error/403.html b/modules/core/src/main/resources/views/error/403.html index 8110e30d..b8090baa 100644 --- a/modules/core/src/main/resources/views/error/403.html +++ b/modules/core/src/main/resources/views/error/403.html @@ -13,7 +13,7 @@ if (isBlank(message)){ } if (isBlank(message)){ - message = "您的操作权限不足!"; + message = text('sys.error.403.message'); } // 如果是异步请求或是手机端,则直接返回信息 @@ -24,7 +24,7 @@ if (@ServletUtils.isAjaxRequest(request)) { // 输出异常信息页面 else { %> -<% layout('/layouts/default.html', {title: '403 - 操作权限不足'}){ %> +<% layout('/layouts/default.html', {title: '403 - '+text('sys.error.403.title')}){ %>
403
@@ -32,7 +32,7 @@ else {

${message}

很抱歉,您没有权限访问此页面,若有疑问请联系管理员。

+ class="fa fa-reply-all"> ${text('sys.error.returnButton')}