TR of 2.4.8

2014-03-11 Thread Jim Jagielski
Looks like we are Good2Go for a TR today at noonish (eastern)


[PATCH 56152 3/4] mod_proxy: Split the NoProxy parameter parsing away

2014-03-11 Thread Lubomir Rintel
From: Lubomir Rintel lubo.rin...@gooddata.com

It is nice and could be reused by ProxyBlock.
---
 modules/proxy/mod_proxy.c | 98 +--
 1 file changed, 53 insertions(+), 45 deletions(-)

diff --git a/modules/proxy/mod_proxy.c b/modules/proxy/mod_proxy.c
index e7c78ee..bd3bf82 100644
--- a/modules/proxy/mod_proxy.c
+++ b/modules/proxy/mod_proxy.c
@@ -1723,56 +1723,17 @@ static const char* cookie_domain(cmd_parms *cmd, void 
*dconf, const char *f,
 return NULL;
 }
 
-static const char *
-set_proxy_exclude(cmd_parms *parms, void *dummy, const char *arg)
-{
-server_rec *s = parms-server;
-proxy_server_conf *conf =
-ap_get_module_config(s-module_config, proxy_module);
-struct noproxy_entry *new;
-struct noproxy_entry *list = (struct noproxy_entry *) 
conf-noproxies-elts;
-struct apr_sockaddr_t *addr;
-int found = 0;
-int i;
-
-/* Don't duplicate entries */
-for (i = 0; i  conf-noproxies-nelts; i++) {
-if (strcasecmp(arg, list[i].name) == 0) { /* ignore case for host 
names */
-found = 1;
-break;
-}
-}
-
-if (!found) {
-new = apr_array_push(conf-noproxies);
-new-name = arg;
-if (APR_SUCCESS == apr_sockaddr_info_get(addr, new-name, APR_UNSPEC, 
0, 0, parms-pool)) {
-new-addr = addr;
-}
-else {
-new-addr = NULL;
-}
-}
-return NULL;
-}
-
-
-/* Similar to set_proxy_exclude(), but defining directly connected hosts,
- * which should never be accessed via the configured ProxyRemote servers
- */
-static const char *
-set_proxy_dirconn(cmd_parms *parms, void *dummy, const char *arg)
+/* Add an entry to a NoProxy or ProxyBlock list */
+const char *
+add_exclude_list(cmd_parms *parms, const char *arg, apr_array_header_t 
*array)
 {
-server_rec *s = parms-server;
-proxy_server_conf *conf =
-ap_get_module_config(s-module_config, proxy_module);
 struct exclude_entry *New;
-struct exclude_entry *list = (struct exclude_entry *) conf-dirconn-elts;
+struct exclude_entry *list = (struct exclude_entry *) array-elts;
 int found = 0;
 int i;
 
 /* Don't duplicate entries */
-for (i = 0; i  conf-dirconn-nelts; i++) {
+for (i = 0; i  array-nelts; i++) {
 if (strcasecmp(arg, list[i].name) == 0) {
 found = 1;
 break;
@@ -1780,7 +1741,7 @@ static const char *
 }
 
 if (!found) {
-New = apr_array_push(conf-dirconn);
+New = apr_array_push(array);
 New-name = apr_pstrdup(parms-pool, arg);
 New-hostaddr = NULL;
 
@@ -1817,6 +1778,53 @@ static const char *
 }
 
 static const char *
+set_proxy_exclude(cmd_parms *parms, void *dummy, const char *arg)
+{
+server_rec *s = parms-server;
+proxy_server_conf *conf =
+ap_get_module_config(s-module_config, proxy_module);
+struct noproxy_entry *new;
+struct noproxy_entry *list = (struct noproxy_entry *) 
conf-noproxies-elts;
+struct apr_sockaddr_t *addr;
+int found = 0;
+int i;
+
+/* Don't duplicate entries */
+for (i = 0; i  conf-noproxies-nelts; i++) {
+if (strcasecmp(arg, list[i].name) == 0) { /* ignore case for host 
names */
+found = 1;
+break;
+}
+}
+
+if (!found) {
+new = apr_array_push(conf-noproxies);
+new-name = arg;
+if (APR_SUCCESS == apr_sockaddr_info_get(addr, new-name, APR_UNSPEC, 
0, 0, parms-pool)) {
+new-addr = addr;
+}
+else {
+new-addr = NULL;
+}
+}
+return NULL;
+}
+
+
+/* Similar to set_proxy_exclude(), but defining directly connected hosts,
+ * which should never be accessed via the configured ProxyRemote servers
+ */
+static const char *
+set_proxy_dirconn(cmd_parms *parms, void *dummy, const char *arg)
+{
+server_rec *s = parms-server;
+proxy_server_conf *conf =
+ap_get_module_config(s-module_config, proxy_module);
+
+return add_exclude_list(parms, arg, conf-dirconn);
+}
+
+static const char *
 set_proxy_domain(cmd_parms *parms, void *dummy, const char *arg)
 {
 proxy_server_conf *psf =
-- 
1.8.3.1



[PATCH 56152 2/4] mod_proxy: Match resolved addresses for NoProxy too

2014-03-11 Thread Lubomir Rintel
We resolve the names using the configuration parsing, thus we already have the
addresses. It could be redundant for NoProxy, but the same code could be used
with ProxyBlock if it did this.
---
 modules/proxy/proxy_util.c | 8 
 1 file changed, 8 insertions(+)

diff --git a/modules/proxy/proxy_util.c b/modules/proxy/proxy_util.c
index 0081940..22b6ea1 100644
--- a/modules/proxy/proxy_util.c
+++ b/modules/proxy/proxy_util.c
@@ -699,6 +699,7 @@ static int proxy_match_domainname(struct exclude_entry 
*This, request_rec *r)
 PROXY_DECLARE(int) ap_proxy_is_hostname(struct exclude_entry *This, apr_pool_t 
*p)
 {
 struct apr_sockaddr_t *addr;
+struct in_addr *ip;
 char *host = This-name;
 int i;
 
@@ -714,6 +715,9 @@ PROXY_DECLARE(int) ap_proxy_is_hostname(struct 
exclude_entry *This, apr_pool_t *
 }
 
 This-hostaddr = addr;
+ip = (struct in_addr *) addr-ipaddr_ptr;
+This-addr.s_addr = ip-s_addr;
+This-mask.s_addr = htonl(APR_INADDR_NONE);
 
 /* Strip trailing dots */
 for (i = strlen(host) - 1; i  0  host[i] == '.'; --i) {
@@ -736,6 +740,10 @@ static int proxy_match_hostname(struct exclude_entry 
*This, request_rec *r)
 return 0; /* oops! */
 }
 
+/* Maybe the ip address matches. */
+if (proxy_match_ipaddr(This, r))
+return 1;
+
 h2_len = strlen(host2);
 h1_len = strlen(host);
 
-- 
1.8.3.1



[PATCH 56152 1/4] mod_proxy: Rename dirconn_entry to exclude_entry

2014-03-11 Thread Lubomir Rintel
From: Lubomir Rintel lubo.rin...@gooddata.com

Currently they are used for NoProxy, but could be reusable to ProxyBlock.
Rename them to something more generic.
---
 modules/proxy/mod_proxy.c  |  8 
 modules/proxy/mod_proxy.h  |  4 ++--
 modules/proxy/proxy_util.c | 24 
 modules/proxy/proxy_util.h |  8 
 4 files changed, 22 insertions(+), 22 deletions(-)

diff --git a/modules/proxy/mod_proxy.c b/modules/proxy/mod_proxy.c
index 329e805..e7c78ee 100644
--- a/modules/proxy/mod_proxy.c
+++ b/modules/proxy/mod_proxy.c
@@ -924,7 +924,7 @@ static int proxy_handler(request_rec *r)
 proxy_balancer *balancer = NULL;
 proxy_worker *worker = NULL;
 int attempts = 0, max_attempts = 0;
-struct dirconn_entry *list = (struct dirconn_entry *)conf-dirconn-elts;
+struct exclude_entry *list = (struct exclude_entry *)conf-dirconn-elts;
 
 /* is this for us? */
 if (!r-proxyreq || !r-filename || strncmp(r-filename, proxy:, 6) != 0)
@@ -1203,7 +1203,7 @@ static void * create_proxy_config(apr_pool_t *p, 
server_rec *s)
 ps-proxies = apr_array_make(p, 10, sizeof(struct proxy_remote));
 ps-aliases = apr_array_make(p, 10, sizeof(struct proxy_alias));
 ps-noproxies = apr_array_make(p, 10, sizeof(struct noproxy_entry));
-ps-dirconn = apr_array_make(p, 10, sizeof(struct dirconn_entry));
+ps-dirconn = apr_array_make(p, 10, sizeof(struct exclude_entry));
 ps-workers = apr_array_make(p, 10, sizeof(proxy_worker));
 ps-balancers = apr_array_make(p, 10, sizeof(proxy_balancer));
 ps-forward = NULL;
@@ -1766,8 +1766,8 @@ static const char *
 server_rec *s = parms-server;
 proxy_server_conf *conf =
 ap_get_module_config(s-module_config, proxy_module);
-struct dirconn_entry *New;
-struct dirconn_entry *list = (struct dirconn_entry *) conf-dirconn-elts;
+struct exclude_entry *New;
+struct exclude_entry *list = (struct exclude_entry *) conf-dirconn-elts;
 int found = 0;
 int i;
 
diff --git a/modules/proxy/mod_proxy.h b/modules/proxy/mod_proxy.h
index b99ee17..392c4d0 100644
--- a/modules/proxy/mod_proxy.h
+++ b/modules/proxy/mod_proxy.h
@@ -115,11 +115,11 @@ struct proxy_alias {
 proxy_balancer *balancer; /* only valid for reverse-proxys */
 };
 
-struct dirconn_entry {
+struct exclude_entry {
 char *name;
 struct in_addr addr, mask;
 struct apr_sockaddr_t *hostaddr;
-int (*matcher) (struct dirconn_entry * This, request_rec *r);
+int (*matcher) (struct exclude_entry * This, request_rec *r);
 };
 
 struct noproxy_entry {
diff --git a/modules/proxy/proxy_util.c b/modules/proxy/proxy_util.c
index 6017b82..0081940 100644
--- a/modules/proxy/proxy_util.c
+++ b/modules/proxy/proxy_util.c
@@ -79,10 +79,10 @@ const apr_strmatch_pattern PROXY_DECLARE_DATA 
*ap_proxy_strmatch_domain;
 
 extern apr_global_mutex_t *proxy_mutex;
 
-static int proxy_match_ipaddr(struct dirconn_entry *This, request_rec *r);
-static int proxy_match_domainname(struct dirconn_entry *This, request_rec *r);
-static int proxy_match_hostname(struct dirconn_entry *This, request_rec *r);
-static int proxy_match_word(struct dirconn_entry *This, request_rec *r);
+static int proxy_match_ipaddr(struct exclude_entry *This, request_rec *r);
+static int proxy_match_domainname(struct exclude_entry *This, request_rec *r);
+static int proxy_match_hostname(struct exclude_entry *This, request_rec *r);
+static int proxy_match_word(struct exclude_entry *This, request_rec *r);
 
 APR_IMPLEMENT_OPTIONAL_HOOK_RUN_ALL(proxy, PROXY, int, create_req,
(request_rec *r, request_rec *pr), (r, pr),
@@ -426,7 +426,7 @@ static const char *
 }
 
 /* Return TRUE if addr represents an IP address (or an IP network address) */
-PROXY_DECLARE(int) ap_proxy_is_ipaddr(struct dirconn_entry *This, apr_pool_t 
*p)
+PROXY_DECLARE(int) ap_proxy_is_ipaddr(struct exclude_entry *This, apr_pool_t 
*p)
 {
 const char *addr = This-name;
 long ip_addr[4];
@@ -547,7 +547,7 @@ PROXY_DECLARE(int) ap_proxy_is_ipaddr(struct dirconn_entry 
*This, apr_pool_t *p)
 }
 
 /* Return TRUE if addr represents an IP address (or an IP network address) */
-static int proxy_match_ipaddr(struct dirconn_entry *This, request_rec *r)
+static int proxy_match_ipaddr(struct exclude_entry *This, request_rec *r)
 {
 int i, ip_addr[4];
 struct in_addr addr, *ip;
@@ -635,7 +635,7 @@ static int proxy_match_ipaddr(struct dirconn_entry *This, 
request_rec *r)
 }
 
 /* Return TRUE if addr represents a domain name */
-PROXY_DECLARE(int) ap_proxy_is_domainname(struct dirconn_entry *This, 
apr_pool_t *p)
+PROXY_DECLARE(int) ap_proxy_is_domainname(struct exclude_entry *This, 
apr_pool_t *p)
 {
 char *addr = This-name;
 int i;
@@ -672,7 +672,7 @@ PROXY_DECLARE(int) ap_proxy_is_domainname(struct 
dirconn_entry *This, apr_pool_t
 }
 
 /* Return TRUE if host host is in domain domain */
-static int proxy_match_domainname(struct dirconn_entry *This, 

[PATCH 56152 4/4] mod_proxy: Share NoProxy parameter parsing and evaluation with ProxyBlock

2014-03-11 Thread Lubomir Rintel
From: Lubomir Rintel lubo.rin...@gooddata.com

They do the same task now, so we can remove some duplicate code. They do the
same thing except that ProxyBlock does certain things better -- they support
masked network addresses, thus we can now block subnets.
---
 docs/manual/mod/mod_proxy.xml | 14 +++---
 modules/proxy/mod_proxy.c | 27 ++-
 modules/proxy/mod_proxy.h |  5 -
 modules/proxy/proxy_util.c| 35 ++-
 4 files changed, 11 insertions(+), 70 deletions(-)

diff --git a/docs/manual/mod/mod_proxy.xml b/docs/manual/mod/mod_proxy.xml
index d0adb3a..38bedee 100644
--- a/docs/manual/mod/mod_proxy.xml
+++ b/docs/manual/mod/mod_proxy.xml
@@ -1509,8 +1509,8 @@ will rewrite a cookie with backend path code//code (or
 usage
 pThe directiveProxyBlock/directive directive can be used to
 block FTP or HTTP access to certain hosts via the proxy, based on
-a full or partial hostname match, or, if applicable, an IP address
-comparison./p
+a host name or a domain name match, or, if applicable, an IP host or
+network address comparison./p
 
 pEach of the arguments to the directiveProxyBlock/directive
 directive can be either code*/code or a alphanumeric string.
@@ -1522,11 +1522,11 @@ will rewrite a cookie with backend path code//code 
(or
 modulemod_proxy/module will deny access to all FTP or HTTP
 sites./p
 
-pOtherwise, for any request for an HTTP or FTP resource via the
-proxy, modulemod_proxy/module will check the hostname of the
-request URI against each specified string.  If a partial string
-match is found, access is denied.  If no matches against hostnames
-are found, and a remote (forward) proxy is configured using
+pOtherwise, the matching same as one used with
+directiveNoProxy/directive is conducted to check the hostname of
+the request URI against each specified string.  If a match is found,
+access is denied.  If no matches against hostnames are found, and a
+remote (forward) proxy is configured using
 directiveProxyRemote/directive or
 directiveProxyRemoteMatch/directive, access is allowed.  If no
 remote (forward) proxy is configured, the IP address of the
diff --git a/modules/proxy/mod_proxy.c b/modules/proxy/mod_proxy.c
index bd3bf82..707067c 100644
--- a/modules/proxy/mod_proxy.c
+++ b/modules/proxy/mod_proxy.c
@@ -1202,7 +1202,7 @@ static void * create_proxy_config(apr_pool_t *p, 
server_rec *s)
 ps-sec_proxy = apr_array_make(p, 10, sizeof(ap_conf_vector_t *));
 ps-proxies = apr_array_make(p, 10, sizeof(struct proxy_remote));
 ps-aliases = apr_array_make(p, 10, sizeof(struct proxy_alias));
-ps-noproxies = apr_array_make(p, 10, sizeof(struct noproxy_entry));
+ps-noproxies = apr_array_make(p, 10, sizeof(struct exclude_entry));
 ps-dirconn = apr_array_make(p, 10, sizeof(struct exclude_entry));
 ps-workers = apr_array_make(p, 10, sizeof(proxy_worker));
 ps-balancers = apr_array_make(p, 10, sizeof(proxy_balancer));
@@ -1783,31 +1783,8 @@ static const char *
 server_rec *s = parms-server;
 proxy_server_conf *conf =
 ap_get_module_config(s-module_config, proxy_module);
-struct noproxy_entry *new;
-struct noproxy_entry *list = (struct noproxy_entry *) 
conf-noproxies-elts;
-struct apr_sockaddr_t *addr;
-int found = 0;
-int i;
 
-/* Don't duplicate entries */
-for (i = 0; i  conf-noproxies-nelts; i++) {
-if (strcasecmp(arg, list[i].name) == 0) { /* ignore case for host 
names */
-found = 1;
-break;
-}
-}
-
-if (!found) {
-new = apr_array_push(conf-noproxies);
-new-name = arg;
-if (APR_SUCCESS == apr_sockaddr_info_get(addr, new-name, APR_UNSPEC, 
0, 0, parms-pool)) {
-new-addr = addr;
-}
-else {
-new-addr = NULL;
-}
-}
-return NULL;
+return add_exclude_list(parms, arg, conf-noproxies);
 }
 
 
diff --git a/modules/proxy/mod_proxy.h b/modules/proxy/mod_proxy.h
index 392c4d0..1ffb9ce 100644
--- a/modules/proxy/mod_proxy.h
+++ b/modules/proxy/mod_proxy.h
@@ -122,11 +122,6 @@ struct exclude_entry {
 int (*matcher) (struct exclude_entry * This, request_rec *r);
 };
 
-struct noproxy_entry {
-const char *name;
-struct apr_sockaddr_t *addr;
-};
-
 typedef struct {
 apr_array_header_t *proxies;
 apr_array_header_t *sec_proxy;
diff --git a/modules/proxy/proxy_util.c b/modules/proxy/proxy_util.c
index 22b6ea1..bdb01ca 100644
--- a/modules/proxy/proxy_util.c
+++ b/modules/proxy/proxy_util.c
@@ -783,8 +783,6 @@ static int proxy_match_word(struct exclude_entry *This, 
request_rec *r)
 return host != NULL  ap_strstr_c(host, This-name) != NULL;
 }
 
-#define MAX_IP_STR_LEN (46)
-
 PROXY_DECLARE(int) ap_proxy_checkproxyblock(request_rec *r, proxy_server_conf 
*conf,
 const char *hostname, 

[PATCH 56152 0/4] mod_proxy: Add support for network addresses to NoProxy

2014-03-11 Thread Lubomir Rintel
Hi,

I opened a ticket [1] with the patches (chained to this message), but got 
virtually 
no responsem, therefore I assume it might be a better idea to discuss them in a 
list.

[1] https://issues.apache.org/bugzilla/show_bug.cgi?id=56152

I'd very thankful for a review and evenutal merge.

Thank you!
Lubo



[PATCH 55178 2/2] mod_authn_ldap: Allow specifying SASL interaction

2014-03-11 Thread Lubomir Rintel
From: Lubomir Rintel lubo.rin...@gooddata.com

---
 docs/manual/mod/mod_authnz_ldap.xml   | 28 +++
 docs/manual/style/scripts/prettify.js |  2 +-
 include/util_ldap.h   |  4 ++-
 modules/aaa/mod_authnz_ldap.c | 16 +++--
 modules/ldap/util_ldap.c  | 67 +--
 5 files changed, 102 insertions(+), 15 deletions(-)

diff --git a/docs/manual/mod/mod_authnz_ldap.xml 
b/docs/manual/mod/mod_authnz_ldap.xml
index 1a99079..264b447 100644
--- a/docs/manual/mod/mod_authnz_ldap.xml
+++ b/docs/manual/mod/mod_authnz_ldap.xml
@@ -191,6 +191,14 @@ for HTTP Basic authentication./description
 tdAn optional SASL mechanism to use for bind
 with during the search phase./td
   /tr
+
+  tr
+tddirective
+module=mod_authnz_ldapAuthLDAPBindSASLInteract/directive/td
+
+tdAn optional command to run when SASL
+requests interaction to obtain credentials./td
+  /tr
 /table
 /section
 
@@ -973,6 +981,26 @@ AuthLDAPBindSASLMech GSSAPI
 /directivesynopsis
 
 directivesynopsis
+nameAuthLDAPBindSASLInteract/name
+descriptionOptional command to run when SASL requests interaction to obtain 
credentials/description
+syntaxAuthLDAPBindSASLInteract emcommand/em/syntax
+contextlistcontextdirectory/contextcontext.htaccess/context
+/contextlist
+overrideAuthConfig/override
+
+usage
+pAn optional command to run when SASL
+requests interaction to obtain credentials./p
+
+examplepre
+#Initialize Kerberos Credentials Cache using a key from a keytab for given 
principal
+AuthLDAPBindSASLInteract /usr/bin/kinit -k -t /etc/httpd/conf/krb5.keytab 
host/example.com
+/pre/example
+
+/usage
+/directivesynopsis
+
+directivesynopsis
 nameAuthLDAPCharsetConfig/name
 descriptionLanguage to charset conversion configuration file/description
 syntaxAuthLDAPCharsetConfig emfile-path/em/syntax
diff --git a/docs/manual/style/scripts/prettify.js 
b/docs/manual/style/scripts/prettify.js
index f1ab2e6..5777258 100644
--- a/docs/manual/style/scripts/prettify.js
+++ b/docs/manual/style/scripts/prettify.js
@@ -132,7 +132,7 @@ var prettyPrint;
   var SH_KEYWORDS = [FLOW_CONTROL_KEYWORDS, case,done,elif,esac,eval,fi, +
   function,in,local,set,then,until,echo];
   var CONFIG_ENVS = 
[User-Agent,HTTP_USER_AGENT,HTTP_REFERER,HTTP_COOKIE,HTTP_FORWARDED,HTTP_HOST,HTTP_PROXY_CONNECTION,HTTP_ACCEPT,REMOTE_ADDR,REMOTE_HOST,REMOTE_PORT,REMOTE_USER,REMOTE_IDENT,REQUEST_METHOD,SCRIPT_FILENAME,PATH_INFO,QUERY_STRING,AUTH_TYPE,DOCUMENT_ROOT,SERVER_ADMIN,SERVER_NAME,SERVER_ADDR,SERVER_PORT,SERVER_PROTOCOL,SERVER_SOFTWARE,TIME_YEAR,TIME_MON,TIME_DAY,TIME_HOUR,TIME_MIN,TIME_SEC,TIME_WDAY,TIME,API_VERSION,THE_REQUEST,REQUEST_URI,REQUEST_FILENAME,IS_SUBREQ,HTTPS,REQUEST_SCHEME];
-  var CONFIG_KEYWORDS = 
[Macro,UndefMacro,Use,AuthLDAPURL,AcceptFilter,AcceptPathInfo,AccessFileName,Action,AddAlt,AddAltByEncoding,AddAltByType,AddCharset,AddDefaultCharset,AddDescription,AddEncoding,AddHandler,AddIcon,AddIconByEncoding,AddIconByType,AddInputFilter,AddLanguage,AddModuleInfo,AddOutputFilter,AddOutputFilterByType,AddType,Alias,AliasMatch,Allow,AllowCONNECT,AllowEncodedSlashes,AllowMethods,AllowOverride,AllowOverrideList,Anonymous,Anonymous_LogEmail,Anonymous_MustGiveEmail,Anonymous_NoUserID,Anonymous_VerifyEmail,AsyncRequestWorkerFactor,AuthBasicAuthoritative,AuthBasicProvider,AuthDBDUserPWQuery,AuthDBDUserRealmQuery,AuthDBMGroupFile,AuthDBMType,AuthDBMUserFile,AuthDigestAlgorithm,AuthDigestDomain,AuthDigestNcCheck,AuthDigestNonceFormat,AuthDigestNonceLifetime,AuthDigestProvider,AuthDigestQop,AuthDigestShmemSize,AuthFormAuthoritative,AuthFormBody,AuthFormDisableNoStore,AuthFormFakeBasicAuth,AuthFormLocation,AuthFormLoginRequiredLocation,AuthFormLoginSuccessLocation,
 
AuthFormLogoutLocation,AuthFormMethod,AuthFormMimetype,AuthFormPassword,AuthFormProvider,AuthFormSitePassphrase,AuthFormSize,AuthFormUsername,AuthGroupFile,AuthLDAPAuthorizePrefix,AuthLDAPBindAuthoritative,AuthLDAPBindDN,AuthLDAPBindPassword,AuthLDAPBindSASLMech,AuthLDAPCharsetConfig,AuthLDAPCompareAsUser,AuthLDAPCompareDNOnServer,AuthLDAPDereferenceAliases,AuthLDAPGroupAttribute,AuthLDAPGroupAttributeIsDN,AuthLDAPInitialBindAsUser,AuthLDAPInitialBindPattern,AuthLDAPMaxSubGroupDepth,AuthLDAPRemoteUserAttribute,AuthLDAPRemoteUserIsDN,AuthLDAPSearchAsUser,AuthLDAPSubGroupAttribute,AuthLDAPSubGroupClass,AuthLDAPUrl,AuthMerging,AuthName,AuthnCacheContext,AuthnCacheEnable,AuthnCacheProvideFor,AuthnCacheSOCache,AuthnCacheTimeout,AuthnProviderAlias,AuthType,AuthUserFile,AuthzDBDLoginToReferer,AuthzDBDQuery,AuthzDBDRedirectQuery,AuthzDBMType,AuthzProviderAlias,AuthzSendForbiddenOnFailure,BalancerGrowth,BalancerMember,BrowserMatch,BrowserMatchNoCase,BufferedLogs,BufferSize,CacheDefaultEx
 

[PATCH 55178 1/2] mod_authn_ldap: Allow authentication with SASL

2014-03-11 Thread Lubomir Rintel
From: Lubomir Rintel lubo.rin...@gooddata.com

---
 docs/manual/mod/mod_authnz_ldap.xml   | 34 -
 docs/manual/style/scripts/prettify.js |  2 +-
 include/util_ldap.h   |  5 +-
 modules/aaa/mod_authnz_ldap.c | 14 +-
 modules/ldap/util_ldap.c  | 94 +++
 5 files changed, 111 insertions(+), 38 deletions(-)

diff --git a/docs/manual/mod/mod_authnz_ldap.xml 
b/docs/manual/mod/mod_authnz_ldap.xml
index de59a0b..1a99079 100644
--- a/docs/manual/mod/mod_authnz_ldap.xml
+++ b/docs/manual/mod/mod_authnz_ldap.xml
@@ -183,6 +183,14 @@ for HTTP Basic authentication./description
 tdAn optional password to bind
 with during the search phase./td
   /tr
+
+  tr
+tddirective
+module=mod_authnz_ldapAuthLDAPBindSASLMech/directive/td
+
+tdAn optional SASL mechanism to use for bind
+with during the search phase./td
+  /tr
 /table
 /section
 
@@ -903,8 +911,8 @@ to perform a DN lookup/description
 
 usage
 pAn optional DN used to bind to the server when searching for
-entries. If not provided, modulemod_authnz_ldap/module will use
-an anonymous bind./p
+entries. If not provided, and simple bind (not SASL) is used,
+modulemod_authnz_ldap/module will use an anonymous bind./p
 /usage
 /directivesynopsis
 
@@ -943,6 +951,28 @@ AuthLDAPBindPassword exec:/path/to/otherProgram argument1
 /directivesynopsis
 
 directivesynopsis
+nameAuthLDAPBindSASLMech/name
+descriptionOptional SASL mechanism to use in binding to the LDAP 
server/description
+syntaxAuthLDAPBindSASLMech emsasl-mech/em/syntax
+contextlistcontextdirectory/contextcontext.htaccess/context
+/contextlist
+overrideAuthConfig/override
+
+usage
+pAn optional SASL mechanism used to bind to the server when
+searching for entries. Multiple mechanisms can be used,
+separated with commas. If not provided,
+modulemod_authnz_ldap/module will use simple bind./p
+
+examplepre
+#Authenticate with Kerberos GSSAPI
+AuthLDAPBindSASLMech GSSAPI
+/pre/example
+
+/usage
+/directivesynopsis
+
+directivesynopsis
 nameAuthLDAPCharsetConfig/name
 descriptionLanguage to charset conversion configuration file/description
 syntaxAuthLDAPCharsetConfig emfile-path/em/syntax
diff --git a/docs/manual/style/scripts/prettify.js 
b/docs/manual/style/scripts/prettify.js
index 2fa959a..f1ab2e6 100644
--- a/docs/manual/style/scripts/prettify.js
+++ b/docs/manual/style/scripts/prettify.js
@@ -132,7 +132,7 @@ var prettyPrint;
   var SH_KEYWORDS = [FLOW_CONTROL_KEYWORDS, case,done,elif,esac,eval,fi, +
   function,in,local,set,then,until,echo];
   var CONFIG_ENVS = 
[User-Agent,HTTP_USER_AGENT,HTTP_REFERER,HTTP_COOKIE,HTTP_FORWARDED,HTTP_HOST,HTTP_PROXY_CONNECTION,HTTP_ACCEPT,REMOTE_ADDR,REMOTE_HOST,REMOTE_PORT,REMOTE_USER,REMOTE_IDENT,REQUEST_METHOD,SCRIPT_FILENAME,PATH_INFO,QUERY_STRING,AUTH_TYPE,DOCUMENT_ROOT,SERVER_ADMIN,SERVER_NAME,SERVER_ADDR,SERVER_PORT,SERVER_PROTOCOL,SERVER_SOFTWARE,TIME_YEAR,TIME_MON,TIME_DAY,TIME_HOUR,TIME_MIN,TIME_SEC,TIME_WDAY,TIME,API_VERSION,THE_REQUEST,REQUEST_URI,REQUEST_FILENAME,IS_SUBREQ,HTTPS,REQUEST_SCHEME];
-  var CONFIG_KEYWORDS = 
[Macro,UndefMacro,Use,AuthLDAPURL,AcceptFilter,AcceptPathInfo,AccessFileName,Action,AddAlt,AddAltByEncoding,AddAltByType,AddCharset,AddDefaultCharset,AddDescription,AddEncoding,AddHandler,AddIcon,AddIconByEncoding,AddIconByType,AddInputFilter,AddLanguage,AddModuleInfo,AddOutputFilter,AddOutputFilterByType,AddType,Alias,AliasMatch,Allow,AllowCONNECT,AllowEncodedSlashes,AllowMethods,AllowOverride,AllowOverrideList,Anonymous,Anonymous_LogEmail,Anonymous_MustGiveEmail,Anonymous_NoUserID,Anonymous_VerifyEmail,AsyncRequestWorkerFactor,AuthBasicAuthoritative,AuthBasicProvider,AuthDBDUserPWQuery,AuthDBDUserRealmQuery,AuthDBMGroupFile,AuthDBMType,AuthDBMUserFile,AuthDigestAlgorithm,AuthDigestDomain,AuthDigestNcCheck,AuthDigestNonceFormat,AuthDigestNonceLifetime,AuthDigestProvider,AuthDigestQop,AuthDigestShmemSize,AuthFormAuthoritative,AuthFormBody,AuthFormDisableNoStore,AuthFormFakeBasicAuth,AuthFormLocation,AuthFormLoginRequiredLocation,AuthFormLoginSuccessLocation,
 

[PATCH 55178 0/2] mod_authn_ldap: SASL support

2014-03-11 Thread Lubomir Rintel
Hi,

I've submitted a patch set [1] adding SASL support to mod_authn_ldap a while 
ago, but the ticket got no feedback. I'd be very thankful for a review and 
merge.

[1] https://issues.apache.org/bugzilla/show_bug.cgi?id=55178

Thank you!
Lubo



[PATCH 51648 apreq2] Remove redundant Apache2::Cookie::httpcookie documentation

2014-03-11 Thread Lubomir Rintel
---
Hi,

please review and merge this. It seems to be an easyfix, but the ticket [1] 
seemengly generated no useful attention.

[1] https://issues.apache.org/bugzilla/show_bug.cgi?id=51648

Thank you,
Lubo


 glue/perl/lib/Apache2/Cookie.pm | 14 --
 1 file changed, 14 deletions(-)

diff --git a/glue/perl/lib/Apache2/Cookie.pm b/glue/perl/lib/Apache2/Cookie.pm
index 715ab14..d6a5b31 100644
--- a/glue/perl/lib/Apache2/Cookie.pm
+++ b/glue/perl/lib/Apache2/Cookie.pm
@@ -450,20 +450,6 @@ Get or set the HttpOnly flag for the cookie:
 
 
 
-=head2 httponly
-
-$cookie-httponly()
-$cookie-httponly($set)
-
-Get or set the HttpOnly flag for the cookie:
-
-$cookie-httponly(1);
-$is_HttpOnly = $cookie-httponly;
-$cookie-httponly(0);
-
-
-
-
 =head2 comment
 
 $cookie-comment()
-- 
1.8.3.1



[VOTE] Release Apache httpd 2.4.8 as GA

2014-03-11 Thread Jim Jagielski
The pre-release test tarballs for Apache httpd 2.4.8 can be found
at the usual place:

http://httpd.apache.org/dev/dist/

I'm calling a VOTE on releasing these as Apache httpd 2.4.8 GA.

[ ] +1: Good to go
[ ] +0: meh
[ ] -1: Danger Will Robinson. And why.

Vote will last the normal 72 hrs.

NOTE: The *-deps are only there for convenience.


Re: Tagging 2.2.27 tag Friday Feb 28th.

2014-03-11 Thread William A. Rowe Jr.
On Thu, 20 Feb 2014 02:42:46 -0600
William A. Rowe Jr. wr...@rowe-clan.net wrote:

 With no objection, I will tag and roll 2.2 branch for release a week
 from Friday, with the intent to announce both the proper 2.4 'current'
 and the 2.2 'legacy' at the same time in tandem with Jim's efforts.

To celebrate 2.4.8's tag I'll be tagging today, at last.  There is one
patch is STATUS that corresponds to a 2.4.8 fix in mod_log_config, if
that can get one more vote.  Flurry of backport commits starts shortly.

I'm considering Yann's additional proxy SNI fail-reuse patch as well,
but as it didn't make 2.4.8 I would prefer to keep 2.2.27 in sync, and
apply to both trees if appropriate, once both are tagged.


Re: [VOTE] Release Apache httpd 2.4.8 as GA

2014-03-11 Thread Rainer Jung
On 11.03.2014 17:34, Jim Jagielski wrote:
 The pre-release test tarballs for Apache httpd 2.4.8 can be found
 at the usual place:
 
   http://httpd.apache.org/dev/dist/
 
 I'm calling a VOTE on releasing these as Apache httpd 2.4.8 GA.
 
 [ ] +1: Good to go
 [ ] +0: meh
 [ ] -1: Danger Will Robinson. And why.
 
 Vote will last the normal 72 hrs.
 
 NOTE: The *-deps are only there for convenience.

I get a segfault during startup init on www.apache.org when using SSL.
This didn't happen for r1570851. Candidate is r1573360.

That server currently uses OpenSSL 1.0.1e.

GDB:

Program terminated with signal 11, Segmentation fault.
#0  0x00010287a19a in ssl_set_cert_masks () from
/usr/local/lib/libssl.so.8
(gdb) bt full
#0  0x00010287a19a in ssl_set_cert_masks () from
/usr/local/lib/libssl.so.8
No symbol table info available.
#1  0x00010287a6f6 in ssl_get_server_send_pkey () from
/usr/local/lib/libssl.so.8
No symbol table info available.
#2  0x00010287a7a9 in ssl_get_server_send_cert () from
/usr/local/lib/libssl.so.8
No symbol table info available.
#3  0x000102616d2a in ssl_init_server_certs (pphrases=0x10226ab58,
mctx=0x10227d938, ptemp=optimized out, p=optimized out, s=optimized
out) at ssl_engine_init.c:959
No locals.
#4  ssl_init_server_ctx (pphrases=optimized out, sc=optimized out,
ptemp=optimized out, p=optimized out, s=optimized out) at
ssl_engine_init.c:1287
No locals.
#5  ssl_init_ConfigureServer (s=0x102277350, p=0x102023028,
ptemp=0x102051028, sc=0x10227d7d8, pphrases=optimized out) at
ssl_engine_init.c:1378
rv = optimized out
#6  0x000102617cfc in ssl_init_Module (p=0x102023028,
plog=optimized out, ptemp=0x102051028, base_server=0x10204dbe8) at
ssl_engine_init.c:228
mc = optimized out
sc = optimized out
s = 0x102277350
rv = 0
pphrases = 0x10226ab58
#7  0x0044965c in ap_run_post_config (pconf=0x102023028,
plog=0x10204f028, ptemp=0x102051028, s=0x10204dbe8) at config.c:103
n = 4
rv = optimized out
#8  0x0042afd7 in main (argc=9, argv=0x7fffd8c0) at main.c:696
c = 68 'D'
showcompile = 0
showdirectives = 0
confname = 0x7fffdbb7 /.../conf/httpd.conf
def_server_root = 0x4655c0 /...
temp_error_log = 0x0
error = optimized out
process = 0x102021118
pconf = 0x102023028
plog = 0x10204f028
ptemp = 0x102051028
pcommands = 0x102045028
opt = 0x102045118
rv = optimized out
opt_arg = 0x7fffdbfa SSL

...

#3  0x000102616d2a in ssl_init_server_certs (pphrases=0x10226ab58,
mctx=0x10227d938, ptemp=optimized out, p=optimized out, s=optimized
out) at ssl_engine_init.c:959
959 if (!(ssl = SSL_new(mctx-ssl_ctx)) ||

(gdb) print *pphrases
$1 = {pool = 0x102051028, elt_size = 8, nelts = 0, nalloc = 2, elts =
0x10226ab78 }

(gdb) print *mctx
$2 = {sc = 0x10227d7d8, ssl_ctx = 0x102185600, pks = 0x10227da20, pkp =
0x0, ticket_key = 0x10227dab0, protocol = 6, pphrase_dialog_type =
SSL_PPTYPE_BUILTIN,
  pphrase_dialog_path = 0x0, cert_chain = 0x1022784c0 /crt,
crl_path = 0x0, crl_file = 0x0,
  crl_check_mode = SSL_CRLCHECK_UNSET, stapling_enabled = 0,
stapling_resptime_skew = -1, stapling_resp_maxage = -1,
stapling_cache_timeout = -1,
  stapling_return_errors = 4294967295, stapling_fake_trylater =
4294967295, stapling_errcache_timeout = -1, stapling_responder_timeout =
-1, stapling_force_url = 0x0,
  srp_vfile = 0x0, srp_unknown_user_seed = 0x0, srp_vbase = 0x0, auth =
{ca_cert_path = 0x0, ca_cert_file = 0x0,
cipher_suite = 0x102108d18 ..., verify_depth = 1, verify_mode =
SSL_CVERIFY_NONE},
  ocsp_enabled = 0, ocsp_force_default = 0, ocsp_responder = 0x0,
ocsp_resptime_skew = -1, ocsp_resp_maxage = -1, ocsp_responder_timeout = -1}

Config structure is roughly:

VirtualHost _default_:443
ServerName ...
DocumentRoot ...
SSLEngine on
SSLCACertificateFile pem
SSLCertificateFile crt
SSLCertificateKeyFile key
SSLCertificateChainFile pem
/VirtualHost

VirtualHost *:443
   SSLEngine on
   SSLCertificateFile crt
   SSLCertificateKeyFile key
   SSLCertificateChainFile crt

   DocumentRoot ...
   ServerName ...
   ServerAlias ...
   UseCanonicalName On

   non-ssl config items
/VirtualHost

VirtualHost *:443
   ServerName ...
   UseCanonicalName Off
   VirtualDocumentRoot ...
   VirtualScriptAlias ...
   ServerAlias ...

   SSLEngine on
   SSLCertificateFile crt
   SSLCertificateKeyFile key
   SSLCertificateChainFile crt

   non-ssl config items
/VirtualHost

The certificates etc. in the three blocks are three different ones.

I'll have a look what I can find out, just an early heads-up.

Regards,

Rainer


Re: [VOTE] Release Apache httpd 2.4.8 as GA

2014-03-11 Thread Dr Stephen Henson
On 11/03/2014 20:29, Rainer Jung wrote:
 On 11.03.2014 17:34, Jim Jagielski wrote:
 The pre-release test tarballs for Apache httpd 2.4.8 can be found
 at the usual place:

  http://httpd.apache.org/dev/dist/

 I'm calling a VOTE on releasing these as Apache httpd 2.4.8 GA.

 [ ] +1: Good to go
 [ ] +0: meh
 [ ] -1: Danger Will Robinson. And why.

 Vote will last the normal 72 hrs.

 NOTE: The *-deps are only there for convenience.
 
 I get a segfault during startup init on www.apache.org when using SSL.
 This didn't happen for r1570851. Candidate is r1573360.
 
 That server currently uses OpenSSL 1.0.1e.
 
 GDB:
 
 Program terminated with signal 11, Segmentation fault.
 #0  0x00010287a19a in ssl_set_cert_masks () from
 /usr/local/lib/libssl.so.8
 (gdb) bt full
 #0  0x00010287a19a in ssl_set_cert_masks () from
 /usr/local/lib/libssl.so.8
 No symbol table info available.
 #1  0x00010287a6f6 in ssl_get_server_send_pkey () from
 /usr/local/lib/libssl.so.8

Could be a known issue in OpenSSL 1.0.1e which is fixed in 1.0.1f.

Steve.
-- 
Dr Stephen Henson. OpenSSL Software Foundation, Inc.
1829 Mount Ephraim Road
Adamstown, MD 21710
+1 877-673-6775
shen...@opensslfoundation.com


Re: [VOTE] Release Apache httpd 2.4.8 as GA

2014-03-11 Thread Rainer Jung
On 11.03.2014 21:41, Dr Stephen Henson wrote:
 On 11/03/2014 20:29, Rainer Jung wrote:
 On 11.03.2014 17:34, Jim Jagielski wrote:
 The pre-release test tarballs for Apache httpd 2.4.8 can be found
 at the usual place:

 http://httpd.apache.org/dev/dist/

 I'm calling a VOTE on releasing these as Apache httpd 2.4.8 GA.

 [ ] +1: Good to go
 [ ] +0: meh
 [ ] -1: Danger Will Robinson. And why.

 Vote will last the normal 72 hrs.

 NOTE: The *-deps are only there for convenience.

 I get a segfault during startup init on www.apache.org when using SSL.
 This didn't happen for r1570851. Candidate is r1573360.

 That server currently uses OpenSSL 1.0.1e.

 GDB:

 Program terminated with signal 11, Segmentation fault.
 #0  0x00010287a19a in ssl_set_cert_masks () from
 /usr/local/lib/libssl.so.8
 (gdb) bt full
 #0  0x00010287a19a in ssl_set_cert_masks () from
 /usr/local/lib/libssl.so.8
 No symbol table info available.
 #1  0x00010287a6f6 in ssl_get_server_send_pkey () from
 /usr/local/lib/libssl.so.8
 
 Could be a known issue in OpenSSL 1.0.1e which is fixed in 1.0.1f.

Thanks Steve. Will try, actually was on my way to update when I noticed
there was not yet a BSD port for 1.0.1f. Will try nevertheless.

Regards,

Rainer



Re: svn commit: r1576504 - /httpd/httpd/branches/2.4.x/STATUS

2014-03-11 Thread Yann Ylavic
Probably 2.4.8/STATUS should be fixed too.

On Tue, Mar 11, 2014 at 10:10 PM,  yla...@apache.org wrote:
 Author: ylavic
 Date: Tue Mar 11 21:10:01 2014
 New Revision: 1576504

 URL: http://svn.apache.org/r1576504
 Log:
 Fix 2.4.8 release year.

 Modified:
 httpd/httpd/branches/2.4.x/STATUS

 Modified: httpd/httpd/branches/2.4.x/STATUS
 URL: 
 http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/STATUS?rev=1576504r1=1576503r2=1576504view=diff
 ==
 --- httpd/httpd/branches/2.4.x/STATUS (original)
 +++ httpd/httpd/branches/2.4.x/STATUS Tue Mar 11 21:10:01 2014
 @@ -33,7 +33,7 @@ Release history:
while x.{even}.z versions are Stable/GA releases.]

  2.4.9   : In development.
 -2.4.8   : Tagged on March 11, 2013.
 +2.4.8   : Tagged on March 11, 2014.
  2.4.7   : Tagged on November 19, 2013. Released on Nov 25, 2013
  2.4.6   : Tagged on July 15, 2013. Released July, 22, 2013
  2.4.5   : Tagged on July 11, 2013, not released.




Re: [VOTE] Release Apache httpd 2.4.8 as GA

2014-03-11 Thread Steffen

Builds  fine on  VC11 Win32, other flavors I try tomorrow

Till now it runs fine, but get the following (run OpenSSL 1.0.1f):

AH02559: The SSLCertificateChainFile directive 
(D:/servers/apacheS/conf/extra/httpd-ssl.conf:55) is deprecated, 
SSLCertificateFile should be used instead


In the change log it is mentioned.  By instruction of my certificate 
Certification Authority in conf:


SSLCertificateChainFile conf/sub.class2.server.ca.cer
SSLCACertificateFile conf/ca.cer

Changed to:
SSLCACertificateFile conf/sub.class2.server.ca.cer

and as expected the warning is gone.

Not sure if it has any consequences ?


Steffen



-Original Message- 
From: Jim Jagielski

Sent: Tuesday, March 11, 2014 5:34 PM Newsgroups: gmane.comp.apache.devel
To: httpd
Subject: [VOTE] Release Apache httpd 2.4.8 as GA

The pre-release test tarballs for Apache httpd 2.4.8 can be found
at the usual place:

http://httpd.apache.org/dev/dist/

I'm calling a VOTE on releasing these as Apache httpd 2.4.8 GA.

[ ] +1: Good to go
[ ] +0: meh
[ ] -1: Danger Will Robinson. And why.

Vote will last the normal 72 hrs.

NOTE: The *-deps are only there for convenience. 



Re: [VOTE] Release Apache httpd 2.4.8 as GA

2014-03-11 Thread Gregg Smith

On 3/11/2014 1:29 PM, Rainer Jung wrote:

On 11.03.2014 17:34, Jim Jagielski wrote:

The pre-release test tarballs for Apache httpd 2.4.8 can be found
at the usual place:

http://httpd.apache.org/dev/dist/

I'm calling a VOTE on releasing these as Apache httpd 2.4.8 GA.

[ ] +1: Good to go
[ ] +0: meh
[ ] -1: Danger Will Robinson. And why.

Vote will last the normal 72 hrs.

NOTE: The *-deps are only there for convenience.

I get a segfault during startup init on www.apache.org when using SSL.
This didn't happen for r1570851. Candidate is r1573360.


I'm seeing this with OpenSSL 0.9.8y on Windows.


That server currently uses OpenSSL 1.0.1e.

GDB:

Program terminated with signal 11, Segmentation fault.
#0  0x00010287a19a in ssl_set_cert_masks () from
/usr/local/lib/libssl.so.8
(gdb) bt full
#0  0x00010287a19a in ssl_set_cert_masks () from
/usr/local/lib/libssl.so.8
No symbol table info available.
#1  0x00010287a6f6 in ssl_get_server_send_pkey () from
/usr/local/lib/libssl.so.8
No symbol table info available.
#2  0x00010287a7a9 in ssl_get_server_send_cert () from
/usr/local/lib/libssl.so.8
No symbol table info available.
#3  0x000102616d2a in ssl_init_server_certs (pphrases=0x10226ab58,
mctx=0x10227d938, ptemp=optimized out, p=optimized out, s=optimized
out) at ssl_engine_init.c:959
No locals.
#4  ssl_init_server_ctx (pphrases=optimized out, sc=optimized out,
ptemp=optimized out, p=optimized out, s=optimized out) at
ssl_engine_init.c:1287
No locals.
#5  ssl_init_ConfigureServer (s=0x102277350, p=0x102023028,
ptemp=0x102051028, sc=0x10227d7d8, pphrases=optimized out) at
ssl_engine_init.c:1378
 rv =optimized out
#6  0x000102617cfc in ssl_init_Module (p=0x102023028,
plog=optimized out, ptemp=0x102051028, base_server=0x10204dbe8) at
ssl_engine_init.c:228
 mc =optimized out
 sc =optimized out
 s = 0x102277350
 rv = 0
 pphrases = 0x10226ab58
#7  0x0044965c in ap_run_post_config (pconf=0x102023028,
plog=0x10204f028, ptemp=0x102051028, s=0x10204dbe8) at config.c:103
 n = 4
 rv =optimized out
#8  0x0042afd7 in main (argc=9, argv=0x7fffd8c0) at main.c:696
 c = 68 'D'
 showcompile = 0
 showdirectives = 0
 confname = 0x7fffdbb7 /.../conf/httpd.conf
 def_server_root = 0x4655c0 /...
 temp_error_log = 0x0
 error =optimized out
 process = 0x102021118
 pconf = 0x102023028
 plog = 0x10204f028
 ptemp = 0x102051028
 pcommands = 0x102045028
 opt = 0x102045118
 rv =optimized out
 opt_arg = 0x7fffdbfa SSL

...

#3  0x000102616d2a in ssl_init_server_certs (pphrases=0x10226ab58,
mctx=0x10227d938, ptemp=optimized out, p=optimized out, s=optimized
out) at ssl_engine_init.c:959
959 if (!(ssl = SSL_new(mctx-ssl_ctx)) ||

(gdb) print *pphrases
$1 = {pool = 0x102051028, elt_size = 8, nelts = 0, nalloc = 2, elts =
0x10226ab78 }

(gdb) print *mctx
$2 = {sc = 0x10227d7d8, ssl_ctx = 0x102185600, pks = 0x10227da20, pkp =
0x0, ticket_key = 0x10227dab0, protocol = 6, pphrase_dialog_type =
SSL_PPTYPE_BUILTIN,
   pphrase_dialog_path = 0x0, cert_chain = 0x1022784c0 /crt,
crl_path = 0x0, crl_file = 0x0,
   crl_check_mode = SSL_CRLCHECK_UNSET, stapling_enabled = 0,
stapling_resptime_skew = -1, stapling_resp_maxage = -1,
stapling_cache_timeout = -1,
   stapling_return_errors = 4294967295, stapling_fake_trylater =
4294967295, stapling_errcache_timeout = -1, stapling_responder_timeout =
-1, stapling_force_url = 0x0,
   srp_vfile = 0x0, srp_unknown_user_seed = 0x0, srp_vbase = 0x0, auth =
{ca_cert_path = 0x0, ca_cert_file = 0x0,
 cipher_suite = 0x102108d18 ..., verify_depth = 1, verify_mode =
SSL_CVERIFY_NONE},
   ocsp_enabled = 0, ocsp_force_default = 0, ocsp_responder = 0x0,
ocsp_resptime_skew = -1, ocsp_resp_maxage = -1, ocsp_responder_timeout = -1}

Config structure is roughly:

VirtualHost _default_:443
 ServerName ...
 DocumentRoot ...
 SSLEngine on
 SSLCACertificateFile pem
 SSLCertificateFile crt
 SSLCertificateKeyFile key
 SSLCertificateChainFile pem
/VirtualHost

VirtualHost *:443
SSLEngine on
SSLCertificateFile crt
SSLCertificateKeyFile key
SSLCertificateChainFile crt

DocumentRoot ...
ServerName ...
ServerAlias ...
UseCanonicalName On

non-ssl config items
/VirtualHost

VirtualHost *:443
ServerName ...
UseCanonicalName Off
VirtualDocumentRoot ...
VirtualScriptAlias ...
ServerAlias ...

SSLEngine on
SSLCertificateFile crt
SSLCertificateKeyFile key
SSLCertificateChainFile crt

non-ssl config items
/VirtualHost

The certificates etc. in the three blocks are three different ones.

I'll have a look what I can find out, just an early heads-up.

Regards,

Rainer




Re: [VOTE] Release Apache httpd 2.4.8 as GA

2014-03-11 Thread Falco Schwarz

 On 11 Mar 2014, at 22:43, Steffen i...@apachelounge.com wrote:
 
 Builds  fine on  VC11 Win32, other flavors I try tomorrow
 
 Till now it runs fine, but get the following (run OpenSSL 1.0.1f):
 
 AH02559: The SSLCertificateChainFile directive 
 (D:/servers/apacheS/conf/extra/httpd-ssl.conf:55) is deprecated, 
 SSLCertificateFile should be used instead
 
 In the change log it is mentioned.  By instruction of my certificate 
 Certification Authority in conf:
 
 SSLCertificateChainFile conf/sub.class2.server.ca.cer
 SSLCACertificateFile conf/ca.cer
 
 Changed to:
 SSLCACertificateFile conf/sub.class2.server.ca.cer
 
 and as expected the warning is gone.
 
 Not sure if it has any consequences ?

Instead of using SSLCACertificateFile, try using only
SSLCertificateFile, as described here:
http://httpd.apache.org/docs/2.4/mod/mod_ssl.html#sslcertificatefile


Re: [VOTE] Release Apache httpd 2.4.8 as GA

2014-03-11 Thread Rainer Jung
On 11.03.2014 21:53, Rainer Jung wrote:
 On 11.03.2014 21:41, Dr Stephen Henson wrote:
 On 11/03/2014 20:29, Rainer Jung wrote:
 On 11.03.2014 17:34, Jim Jagielski wrote:
 The pre-release test tarballs for Apache httpd 2.4.8 can be found
 at the usual place:

http://httpd.apache.org/dev/dist/

 I'm calling a VOTE on releasing these as Apache httpd 2.4.8 GA.

 [ ] +1: Good to go
 [ ] +0: meh
 [ ] -1: Danger Will Robinson. And why.

 Vote will last the normal 72 hrs.

 NOTE: The *-deps are only there for convenience.

 I get a segfault during startup init on www.apache.org when using SSL.
 This didn't happen for r1570851. Candidate is r1573360.

 That server currently uses OpenSSL 1.0.1e.

 GDB:

 Program terminated with signal 11, Segmentation fault.
 #0  0x00010287a19a in ssl_set_cert_masks () from
 /usr/local/lib/libssl.so.8
 (gdb) bt full
 #0  0x00010287a19a in ssl_set_cert_masks () from
 /usr/local/lib/libssl.so.8
 No symbol table info available.
 #1  0x00010287a6f6 in ssl_get_server_send_pkey () from
 /usr/local/lib/libssl.so.8

 Could be a known issue in OpenSSL 1.0.1e which is fixed in 1.0.1f.
 
 Thanks Steve. Will try, actually was on my way to update when I noticed
 there was not yet a BSD port for 1.0.1f. Will try nevertheless.

Updating to OpenSSL 1.0.1f fixed it.

Regards,

Rainer



Re: [VOTE] Release Apache httpd 2.4.8 as GA

2014-03-11 Thread Reindl Harald


Am 11.03.2014 22:52, schrieb Falco Schwarz:
 On 11 Mar 2014, at 22:43, Steffen i...@apachelounge.com 
 mailto:i...@apachelounge.com wrote:
 Builds  fine on  VC11 Win32, other flavors I try tomorrow

 Till now it runs fine, but get the following (run OpenSSL 1.0.1f):

 AH02559: The SSLCertificateChainFile directive 
 (D:/servers/apacheS/conf/extra/httpd-ssl.conf:55) is deprecated,
 SSLCertificateFile should be used instead

 In the change log it is mentioned.  By instruction of my certificate 
 Certification Authority in conf:

 SSLCertificateChainFile conf/sub.class2.server.ca.cer
 SSLCACertificateFile conf/ca.cer

 Changed to:
 SSLCACertificateFile conf/sub.class2.server.ca.cer

 and as expected the warning is gone.

 Not sure if it has any consequences ?
 
 Instead of using SSLCACertificateFile, try using only
 SSLCertificateFile, as described here:
 http://httpd.apache.org/docs/2.4/mod/mod_ssl.html#sslcertificatefile

caution in context of SSLUseStapling On

maybe that works with 2.4.8 too, with 2.4.7 it does not in case
having cert/key/ca-chain combined in SSLCertificateFile

however, i build http://httpd.apache.org/dev/dist/httpd-2.4.8.tar.bz2
in a short on Fedora 20 x86_64 with openssl-1.0.1e and likely give
a vote tomorrow



signature.asc
Description: OpenPGP digital signature


Re: [VOTE] Release Apache httpd 2.4.8 as GA

2014-03-11 Thread Steffen


SLCertificateFile points already the certificate:

SSLCertificateFile conf/ssl.crt
SSLCertificateKeyFile conf/ssl.key

The doc says the directive can be used multiple times.
So I added :  SSLCertificateFile conf/sub.class2.server.ca.cer

But then Apache does not start:

[Tue Mar 11 23:03:56.812199 2014] [ssl:emerg] [pid 4356:tid 468] 
AH02577: Init: SSLPassPhraseDialog builtin is not supported on Win32 
(key file D:/servers/apacheS/conf/sub.class2.server.ca.cer)
[Tue Mar 11 23:03:56.812199 2014] [ssl:emerg] [pid 4356:tid 468] 
AH02312: Fatal error initialising mod_ssl, exiting.
[Tue Mar 11 23:03:56.812199 2014] [ssl:emerg] [pid 4356:tid 468] 
AH02564: Failed to configure encrypted (?) private key 
www.land10web.com:443:1, check 
D:/servers/apacheS/conf/sub.class2.server.ca.cer
[Tue Mar 11 23:03:56.813199 2014] [ssl:emerg] [pid 4356:tid 468] SSL 
Library Error: error:0D0680A8:asn1 encoding 
routines:ASN1_CHECK_TLEN:wrong tag
[Tue Mar 11 23:03:56.813199 2014] [ssl:emerg] [pid 4356:tid 468] SSL 
Library Error: error:0D08303A:asn1 encoding 
routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error
[Tue Mar 11 23:03:56.813199 2014] [ssl:emerg] [pid 4356:tid 468] SSL 
Library Error: error:0D0680A8:asn1 encoding 
routines:ASN1_CHECK_TLEN:wrong tag
[Tue Mar 11 23:03:56.813199 2014] [ssl:emerg] [pid 4356:tid 468] SSL 
Library Error: error:0D07803A:asn1 encoding 
routines:ASN1_ITEM_EX_D2I:nested asn1 error (Type=RSA)
[Tue Mar 11 23:03:56.813199 2014] [ssl:emerg] [pid 4356:tid 468] SSL 
Library Error: error:04093004:rsa routines:OLD_RSA_PRIV_DECODE:RSA lib

...

So I leave it now with SSLCACertificateFile 
conf/sub.class2.server.ca.cer , which looks working fine.




On Tuesday 11/03/2014 at 22:53, Falco Schwarz  wrote:




On 11 Mar 2014, at 22:43, Steffen i...@apachelounge.com wrote:




Builds  fine on  VC11 Win32, other flavors I try tomorrow

Till now it runs fine, but get the following (run OpenSSL 1.0.1f):

AH02559: The SSLCertificateChainFile directive 
(D:/servers/apacheS/conf/extra/httpd-ssl.conf:55) is deprecated, 
SSLCertificateFile should be used instead


In the change log it is mentioned.  By instruction of my certificate 
Certification Authority in conf:


SSLCertificateChainFile conf/sub.class2.server.ca.cer
SSLCACertificateFile conf/ca.cer

Changed to:
SSLCACertificateFile conf/sub.class2.server.ca.cer

and as expected the warning is gone.

Not sure if it has any consequences ?


Instead of using SSLCACertificateFile, try using only
SSLCertificateFile, as described here:
http://httpd.apache.org/docs/2.4/mod/mod_ssl.html#sslcertificatefile








Re: Re: Adding AddHandler support for mod_proxy

2014-03-11 Thread Andreas Bosch

Am 27.02.2014 18:19, schrieb ryo takatsuki:

Thx for the patch! Let me take a look... I'm assuming that there's
no real work-around other than the patch itself, right?

If there is, we could not find it :) We have been searching for months
and trying different approaches. This is required to work with out of
the box installation of many apps without requiring them to modify
their htaccess files.

