切换中间件,防止串应用

This commit is contained in:
wuyanwen
2020-02-18 14:44:16 +08:00
parent fd1798875f
commit ebe5f5757a
3 changed files with 65 additions and 66 deletions

View File

@@ -99,9 +99,7 @@ class CatchAdminService extends Service
*/
protected function registerMiddleWares(): void
{
$this->app->middleware->import([
'catch_check_permission' => PermissionsMiddleware::class,
], 'route');
// todo
}
/**

View File

@@ -1,61 +1,61 @@
<?php
namespace catcher;
use app\ExceptionHandle;
use catcher\exceptions\CatchException;
use catcher\exceptions\FailedException;
use think\db\exception\DataNotFoundException;
use think\db\exception\ModelNotFoundException;
use think\exception\Handle;
use think\exception\HttpException;
use think\exception\HttpResponseException;
use think\exception\ValidateException;
use think\Response;
use Throwable;
class CatchExceptionHandle extends Handle
{
/**
* 不需要记录信息(日志)的异常类列表
* @var array
*/
protected $ignoreReport = [
HttpException::class,
HttpResponseException::class,
ModelNotFoundException::class,
DataNotFoundException::class,
ValidateException::class,
];
/**
* 记录异常信息(包括日志或者其它方式记录)
*
* @access public
* @param Throwable $exception
* @return void
*/
public function report(Throwable $exception): void
{
// 使用内置的方式记录异常日志
parent::report($exception);
}
/**
* Render an exception into an HTTP response.
*
* @access public
* @param \think\Request $request
* @param Throwable $e
* @return Response
* @throws \Exception
*/
public function render($request, Throwable $e): Response
{
// 其他错误交给系统处理
if (!$e instanceof CatchException) {
$e = new FailedException($e->getMessage());
}
return parent::render($request, $e);
}
}
<?php
namespace catcher;
use app\ExceptionHandle;
use catcher\exceptions\CatchException;
use catcher\exceptions\FailedException;
use think\db\exception\DataNotFoundException;
use think\db\exception\ModelNotFoundException;
use think\exception\Handle;
use think\exception\HttpException;
use think\exception\HttpResponseException;
use think\exception\ValidateException;
use think\Response;
use Throwable;
class CatchExceptionHandle extends Handle
{
/**
* 不需要记录信息(日志)的异常类列表
* @var array
*/
protected $ignoreReport = [
HttpException::class,
HttpResponseException::class,
ModelNotFoundException::class,
DataNotFoundException::class,
ValidateException::class,
];
/**
* 记录异常信息(包括日志或者其它方式记录)
*
* @access public
* @param Throwable $exception
* @return void
*/
public function report(Throwable $exception): void
{
// 使用内置的方式记录异常日志
parent::report($exception);
}
/**
* Render an exception into an HTTP response.
*
* @access public
* @param \think\Request $request
* @param Throwable $e
* @return Response
* @throws \Exception
*/
public function render($request, Throwable $e): Response
{
// 其他错误交给系统处理
if (!$e instanceof CatchException) {
$e = new FailedException($e->getMessage());
}
return parent::render($request, $e);
}
}

View File

@@ -3,6 +3,7 @@ declare (strict_types = 1);
namespace catcher\event;
use catchAdmin\permissions\PermissionsMiddleware;
use catchAdmin\user\AuthTokenMiddleware;
use catcher\CatchAdmin;
use think\Route;
@@ -28,13 +29,13 @@ class LoadModuleRoutes
foreach ($routes as $route) {
include $route;
}
})->middleware([AuthTokenMiddleware::class]);
})->middleware([AuthTokenMiddleware::class, PermissionsMiddleware::class]);
} else {
$router->group(function () use ($router, $routes) {
foreach ($routes as $route) {
include $route;
}
})->middleware([AuthTokenMiddleware::class]);
})->middleware([AuthTokenMiddleware::class, PermissionsMiddleware::class]);
}
// 单独加载登录