File tree Expand file tree Collapse file tree 1 file changed +6
-12
lines changed Expand file tree Collapse file tree 1 file changed +6
-12
lines changed Original file line number Diff line number Diff line change @@ -146,22 +146,16 @@ B 都在 C<access> 阶段注册了与访问控制相关的处理程序,那就
146146 satisfy all;
147147
148148 deny all;
149- auth_request /auth ;
149+ access_by_lua 'ngx.exit(ngx.OK)' ;
150150
151151 echo something important;
152152 }
153153
154- location /auth {
155- internal;
156- echo OK;
157- }
158-
159154这里,我们在 C</test> 接口中同时配置了 L<ngx_access> 模
160- 块和 L<ngx_auth_request > 模块,这样 C<access> 阶
155+ 块和 L<ngx_lua > 模块,这样 C<access> 阶
161156段就有这两个模块一起来做检验工作。其中,语句 C<deny all> 会让 L<ngx_access>
162- 模块的处理程序在这里总是会拒绝访问,而语句 C<auth_request /auth>
163- 则总是允许访问(因为 C</auth> 接口永远返回 C<200> 成功码的响应
164- )。当我们通过 L<ngx_core/satisfy> 指令配置了 C<all>
157+ 模块的处理程序在这里总是会拒绝访问,而语句 C<access_by_lua 'ngx.exit(ngx.OK)'>
158+ 则总是允许访问。当我们通过 L<ngx_core/satisfy> 指令配置了 C<all>
165159方式时,就需要 C<access> 阶段的所有模块都通过验证,但不幸的是,这里
166160L<ngx_access> 模块总是会拒绝访问,所以整个请求就会被拒:
167161
@@ -187,6 +181,6 @@ any>,则结果则会完全不同:
187181 something important
188182
189183即请求反而最终通过了验证。这是因为在 C<any> 方式下,C<access>
190- 阶段只要有一个模块通过了验证,就会认为请求整体通过了验证,而在上例中,L<ngx_auth_request >
191- 模块总是会通过验证的 。
184+ 阶段只要有一个模块通过了验证,就会认为请求整体通过了验证,而在上例中,L<ngx_lua >
185+ 模块的 L<ngx_lua/access_by_lua> 语句总是会通过验证的 。
192186
You can’t perform that action at this time.
0 commit comments