Thanks for looking into it!



Hi,
You can put the patch in its own module, it is not required to be part 
of mod_proxy if you can accept to use internals of one module in 
another. That is what I am currently doing with apache 2.4 since I like 
to use the binary package of my distribution without the need to 
recompile the whole server.


https://gist.github.com/progandy/6ed4eeea60f6277c3e39/


2014-02-27 14:24 GMT+01:00 Jim Jagielski j...@jagunet.com:

Thx for the patch! Let me take a look... I'm assuming that there's
no real work-around other than the patch itself, right?

On Feb 26, 2014, at 1:47 PM, ryo takatsuki ryotakats...@gmail.com wrote:


Hi all,

Any other comments about the patch? I believe it is simple enough and
could ease the migration from mod_php to PHP-FPM (and make use of the
new event mode) with minimal changes to the default configurations.
Could you consider adding it? Pretty please :)

To give more background, at Bitnami we have 800.000+ monthly *new*
installs just for Apache + PHP environments, a growing number of them
in the cloud. We have daily requests for switching to nginx as the
default, but we believe Apache 2.4 event MPM + PHP-FPM to be
equivalent in terms of performance and you get all the other goodness
of Apache. This is a small change that would make the transition to
the event MPM on our side significantly easier (long story)

Best regards,

Juanjo.

