前置filter
<h4>HTTP前置filter实例</h4>
<pre><code class="language-java">@Component
public class MyMessageFilter implements HttpMessageFilter {
private boolean isShutdown = false;
public ResultStatus filter(ChannelHandlerContext ctx, FullHttpRequest req) {
ResultStatus resultStatus = new ResultStatus();
// 0) 系统正在维护
if(isShutdown&&
(!UriUtil.parseUri(req.uri()).equals("/login/thirdPartyLogin")||
!UriUtil.parseUri(req.uri()).equals("/login/getSession")||
!UriUtil.parseUri(req.uri()).equals("/notice/getNotice"))){
resultStatus.setSuccess(false);
resultStatus.setResponseStatus(MyHttpResponseStatus.SERVERSHUTDOWN);
}
resultStatus.setSuccess(true);
return resultStatus;
}
}</code></pre>
<h4>Remotecall前置filter实例</h4>
<pre><code class="language-java">@Component
public class MyRemoteCallFilter implements RemoteCallFilter {
@Override
public ResultStatus filter(ChannelHandlerContext ctx, FullHttpRequest req) {
ResultStatus resultStatus = new ResultStatus();
resultStatus.setSuccess(true);
return resultStatus;
}
}</code></pre>
<p>说明:ResultStatus.success为true的时候则放行。为false的时候则返回responseStatus中的错误码</p>