You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by rj...@apache.org on 2007/01/28 14:15:51 UTC
svn commit: r500787 - in /tomcat/connectors/trunk/jk:
native/common/jk_status.c native/common/jk_util.c native/common/jk_util.h
xdocs/miscellaneous/changelog.xml xdocs/reference/status.xml
xdocs/reference/workers.xml
Author: rjung
Date: Sun Jan 28 05:15:50 2007
New Revision: 500787
URL: http://svn.apache.org/viewvc?view=rev&rev=500787
Log:
Adding a configuration attribute to the status worker, to
make user comparison case insensitive (BZ 41318).
Modified:
tomcat/connectors/trunk/jk/native/common/jk_status.c
tomcat/connectors/trunk/jk/native/common/jk_util.c
tomcat/connectors/trunk/jk/native/common/jk_util.h
tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml
tomcat/connectors/trunk/jk/xdocs/reference/status.xml
tomcat/connectors/trunk/jk/xdocs/reference/workers.xml
Modified: tomcat/connectors/trunk/jk/native/common/jk_status.c
URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_status.c?view=diff&rev=500787&r1=500786&r2=500787
==============================================================================
--- tomcat/connectors/trunk/jk/native/common/jk_status.c (original)
+++ tomcat/connectors/trunk/jk/native/common/jk_status.c Sun Jan 28 05:15:50 2007
@@ -260,6 +260,7 @@
int read_only;
char **user_names;
unsigned int num_of_users;
+ int user_case_insensitive;
jk_uint32_t good_mask;
jk_uint32_t bad_mask;
jk_worker_t worker;
@@ -2987,9 +2988,17 @@
unsigned int i;
denied = 1;
for (i = 0; i < w->num_of_users; i++) {
- if (!strcmp(s->remote_user, w->user_names[i])) {
- denied = 0;
- break;
+ if (w->user_case_insensitive) {
+ if (!strcasecmp(s->remote_user, w->user_names[i])) {
+ denied = 0;
+ break;
+ }
+ }
+ else {
+ if (!strcmp(s->remote_user, w->user_names[i])) {
+ denied = 0;
+ break;
+ }
}
}
}
@@ -3502,20 +3511,26 @@
p->xmlns = jk_get_worker_xmlns(props, p->name, JK_STATUS_XMLNS_DEF);
p->doctype = jk_get_worker_xml_doctype(props, p->name, NULL);
p->read_only = jk_get_is_read_only(props, p->name);
+ p->user_case_insensitive = jk_get_worker_user_case_insensitive(props, p->name);
if (JK_IS_DEBUG_LEVEL(l))
jk_log(l, JK_LOG_DEBUG,
- "Status worker '%s' has css '%s' and read_only '%s'",
+ "Status worker '%s' is %s and has css '%s', prefix '%s', name space '%s', xml name space '%s', document type '%s'",
p->name,
+ p->read_only ? "read-only" : "read/write",
p->css ? p->css : "(null)",
- p->read_only ? "true" : "false");
+ p->prefix ? p->prefix : "(null)",
+ p->ns ? p->ns : "(null)",
+ p->xmlns ? p->xmlns : "(null)",
+ p->doctype ? p->doctype : "(null)");
if (jk_get_worker_user_list(props, p->name,
&(p->user_names),
&(p->num_of_users)) && p->num_of_users) {
for (i = 0; i < p->num_of_users; i++) {
if (JK_IS_DEBUG_LEVEL(l))
jk_log(l, JK_LOG_DEBUG,
- "restricting access for status worker '%s' to user '%s'",
- p->name, p->user_names[i]);
+ "Status worker '%s' restricting access to user '%s' case %s",
+ p->name, p->user_names[i],
+ p->user_case_insensitive ? "insensitive" : "sensitive");
}
}
if (jk_get_worker_good_rating(props, p->name,
Modified: tomcat/connectors/trunk/jk/native/common/jk_util.c
URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_util.c?view=diff&rev=500787&r1=500786&r2=500787
==============================================================================
--- tomcat/connectors/trunk/jk/native/common/jk_util.c (original)
+++ tomcat/connectors/trunk/jk/native/common/jk_util.c Sun Jan 28 05:15:50 2007
@@ -85,6 +85,7 @@
#define READ_ONLY_OF_WORKER ("read_only")
#define USER_OF_WORKER ("user")
+#define USER_CASE_OF_WORKER ("user_case_insensitive")
#define GOOD_RATING_OF_WORKER ("good")
#define BAD_RATING_OF_WORKER ("bad")
@@ -182,6 +183,7 @@
XML_DOCTYPE_OF_WORKER,
PROP_PREFIX_OF_WORKER,
STATUS_FAIL_OF_WORKER,
+ USER_CASE_OF_WORKER,
NULL
};
@@ -1027,6 +1029,20 @@
}
+int jk_get_worker_user_case_insensitive(jk_map_t *m, const char *wname)
+{
+ int rc = JK_FALSE;
+ char buf[1024];
+ if (m && wname) {
+ int value;
+ MAKE_WORKER_PARAM(USER_CASE_OF_WORKER);
+ value = jk_map_get_bool(m, buf, 0);
+ if (value)
+ rc = JK_TRUE;
+ }
+ return rc;
+
+}
const char *jk_get_worker_style_sheet(jk_map_t *m, const char *wname, const char *def)
{
Modified: tomcat/connectors/trunk/jk/native/common/jk_util.h
URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_util.h?view=diff&rev=500787&r1=500786&r2=500787
==============================================================================
--- tomcat/connectors/trunk/jk/native/common/jk_util.h (original)
+++ tomcat/connectors/trunk/jk/native/common/jk_util.h Sun Jan 28 05:15:50 2007
@@ -199,6 +199,8 @@
int jk_get_worker_fail_on_status(jk_map_t *m, const char *wname);
+int jk_get_worker_user_case_insensitive(jk_map_t *m, const char *wname);
+
#define TC32_BRIDGE_TYPE 32
#define TC33_BRIDGE_TYPE 33
#define TC40_BRIDGE_TYPE 40
Modified: tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml
URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml?view=diff&rev=500787&r1=500786&r2=500787
==============================================================================
--- tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml (original)
+++ tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml Sun Jan 28 05:15:50 2007
@@ -27,6 +27,10 @@
<subsection name="Native">
<changelog>
<add>
+ <bug>41318</bug>: Add configuration to make status worker user
+ name checks case insensitive. (rjung)
+ </add>
+ <add>
JkStatus: Add estimated time until next global maintenance to other
mime types and adopt jkstatus ant task. (rjung)
</add>
Modified: tomcat/connectors/trunk/jk/xdocs/reference/status.xml
URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/xdocs/reference/status.xml?view=diff&rev=500787&r1=500786&r2=500787
==============================================================================
--- tomcat/connectors/trunk/jk/xdocs/reference/status.xml (original)
+++ tomcat/connectors/trunk/jk/xdocs/reference/status.xml Sun Jan 28 05:15:50 2007
@@ -256,13 +256,23 @@
worker.jk-manage.type=status
worker.jk-manage.mount=/admin/status/jk
</source>
+Starting with version 1.2.21, a read/write status worker can also be switched temporarily
+into read-only mode by the user via a link in the HTML GUI. The user can always switch it
+back to read/write. Only a status worker configured as read-only via the "read_only" attribute
+is completely safe from applying any changes.
+</p>
+<p>
The other attribute you can use is <b>user</b>. By default this list is empty, which means
no limit on the users. You can set "user" to a comma separated list of user names. If your
-web server is confiugured such that it sends the user names with the request, the status worker
+web server is configured such that it sends the user names with the request, the status worker
will check, if the name attached with the request is contained in it's "user" list.
</p>
<p>
The user list can be split over multiple occurences of the "user" attribute.
+</p>
+<p>
+By default, the user names are matched case sensitively. Starting with version 1.2.21 you can set
+the attribute <b>user_case_insensitive</b> to "True". Then the comparison will be made case insensitive.
</p>
</subsection>
Modified: tomcat/connectors/trunk/jk/xdocs/reference/workers.xml
URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/xdocs/reference/workers.xml?view=diff&rev=500787&r1=500786&r2=500787
==============================================================================
--- tomcat/connectors/trunk/jk/xdocs/reference/workers.xml (original)
+++ tomcat/connectors/trunk/jk/xdocs/reference/workers.xml Sun Jan 28 05:15:50 2007
@@ -392,6 +392,14 @@
This feature has been added in <b>jk 1.2.20</b>.
</p>
</directive>
+<directive name="user_case_insensitive" default="False" required="false">
+By default, the user names are matched case sensitively. You can set
+user_case_insensitive=True to make the comparison case insensitive.
+This may be especially useful on the Windows platform.
+<p>
+This feature has been added in <b>jk 1.2.21</b>.
+</p>
+</directive>
<directive name="good" default="a.o,a.n,a.b,a.r" required="false">
For every load balancer worker, the status worker shows a summary
of the state of its members. There are three such states,
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org