2014-02-18 15:46 GMT+01:00 ryo takatsuki ryotakats...@gmail.com:

AddHandler might be tricky from security point of view, eg. most of cms software
usually checks only for last extension before writing uploaded files,
but this AddHandler will also
pass test.php.jpeg to php which might execute this

Yes, It would be probably safer to use something like:

FilesMatch \.php$
SetHandler  proxy:unix:/path/to/app.sock|fcgi://localhost/
/FilesMatch

2014-02-17 0:11 GMT+01:00 Lazy lazy...@gmail.com:

2014-02-06 ryo takatsuki ryotakats...@gmail.com:

Hi,

I have an improvement request to suggest but I would like to first provide
some background to justify it, I apologise for the long email :).

I'm actively using mod_proxy to forward PHP files requests to PHP-FPM. My
current approach is to use a RewriteRule with the 'P' flag because (in most
of the cases) it plays nicely with other rules configured by the
applications I'm configuring, as well as allowing per-Directory
configurations.

To make it properly work I must assure the proxy RewriteRule must be the
latest one to be evaluated. The problem is that from time to time I
encounter corner cases in which the rules previously executed include a [L]
option that abort the next rules evaluation, skipping the proxy one, making
Apache serve the PHP text as plain text. This can be solved by tweaking the
rules but it is a tedious process and is hard to determine all the scenarios
in which the rewrites could go wrong.

