|
@@ -12,6 +12,7 @@ import javax.servlet.http.HttpServletResponse;
|
|
import com.chelvc.framework.base.context.ApplicationContextHolder;
|
|
import com.chelvc.framework.base.context.ApplicationContextHolder;
|
|
import com.chelvc.framework.base.model.Result;
|
|
import com.chelvc.framework.base.model.Result;
|
|
import com.chelvc.framework.base.util.HttpUtils;
|
|
import com.chelvc.framework.base.util.HttpUtils;
|
|
|
|
+import com.chelvc.framework.base.util.ObjectUtils;
|
|
import com.chelvc.framework.base.util.StringUtils;
|
|
import com.chelvc.framework.base.util.StringUtils;
|
|
import com.chelvc.framework.security.config.SecurityProperties;
|
|
import com.chelvc.framework.security.config.SecurityProperties;
|
|
import com.chelvc.framework.security.context.SecurityContextHolder;
|
|
import com.chelvc.framework.security.context.SecurityContextHolder;
|
|
@@ -42,19 +43,19 @@ public class PermissionValidateInterceptor implements Filter {
|
|
// 判断是否拥有访问权限
|
|
// 判断是否拥有访问权限
|
|
SecurityProperties properties = ApplicationContextHolder.getBean(SecurityProperties.class);
|
|
SecurityProperties properties = ApplicationContextHolder.getBean(SecurityProperties.class);
|
|
SecurityProperties.Permission config = properties.getPermission();
|
|
SecurityProperties.Permission config = properties.getPermission();
|
|
- if (StringUtils.isEmpty(config.getPermit()) && StringUtils.isEmpty(config.getRequire())) {
|
|
|
|
|
|
+ if (ObjectUtils.isEmpty(config.getPermit()) && ObjectUtils.isEmpty(config.getRequire())) {
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
String method = request.getMethod(), uri = HttpUtils.getRequestURI(request);
|
|
String method = request.getMethod(), uri = HttpUtils.getRequestURI(request);
|
|
- if (StringUtils.isPath(config.getPermit(), uri) || (StringUtils.nonEmpty(config.getRequire())
|
|
|
|
- && !StringUtils.isPath(config.getRequire(), uri))
|
|
|
|
|
|
+ if (StringUtils.isPath(uri, config.getPermit()) || (ObjectUtils.nonEmpty(config.getRequire())
|
|
|
|
+ && !StringUtils.isPath(uri, config.getRequire()))
|
|
|| SecurityContextHolder.hasPermission(method, uri)) {
|
|
|| SecurityContextHolder.hasPermission(method, uri)) {
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
|
|
// 无访问权限
|
|
// 无访问权限
|
|
log.warn(HttpUtils.getExceptionMessage(request, HttpStatus.FORBIDDEN, "Permission denied"));
|
|
log.warn(HttpUtils.getExceptionMessage(request, HttpStatus.FORBIDDEN, "Permission denied"));
|
|
- if (StringUtils.isPath(config.getIgnore(), uri)) {
|
|
|
|
|
|
+ if (StringUtils.isPath(uri, config.getIgnore())) {
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
response.setStatus(HttpStatus.FORBIDDEN.value());
|
|
response.setStatus(HttpStatus.FORBIDDEN.value());
|