---- oh...@cox.net wrote: 
> 
> Hi,
> 
> I have my small prototype module, which I implemented starting with the 
> mod_headers.c source, working.  The changes that I did to the original source 
> were to add some code in the insert_filter hook to inject an additional 
> header into the request.
> 
> That seems to work ok with a "vanilla" Apache configuration.
> 
> I want to be able to make my modified module work together with another 
> module, provided by Oracle (the Oracle Access Manager webgate, aka 
> "webgate").  
> 
> However, after I add the directives into the Apache httpd.conf to enable the 
> webgate, it appears that, on incoming requests, the webgate processing 
> occurs, but my code in the modified mod_headers module is not called at all 
> :(!!
> 
> 
> Here's the last part of my modified mod_headers.c:
> 
> static void register_hooks(apr_pool_t *p)
> {
>     printf("mod_headers-jl V0.13 - use LIBCURL instead of OAM ASDK-process 
> response from callCurl\n");
>     printf("In register_hooks\n");
>     ap_register_output_filter("FIXUP_HEADERS_OUT", ap_headers_output_filter,
>                               NULL, AP_FTYPE_CONTENT_SET);
>     ap_register_output_filter("FIXUP_HEADERS_ERR", ap_headers_error_filter,
>                               NULL, AP_FTYPE_CONTENT_SET);
>     ap_hook_pre_config(header_pre_config,NULL,NULL,APR_HOOK_MIDDLE);
>     ap_hook_post_config(header_post_config,NULL,NULL,APR_HOOK_MIDDLE);
>     ap_hook_insert_filter(ap_headers_insert_output_filter, NULL, NULL, 
> APR_HOOK_LAST);
>     ap_hook_insert_error_filter(ap_headers_insert_error_filter,
>                                 NULL, NULL, APR_HOOK_LAST);
>     ap_hook_fixups(ap_headers_fixup, NULL, NULL, APR_HOOK_LAST);
>     ap_hook_post_read_request(ap_headers_early, NULL, NULL, APR_HOOK_FIRST);
> }
> 
> module AP_MODULE_DECLARE_DATA headers_module =
> {
>     STANDARD20_MODULE_STUFF,
>     create_headers_dir_config,  /* dir config creater */
>     merge_headers_config,       /* dir merger --- default is to override */
>     NULL,                       /* server config */
>     NULL,                       /* merge server configs */
>     headers_cmds,               /* command apr_table_t */
>     register_hooks              /* register hooks */
> };
>                                                               
> 
> The code I added is in the "ap_headers_insert_output_filter()" function.
> 
> 
> I did an "export SHOW_HOOKS=1" and ran the Apache, and I see this for the 
> modified mod_headers:
> 
> Registering hooks for mod_headers.c
> mod_headers-jl V0.13 - use LIBCURL instead of OAM ASDK-process response from 
> callCurl
> In register_hooks
>   Hooked pre_config
>   Hooked post_config
>   Hooked insert_filter
>   Hooked insert_error_filter
>   Hooked fixups
>   Hooked post_read_request
> 
> 
> And for webgate, I see:
> 
> Registering hooks for apache2entry_web_gate.cpp
>   Hooked post_config
>   Hooked handler
>   Hooked check_user_id
>   Hooked auth_checker
> 
> 
> I thought that the handler functions are called almost last part of the 
> processing (content generation), and my code is hooked to insert_filter, 
> which I thought occurs earlier than content generation, so shouldn't my code 
> get processed BEFORE Apache attempts to process the webgate functions?
> 
> How can I get my code to process before the webgate does?
> 
> Thanks,
> Jim

Hi,

I've been doing more testing, and it appears that the insert_filter hook (the 
"ap_headers_insert_output_filter()" function) is the only place where I can put 
my code where it has access to the variables that it needs to do the processing 
that I'm doing.

The problem is that if that other Oracle module is enabled in the Apache, it 
runs before my code, and I can't get the insert_filter hook (my function) to 
get processed before the Oracle module

Can anyone suggest how I might be able to do that?

Thanks,
Jim

Reply via email to