IMHO this is a good idea, a handler is more compatible with .htacess
files created for
mod_php and it fits shared hosting env


Thinking about my goal with all of this was at the beginning, I realised I
only wanted a way of configuring a handler for all my PHP files, that in
this case is PHP-FPM, without having to worry about what happens before the
resource is going to be served. This made my think about the possibility of
adding this functionality to mod_proxy itself, allowing defining a proxy
worker as a handler for certain types of files. Something like:

AddHandler proxy:unix:/path/to/app.sock|fcgi://localhost/ .php

AddHandler might be tricky from security point of view, eg. most of cms software
usually checks only for last extension before writing uploaded files,
but this AddHandler will also
pass test.php.jpeg to php which might execute this


I made a quick POC, it is a really small change and for those in my
situation it could really simplify the configuration of their apps. Of
course, I'm open to criticisms and alternative solutions :).


The code that adds the new functionality is inserted at the beginning of
mod_proxy's proxy_handler. The conditions are a little weird because I only
wanted to check the handler if it is not a proxy request already.

diff --git a/modules/proxy/mod_proxy.c b/modules/proxy/mod_proxy.c
index 9d7c92f..49f3bdc 100644
--- a/modules/proxy/mod_proxy.c
+++ b/modules/proxy/mod_proxy.c
@@ -927,8 +927,20 @@ static int proxy_handler(request_rec *r)
struct dirconn_entry *list = (struct dirconn_entry
*)conf-dirconn-elts;

