satisfy problem

Igor Sysoev igor at sysoev.ru
Mon Apr 11 14:19:34 MSD 2011


On Mon, Apr 11, 2011 at 02:11:58PM +0400, Igor Sysoev wrote:
> On Fri, Apr 08, 2011 at 12:16:34PM +0800, lhmwzy wrote:
> > another problem:
> > 
> > when use:
> >        location ^~ /ks/admin
> >        {
> >                satisfy any;
> >                allow 10.68.136.241/32;
> >                allow 10.66.23.80/32;
> >                deny all;
> >                auth_basic "passwd";
> >                auth_basic_user_file ksadminpasswd;
> >       }
> > then the 401 error page can not be customized,only show the default
> > 401error page:
> > 
> > "401 Authorization Required
> > -------------------------------------------------------------------------------
> > nginx/0.9.7
> > ".
> 
> The attached patch should fix the bug.

A new better patch.


-- 
Igor Sysoev
http://sysoev.ru/en/
-------------- next part --------------
Index: src/http/ngx_http_core_module.c
===================================================================
--- src/http/ngx_http_core_module.c	(revision 3886)
+++ src/http/ngx_http_core_module.c	(working copy)
@@ -1108,17 +1108,21 @@
 ngx_http_core_post_access_phase(ngx_http_request_t *r,
     ngx_http_phase_handler_t *ph)
 {
+    ngx_int_t  access_code;
+
     ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
                    "post access phase: %ui", r->phase_handler);
 
-    if (r->access_code) {
+    access_code = r->access_code;
 
-        if (r->access_code == NGX_HTTP_FORBIDDEN) {
+    if (access_code) {
+        if (access_code == NGX_HTTP_FORBIDDEN) {
             ngx_log_error(NGX_LOG_ERR, r->connection->log, 0,
                           "access forbidden by rule");
         }
 
-        ngx_http_finalize_request(r, r->access_code);
+        r->access_code = 0;
+        ngx_http_finalize_request(r, access_code);
         return NGX_OK;
     }
 


More information about the nginx mailing list