<%! /********************************************************************** ** ** SAP AG Walldorf ** (C) Copyright SAP AG 1999-2010 ** ***********************************************************************/ #include "publicincl/http_subhdl.inc" #include "publicincl/tools.inc" struct icm_auth_status_type { boolean active; string perm_file; string auth_file; string filt_profile; string filt_pattern; }; struct icm_perm_type { int no; string prefix; string virt_host; string logon_group; string user; string group; string clientip; string serverip; string perm; int flags; }; %> <% int i, count, nr, rc, dir, user_count, max; int rule_count, rule_len, rule_last; string hdlsel, what, browser, fld, lastControlID; string sstr, prefix; string filter_param, rules[]; string tab_hdlsel[]; boolean is_admin; struct icm_http_subhdl icm_subhdl_tab[]; struct icm_sort_type sort_tab[]; struct icm_user_type icm_user_info[]; struct icm_auth_status_type icm_auth_status; struct icm_perm_type icm_perm_tab[]; const string ssort = "../public/images/sort.gif"; const string sasc = "../public/images/sortasc.gif"; const string sdesc = "../public/images/sortdesc.gif"; sort_tab[0].header = "Permission"; sort_tab[0].tool = "Sort by permission flag"; sort_tab[0].ffield = "perm"; sort_tab[1].header = "URL Prefix"; sort_tab[1].tool = "Sort by URL prefix"; sort_tab[1].ffield = "prefix"; sort_tab[2].header = "Logon Group"; sort_tab[2].tool = "Sort by Logon Group specification"; sort_tab[2].ffield = "logon_group"; sort_tab[3].header = "User"; sort_tab[3].tool = "Sort by user name"; sort_tab[3].ffield = "user"; sort_tab[4].header = "Group"; sort_tab[4].tool = "Sort by group name"; sort_tab[4].ffield = "group"; sort_tab[5].header = "Client IP"; sort_tab[5].tool = "Sort by client IP address"; sort_tab[5].ffield = "clientip"; sort_tab[6].header = "Server IP"; sort_tab[6].tool = "Sort by server IP address"; sort_tab[6].ffield = "serverip"; max = arraylen(sort_tab); for (i=0; i < max;i++){ sort_tab[i].url = ssort; sort_tab[i].dir = 0; } is_admin = __icm_get_system_property ("is_admin"); browser = __icm_get_browser_type(); lastControlID = htmlenc(__icm_get_form_field ("lastControlID")); what = anumenc(__icm_get_form_field ("what")); filter_param = __icm_get_param ("csi/enable"); count = __icm_http_hdl (2,icm_subhdl_tab,11); for (i = 0; i < count; i++) { tab_hdlsel[i] = ""; } hdlsel = anumenc(__icm_get_form_field ("hdlsel")); if (hdlsel != "") tab_hdlsel[hdlsel] = "selected"; rc = __icm_auth_hdl (1,hdlsel,icm_auth_status); rc = __icm_auth_hdl (2,hdlsel,icm_perm_tab); max = arraylen(icm_perm_tab); for (nr = 0; nr < max; nr++) { icm_perm_tab[nr].no = nr; if ((icm_perm_tab[nr].flags & 3) == 1) icm_perm_tab[nr].perm = "Permit"; if ((icm_perm_tab[nr].flags & 3) == 2) icm_perm_tab[nr].perm = "Deny"; if ((icm_perm_tab[nr].flags & 3) == 3) icm_perm_tab[nr].perm = "Secure"; } user_count = 0; if ((rc == 0) && (icm_auth_status.auth_file != "")) user_count = __icm_get_user_info(icm_auth_status.auth_file, icm_user_info); dir = __icm_get_form_field ("dir"); sstr = __icm_get_form_field ("sstr"); if (sstr != "") sort (icm_perm_tab, dir, sstr); max = arraylen(sort_tab); for (i=0; i < max;i++){ if (sstr == sort_tab[i].ffield){ if (dir == 1) { sort_tab[i].url = sdesc; sort_tab[i].dir = -1; } else if (dir == -1) { sort_tab[i].url = sasc; sort_tab[i].dir = 1; } else sort_tab[i].dir = 1; } else sort_tab[i].dir = 1; } %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <link rel=stylesheet type="text/css" href="../public/css/controls_<%=browser%>.css"> <link rel=stylesheet type="text/css" href="../public/css/sapbsp.css"> <title> Access Handler </title> <script type="text/javascript" src="../public/js/bspMenu.js"></script> <script type="text/javascript"> <!-- function callSubmitCombo(form) { var Form = document[form]; Form.submit(); } function callSubmitAction(dir,sstr) { document.sortForm.dir.value = dir; document.sortForm.sstr.value = sstr; document.sortForm.submit(); } window.onload = function() { initializeMenu ("activeMenu", "activeObj"); //initializeMenu ("inactiveMenu", "inactiveObj"); initializeMenu ("PermMenu", "permObj"); initializeMenu ("FilterMenu", "filterObj"); initializeMenu ("FilterMenu", "filterObj1"); restoreMenuFocus('<%=lastControlID%>'); } document.onclick=bspMenuHide; --> </script> </head> <body class="sapBdy"> <div id="activeMenu" class="bspMenuBox" onMouseover="bspMenuHighlight(event)" onMouseout="bspMenuUnHighlight(event)" onClick="bspMenuSelect(event,'activeMenu')" display:none> <% if (icm_auth_status.active) { %> <div title="Deactivate Handler" class="bspMenuItem" url="./confirm.icp?what=deactivate_auth&hdlsel=<%=hdlsel%>">Deactivate Handler</div> <hr> <div title="Close Menu" class="bspMenuItem">Close Menu</div> <% } else { %> <div title="Activate Handler" class="bspMenuItem" url="./confirm.icp?what=activate_auth&hdlsel=<%=hdlsel%>">Activate Handler</div> <hr> <div title="Close Menu" class="bspMenuItem">Close Menu</div> <% } %> </div> <div id="FilterMenu" class="bspMenuBox" onMouseover="bspMenuHighlight(event)" onMouseout="bspMenuUnHighlight(event)" onClick="bspMenuSelect(event,'FilterMenu')" display:none> <% if (filter_param == "FALSE" || icm_auth_status.filt_profile == "") { %> <div title="Activate Content Filter" class="bspMenuItem" url="./confirm.icp?what=icm_filter&p1=1">Activate Content Filter</div> <% } else { %> <div title="Deactivate Content Filter" class="bspMenuItem" url="./confirm.icp?what=icm_filter&p1=0&hdlsel=<%=hdlsel%>">Deactivate Content Filter</div> <% } if(icm_auth_status.filt_profile != "") { %> <div title="Change Content Filter" class="bspMenuItem" url="./filter_admin.icp?afile=filter&hdlsel=<%=hdlsel%>">Change Content Filter</div> <% } %> <hr> <div title="Close Menu" class="bspMenuItem">Close Menu</div> </div> <div id="PermMenu" class="bspMenuBox" onMouseover="bspMenuHighlight(event)" onMouseout="bspMenuUnHighlight(event)" onClick="bspMenuSelect(event,'PermMenu')" display:none> <div title="Reload Permission File" class="bspMenuItem" url="./confirm.icp?what=reload_perm&hdlsel=<%=hdlsel%>">Reload Permission File</div> <hr> <div title="Close Menu" class="bspMenuItem">Close Menu</div> </div> <table border="0" cellspacing="0" cellpadding="0" class="sapTbvAlt" width="100%"> <form action="" method="GET" name="FormHdl"> <tr> <td class="sapTbvCellAlt" align="left"> <b><i><label for="hdlsel">Access Control and Authorization Handler</label> for <select title="Access Handler" id="hdlsel" name="hdlsel" class="sapDdlStd" onChange="callSubmitCombo('FormHdl');"> <% if (count == 0) __output("<option value=\"0\">icm/HTTP/auth_0</option>"); for (i = 0; i < count; i++) { %> <option value="<%=i%>" <%=tab_hdlsel[i]%>>icm/HTTP/auth_<%=i%></option> <% } %> </select> </i></b> </td> <td class="sapTbvCellAlt"> </td> <td class="sapTbvCellAlt" width="250" align="right"> <a href="javascript:parent.frames['main'].location.reload()" class="sapBtnEmph" title="refresh page"><nobr>Refresh</nobr></a> </td> </tr> <tr> <td class="sapTbvCellStd">Access Handler Status</td> <td class="sapTbvCellStd"> <% if (icm_auth_status.active) { if (is_admin) { __output("<a title=\"Access Handler Status Menu\" href=\"javascript:void(0);\" id=\"activeObj\" class=\"sapBtnStd\" onKeyUp=\"bspMenuMainAction('activeMenu', event, this);\" onClick=\"bspMenuMainAction('activeMenu', event, this);\"><i>active</i>"); __output(" <img border=\"0\" src=\"../public/images/cmenu/Triangle.gif\"></a>"); } else { __output("<i>active</i>"); } __output(" <img title=\"green\" alt=\"green\" src=\"../public/icons/s_s_tl_g.gif\">"); } else { if (is_admin) { __output("<a title=\"Access Handler Status Menu\" href=\"javascript:void(0);\" id=\"activeObj\" class=\"sapBtnStd\" onKeyUp=\"bspMenuMainAction('activeMenu', event, this);\" onClick=\"bspMenuMainAction('activeMenu', event, this);\"><i>inactive</i>"); __output(" <img border=\"0\" src=\"../public/images/cmenu/Triangle.gif\"></a>"); } else { __output("<i>inactive</i>"); } __output(" <img title=\"red\" alt=\"red\" src=\"../public/icons/s_s_tl_r.gif\">"); } %> </td> <td class="sapTbvCellStd"> </td> </tr> <tr> <td class="sapTbvCellStd">Name of Authentication File:</td> <td class="sapTbvCellStd"><%=icm_auth_status.auth_file%> <% if (is_admin && (icm_auth_status.auth_file != "")) { %> <% } %> </td> <td class="sapTbvCellStd"> </td> </tr> <tr> <td class="sapTbvCellStd">Name of Permission File:</td> <td class="sapTbvCellStd"> <% if (is_admin && (icm_auth_status.perm_file != "")) { %> <a title="Permission File Menu" href="javascript:void(0);" id="permObj" class="sapBtnStd" onKeyUp="bspMenuMainAction('PermMenu', event, this);" onClick="bspMenuMainAction('PermMenu', event, this);"><%=icm_auth_status.perm_file%> <img border="0" src="../public/images/cmenu/Triangle.gif"></a> <% } else __output (icm_auth_status.perm_file); %> </td> <td class="sapTbvCellStd"> </td> </tr> <tr> <td class="sapTbvCellStd">Content Filter:</td> <td class="sapTbvCellStd"> <% if (icm_auth_status.filt_profile != "") { if (is_admin) { %> <a href="javascript:void(0);" id="filterObj" class="sapBtnStd" onKeyUp="bspMenuMainAction('FilterMenu', event, this);" onClick="bspMenuMainAction('FilterMenu', event, this);"><%=htmlenc(icm_auth_status.filt_profile)%> <img border="0" src="../public/images/cmenu/Triangle.gif"></a> <% } else __output (htmlenc(icm_auth_status.filt_profile)); } if (icm_auth_status.filt_profile == "") { %> <img title="yellow" alt="yellow" src="../public/icons/s_s_tl_y.gif"> <br>Filter-adapter library (CSA_LIB) not loaded <% } else { if (filter_param == "FALSE") { %> <img title="red" alt="red" src="../public/icons/s_s_tl_r.gif"> <% } else { %> <img title="green" alt="green" src="../public/icons/s_s_tl_g.gif"> <% } } %> </td> <td class="sapTbvCellStd"> </td> </tr> <tr> <td class="sapTbvCellStd" Colspan="3"> </td> </tr> </form> </table> <% if (icm_auth_status.filt_profile != "") { rule_count = 0; if(icm_auth_status.filt_pattern != "") { rule_len = strlen(icm_auth_status.filt_pattern); if(strsub(icm_auth_status.filt_pattern,0,1) == "(" && strsub(icm_auth_status.filt_pattern,rule_len-1,rule_len) == ")") { nr = 1; } else { nr = 0; } } for (;nr < rule_len; nr++) { if(nr > 1 && strsub(icm_auth_status.filt_pattern,nr-1,nr) == ")" && strsub(icm_auth_status.filt_pattern,nr,nr+1) == "|" && strsub(icm_auth_status.filt_pattern,nr+1,nr+2) == "(") { rules[rule_count] = strsub(icm_auth_status.filt_pattern,rule_last+1,nr-1); rule_last = nr+1; rule_count++; } } if(rule_len > 0 ) { if(strsub(icm_auth_status.filt_pattern,rule_len-1,rule_len) == ")" ) { rules[rule_count] = strsub(icm_auth_status.filt_pattern,rule_last+1,rule_len-1); rule_count++; } if(rule_count == 0) { rules[0] = icm_auth_status.filt_pattern; rule_count++; } } %> <table border=0 cellspacing=1 cellpadding=0 class="sapTbvAlt" width="100%"> <tr> <td class="sapTbvCellAlt" Colspan=2 width="85%"> <b><i>Content Filter <% if (is_admin && (icm_auth_status.filt_profile != "")) { %> <a href="javascript:void(0);" id="filterObj1" class="sapBtnStd" onKeyUp="bspMenuMainAction('FilterMenu', event, this);" onClick="bspMenuMainAction('FilterMenu', event, this);"><%=htmlenc(icm_auth_status.filt_profile)%> <img border="0" src="../public/images/cmenu/Triangle.gif"></a> <% } else __output (htmlenc(icm_auth_status.filt_profile)); %> </i></b> </td> <td class="sapTbvCellAlt" align="right"><nobr> <a href="./confirm.icp?what=reload_filt&hdlsel=<%=hdlsel%>" class="sapBtnEmph">Reload Rules</a> </nobr> </td> </tr> <% if( rule_count == 0 ) { __output("<tr><td class=\"sapTbvCellStd\" colspan=\"3\">no rule</td></tr>"); } else { %> <tr> <td class="sapTbvCellAlt" width="2%"> <i> </i> </td> <td class="sapTbvCellAlt" colspan="2" width="99%"> <i>Rule</i> </td> </tr> <% for (nr = 0; nr < rule_count; nr++) { %> <tr> <td class="sapTbvCellStd" width="2%"> </td> <td class="sapTbvCellStd" colspan="2" width="99%"> <%=htmlenc(rules[nr])%> </td> </tr> <% } } %> </table> <br> <% } %> <table border=0 cellspacing=1 cellpadding=0 class="sapTbvAlt" width="100%"> <form action="" name="sortForm" method="GET"> <input type="hidden" name="hdlsel" value="<%=hdlsel%>"> <input type="hidden" name="dir" value=""> <input type="hidden" name="sstr" value=""> <tr> <td class="sapTbvCellAlt" colspan="7"><i><b>Access Filter</b></i></td> <td class="sapTbvCellAlt" align="right"><nobr> <a accesskey="r" onKeyUp="javascript:callUrlWithKey(event,82,'./confirm.icp?what=reload_perm&hdlsel=<%=hdlsel%>')" href="./confirm.icp?what=reload_perm&hdlsel=<%=hdlsel%>" class="sapBtnEmph"><u>R</u>eload File</a> </nobr> </td> </tr> <tr> <th align="left" class="sapTbvCellAlt"> <i>Index</i> </th> <% max = arraylen(sort_tab); for (i=0;i < max;i++) { %> <th align="left" class="sapTbvCellAlt"><nobr> <i><%=sort_tab[i].header%></i> <a href="javascript:callSubmitAction('<%=sort_tab[i].dir%>','<%=sort_tab[i].ffield%>')" class="sapBtnStd:link"><img src="<%=sort_tab[i].url%>" title="<%=sort_tab[i].tool%>" alt="" border="0"></a></nobr> </th> <% } %> </tr> <% max = arraylen(icm_perm_tab); for (nr = 0; nr < max; nr++) { prefix = ""; if (icm_perm_tab[nr].flags & 4) prefix = "*" + icm_perm_tab[nr].prefix; else if (!(icm_perm_tab[nr].flags & 8)) prefix = icm_perm_tab[nr].prefix + "*"; else prefix = icm_perm_tab[nr].prefix; %> <tr> <td class="sapTbvCellStd"><%=icm_perm_tab[nr].no%></td> <td class="sapTbvCellStd"><%=icm_perm_tab[nr].perm%></td> <td class="sapTbvCellStd"><%=prefix%></td> <td class="sapTbvCellStd"><%=icm_perm_tab[nr].logon_group%></td> <td class="sapTbvCellStd"><%=icm_perm_tab[nr].user%></td> <td class="sapTbvCellStd"><%=icm_perm_tab[nr].group%></td> <td class="sapTbvCellStd"><%=icm_perm_tab[nr].clientip%></td> <td class="sapTbvCellStd"><%=icm_perm_tab[nr].serverip%></td> </tr> <% } %> </form> </table> <br> <table border=0 cellspacing=1 cellpadding=0 class="sapTbvAlt" width="100%"> <tr> <td class="sapTbvCellAlt" Colspan=5> <b><i>Users in file <%=icm_auth_status.auth_file%></i></b> </td> <td class="sapTbvCellAlt" align="right"> <% if (is_admin && (icm_auth_status.auth_file != "")) { %> <a accesskey="e" onKeyUp="javascript:callUrlWithKey(event,69,'./user_admin.icp?afile=auth&hdlsel=<%=hdlsel%>')" href="./user_admin.icp?afile=auth&hdlsel=<%=hdlsel%>" class="sapBtnEmph" title="change/add/del user"><u>E</u>dit Users</a> <% } else __output(" "); %> </td> </tr> <tr> <th align="left" class="sapTbvCellAlt"> <i> </i> </th> <th align="left" class="sapTbvCellAlt"> <i>Name</i> </th> <th align="left" class="sapTbvCellAlt"> <i>Group</i> </th> <th align="left" class="sapTbvCellAlt" width="600"> <i>Client Certificate Data</i> </th> <th align="left" class="sapTbvCellAlt" width="80"> <i>Password</i> </th> <th align="left" class="sapTbvCellAlt" width="50"> <i>Attributes</i> </th> </tr> <% for (nr = 0; nr < user_count; nr++) { %> <tr> <td class="sapTbvCellStd" nowrap align=left width=2><%=nr%></td> <td class="sapTbvCellStd"><%=icm_user_info[nr].user%></td> <td class="sapTbvCellStd"><%=icm_user_info[nr].group%></td> <td class="sapTbvCellStd"><%=icm_user_info[nr].cert%></td> <td class="sapTbvCellStd">set</td> <td class="sapTbvCellStd"> <% if (icm_user_info[nr].locked) __output("<img src=\"../public/icons/s_s_locl.gif\" alt=\"value fixed\">"); else __output(" "); %> </td> </tr> <% } %> </table> </body> </html>