/* is this for us? */
-if (!r-proxyreq || !r-filename || strncmp(r-filename, proxy:, 6)
!= 0)
+if (!r-filename)
+  

Re: [VOTE] Release Apache httpd 2.4.8 as GA

2014-03-11 Thread Dr Stephen Henson
On 12/03/2014 00:30, Dr Stephen Henson wrote:
 
 The fix was applied on Feb 11 2013. That would mean that official releases
 affected would be 0.9.8y, 1.0.0j and 1.0.1c. Any later official release should
 include the fix but we weren't planning to make any more 0.9.8 official 
 releases
 though a 0.9.8 snapshot should include the fix.
 
 OS specific versions of OpenSSL might not have included the fix. This is the
 actual diff:
 
 http://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=147dbb2fe3bead7a10
 

It looks like the only case this can happen is ssl_init_server_certs where an
SSL structure is created, SSL_get_certificate called and then it is freed.

If so then calling SSL_set_connect_state before the SSL_get_certificate
call is a potential workaround. This works because the faulty code isn't used by
SSL structures where ssl-server == 0 and SSL_set_connect_state does that,
among other things.

This is a bit of a hack because it's called on a server SSL structure. This
would probably fail horribly if an attempt was made to use the SSL structure but
in this case we're freeing it up immediately so this should hopefully not 
matter.

