Commit ef2fd82d authored by beilang's avatar beilang

2023-01-03

parent d2f30251
......@@ -14,7 +14,7 @@ import javax.servlet.http.HttpServletRequest;
/**
* 只要类的注解上有这些注解。那么发生的异常都能被捕获到
* 全局统一异常处理
* @author Tao
*/
@ControllerAdvice(basePackages = "cn.sc.web.admin", annotations = {RestController.class, Controller.class})
......@@ -30,4 +30,15 @@ public class GlobalExceptionHandler {
return new ModelAndView("nauth");
}
@ExceptionHandler(Exception.class)
public Object exceptionHandle(Exception e, HttpServletRequest request) {
if (ServletUtils.isAjaxRequest(request)) {
return Result.error();
}
return new ModelAndView("500");
}
}
......@@ -10,19 +10,20 @@ import org.apache.shiro.web.mgt.WebSecurityManager;
import org.apache.shiro.web.servlet.AbstractShiroFilter;
import org.apache.shiro.mgt.SecurityManager;
import org.springframework.beans.factory.BeanInitializationException;
import javax.servlet.Filter;
import java.util.Map;
/**
* 自定义ShiroFilterFactoryBean解决中文路径问题
*
* @author Tao
* @date 2023/11/24
*/
public class CustomShiroFilterFactoryBean extends ShiroFilterFactoryBean {
@Override
public Class<MySpringShiroFilter> getObjectType()
{
public Class<MySpringShiroFilter> getObjectType() {
return MySpringShiroFilter.class;
}
......@@ -30,14 +31,12 @@ public class CustomShiroFilterFactoryBean extends ShiroFilterFactoryBean {
protected AbstractShiroFilter createInstance() throws Exception {
SecurityManager securityManager = getSecurityManager();
if (securityManager == null)
{
if (securityManager == null) {
String msg = "SecurityManager property must be set.";
throw new BeanInitializationException(msg);
}
if (!(securityManager instanceof WebSecurityManager))
{
if (!(securityManager instanceof WebSecurityManager)) {
String msg = "The security manager does not implement the WebSecurityManager interface.";
throw new BeanInitializationException(msg);
}
......@@ -51,8 +50,7 @@ public class CustomShiroFilterFactoryBean extends ShiroFilterFactoryBean {
Map<String, Filter> filterMap = manager.getFilters();
Filter invalidRequestFilter = filterMap.get(DefaultFilter.invalidRequest.name());
if (invalidRequestFilter instanceof InvalidRequestFilter)
{
if (invalidRequestFilter instanceof InvalidRequestFilter) {
// 此处是关键,设置false跳过URL携带中文400,servletPath中文校验bug
((InvalidRequestFilter) invalidRequestFilter).setBlockNonAscii(false);
}
......@@ -64,17 +62,12 @@ public class CustomShiroFilterFactoryBean extends ShiroFilterFactoryBean {
}
private static final class MySpringShiroFilter extends AbstractShiroFilter {
protected MySpringShiroFilter(WebSecurityManager webSecurityManager, FilterChainResolver resolver)
{
if (webSecurityManager == null)
{
protected MySpringShiroFilter(WebSecurityManager webSecurityManager, FilterChainResolver resolver) {
if (webSecurityManager == null) {
throw new IllegalArgumentException("WebSecurityManager property cannot be null.");
}
else
{
} else {
this.setSecurityManager(webSecurityManager);
if (resolver != null)
{
if (resolver != null) {
this.setFilterChainResolver(resolver);
}
}
......
......@@ -32,7 +32,7 @@ public class UserRealm extends AuthorizingRealm {
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token)
throws AuthenticationException {
UserToken userToken = (UserToken)token;
UserToken userToken = (UserToken) token;
String loginName = userToken.getUsername();
String password = new String(userToken.getPassword());
......
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ include file="base.jsp" %>
<html>
<head>
<title>系统错误</title>
</head>
<style>
.content {
background: url('${ctx}/static/images/bg.jpg') center center no-repeat;
width: 100%;
height: 100%;
/* background-position-x: center; */
background-size: cover;
}
h2,p{
text-align: center;
font-size: 32px;
}
h2{
margin-top: 100px;
}
p{
margin-top: 25px;
}
p a{
font-size: 16px;
color: #fff;
}
</style>
<body>
<div class="content">
<div class="content_top"></div>
<h2>很抱歉,当您看到这个页面表示系统发生错误,您可点击下方按钮返回首页</h2>
<p><a href="${ctx}">返回首页</a></p>
</div>
</body>
</html>
......@@ -133,7 +133,7 @@
},{
top: '6.05rem',
left: '10.35rem',
gbid: '31011300001320000032'
gbid: '31011300001320000033'
},{
top: '0.8rem',
left: '10.3rem',
......
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