Steve.
-- 
Dr Stephen Henson. OpenSSL Software Foundation, Inc.
1829 Mount Ephraim Road
Adamstown, MD 21710
+1 877-673-6775
shen...@opensslfoundation.com


Re: [VOTE] Release Apache httpd 2.4.8 as GA

2014-03-11 Thread Dr Stephen Henson
On 11/03/2014 21:46, Gregg Smith wrote:
 On 3/11/2014 1:29 PM, Rainer Jung wrote:
 On 11.03.2014 17:34, Jim Jagielski wrote:
 The pre-release test tarballs for Apache httpd 2.4.8 can be found
 at the usual place:

 http://httpd.apache.org/dev/dist/

 I'm calling a VOTE on releasing these as Apache httpd 2.4.8 GA.

 [ ] +1: Good to go
 [ ] +0: meh
 [ ] -1: Danger Will Robinson. And why.

 Vote will last the normal 72 hrs.

 NOTE: The *-deps are only there for convenience.
 I get a segfault during startup init on www.apache.org when using SSL.
 This didn't happen for r1570851. Candidate is r1573360.
 
 I'm seeing this with OpenSSL 0.9.8y on Windows.
 

Here are some more details of the bug in OpenSSL I *think* triggers this.

The function SSL_get_certificate was modified in some versions of OpenSSL to
return the certificate the server used instead of the current certificate it had
done previously. This was to make OCSP stapling work with multiple configured
certificates. Unfortunately a bug in the change mean it would crash if it was
called before the server sent the certificate. Later versions of OpenSSL
restored the original behaviour unless SSL_get_certificate was called inside the
OCSP callback when it would return the certificate actually sent.

The fix was applied on Feb 11 2013. That would mean that official releases
affected would be 0.9.8y, 1.0.0j and 1.0.1c. Any later official release should
include the fix but we weren't planning to make any more 0.9.8 official releases
though a 0.9.8 snapshot should include the fix.

OS specific versions of OpenSSL might not have included the fix. This is the
actual diff:

http://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=147dbb2fe3bead7a10

Steve.
-- 
Dr Stephen Henson. OpenSSL Software Foundation, Inc.
1829 Mount Ephraim Road
Adamstown, MD 21710
+1 877-673-6775
shen...@opensslfoundation.com


Re: [VOTE] Release Apache httpd 2.4.8 as GA

2014-03-11 Thread Noel Butler
 

On 12/03/2014 09:17, Noel Butler wrote: 

 On 12/03/2014 02:34, Jim Jagielski wrote: 
 
 The pre-release test tarballs for Apache httpd 2.4.8 can be found
 at the usual place:
 
 http://httpd.apache.org/dev/dist/ [1]
 
 I'm calling a VOTE on releasing these as Apache httpd 2.4.8 GA.
 
 [ ] +1: Good to go
 [ ] +0: meh
 [ ] -1: Danger Will Robinson. And why.
 
 Vote will last the normal 72 hrs.
 
 NOTE: The *-deps are only there for convenience.
 
 -1 
 
 slackware 13.1 w/apr-1.50, apr-util-1.5.3, SSL 0.9.8y - segfaults 
 
 a third party on IRC reports likewise on RHEL 5.5 
 
 So it seems more than just openssl 1.0.1e affected

Too early in morning, forgot to add slackware 14.0, 14.1 builds and
execution succeeds, but both use openssl 1.0.1f 

 

Links:
--
[1] http://httpd.apache.org/dev/dist/


Re: [VOTE] Release Apache httpd 2.4.8 as GA

2014-03-11 Thread Noel Butler
 

On 12/03/2014 02:34, Jim Jagielski wrote: 

 The pre-release test tarballs for Apache httpd 2.4.8 can be found
 at the usual place:
 
 http://httpd.apache.org/dev/dist/ [1]
 
 I'm calling a VOTE on releasing these as Apache httpd 2.4.8 GA.
 
 [ ] +1: Good to go
 [ ] +0: meh
 [ ] -1: Danger Will Robinson. And why.
 
 Vote will last the normal 72 hrs.
 
 NOTE: The *-deps are only there for convenience.

-1 

slackware 13.1 w/apr-1.50, apr-util-1.5.3, SSL 0.9.8y - segfaults 

a third party on IRC reports likewise on RHEL 5.5 

So it seems more than just openssl 1.0.1e affected 

 

Links:
--
[1] http://httpd.apache.org/dev/dist/