Added display page for server/request parameters, this will be used to monitor what data is sent via the AJP-proxy.
Refactoring/documentation is next.
This commit is contained in:
parent
b28b37cda2
commit
ef88a11790
src/main/java/se/su/dsv/scipro
@ -28,6 +28,7 @@ import se.su.dsv.scipro.admin.pages.settings.AdminFinalSeminarSettingsPage;
|
||||
import se.su.dsv.scipro.admin.pages.settings.AdminFinalSeminarSettingsPerProjectClassPage;
|
||||
import se.su.dsv.scipro.admin.pages.settings.AdminGeneralSettingsPage;
|
||||
import se.su.dsv.scipro.admin.pages.settings.AdminPeerSettingsPage;
|
||||
import se.su.dsv.scipro.admin.pages.settings.AdminServerEnvironmentSettingsPage;
|
||||
import se.su.dsv.scipro.basepages.DemoPage;
|
||||
import se.su.dsv.scipro.basepages.errorpages.AccessDeniedPage;
|
||||
import se.su.dsv.scipro.basepages.errorpages.NotFoundPage;
|
||||
@ -190,6 +191,7 @@ public class SciProApplication extends RepositoryApplication implements IThemabl
|
||||
mountBookmarkablePage("admin/files", SysAdminFilePage.class);
|
||||
mountBookmarkablePage("admin/allfinalseminars", AdminFinalSeminarPage.class);
|
||||
mountBookmarkablePage("admin/settings", AdminGeneralSettingsPage.class);
|
||||
mountBookmarkablePage("admin/settings/serverenvironment", AdminServerEnvironmentSettingsPage.class);
|
||||
mountBookmarkablePage("admin/settings/finalseminargeneralsettings", AdminFinalSeminarSettingsPage.class);
|
||||
mountBookmarkablePage("admin/settings/finalseminarprojectlevel", AdminFinalSeminarSettingsPerProjectClassPage.class);
|
||||
mountBookmarkablePage("admin/settings/peer", AdminPeerSettingsPage.class);
|
||||
|
@ -10,6 +10,7 @@ import se.su.dsv.scipro.admin.pages.settings.AdminFinalSeminarSettingsPage;
|
||||
import se.su.dsv.scipro.admin.pages.settings.AdminFinalSeminarSettingsPerProjectClassPage;
|
||||
import se.su.dsv.scipro.admin.pages.settings.AdminGeneralSettingsPage;
|
||||
import se.su.dsv.scipro.admin.pages.settings.AdminPeerSettingsPage;
|
||||
import se.su.dsv.scipro.admin.pages.settings.AdminServerEnvironmentSettingsPage;
|
||||
import se.su.dsv.scipro.components.AbstractMenuPanel;
|
||||
import se.su.dsv.scipro.icons.ImageIcon;
|
||||
import se.su.dsv.scipro.security.auth.Authorization;
|
||||
@ -29,6 +30,7 @@ public abstract class AbstractAdminSettingsPage extends AbstractAdminPage {
|
||||
protected List<MenuItem> getItemList() {
|
||||
final List<MenuItem> items = new ArrayList<MenuItem>();
|
||||
items.add(new MenuItem("General settings", AdminGeneralSettingsPage.class));
|
||||
items.add(new MenuItem("Server Environment", AdminServerEnvironmentSettingsPage.class));
|
||||
items.add(new MenuItem("Final seminar general settings", AdminFinalSeminarSettingsPage.class));
|
||||
items.add(new MenuItem("Final seminar project level settings", AdminFinalSeminarSettingsPerProjectClassPage.class));
|
||||
items.add(new MenuItem("Peer settings", AdminPeerSettingsPage.class, ImageIcon.ICON_SETTINGS));
|
||||
|
17
src/main/java/se/su/dsv/scipro/admin/pages/settings/AdminServerEnvironmentSettingsPage.html
Normal file
17
src/main/java/se/su/dsv/scipro/admin/pages/settings/AdminServerEnvironmentSettingsPage.html
Normal file
@ -0,0 +1,17 @@
|
||||
<!DOCTYPE html>
|
||||
<html
|
||||
xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
|
||||
<body>
|
||||
<wicket:extend>
|
||||
<h3 class="section">Server/Request environment</h3>
|
||||
<div style="overflow:auto;height:50%;">
|
||||
<ul>
|
||||
<li wicket:id="requestAttributes">
|
||||
<span wicket:id="name">[name]</span>:
|
||||
<span wicket:id="value">[value]</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</wicket:extend>
|
||||
</body>
|
||||
</html>
|
87
src/main/java/se/su/dsv/scipro/admin/pages/settings/AdminServerEnvironmentSettingsPage.java
Normal file
87
src/main/java/se/su/dsv/scipro/admin/pages/settings/AdminServerEnvironmentSettingsPage.java
Normal file
@ -0,0 +1,87 @@
|
||||
package se.su.dsv.scipro.admin.pages.settings;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Enumeration;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.apache.wicket.PageParameters;
|
||||
import org.apache.wicket.markup.html.basic.Label;
|
||||
import org.apache.wicket.markup.html.list.ListItem;
|
||||
import org.apache.wicket.markup.html.list.ListView;
|
||||
|
||||
import se.su.dsv.scipro.admin.pages.AbstractAdminSettingsPage;
|
||||
|
||||
public class AdminServerEnvironmentSettingsPage extends AbstractAdminSettingsPage {
|
||||
public AdminServerEnvironmentSettingsPage(final PageParameters pp) {
|
||||
super(pp);
|
||||
add(new ListView<KeyValuePair<String>>("requestAttributes",getRequestAttributes()){
|
||||
private static final long serialVersionUID = 1L;
|
||||
@Override
|
||||
protected void populateItem(ListItem<KeyValuePair<String>> item){
|
||||
KeyValuePair<String> pair = item.getModelObject();
|
||||
item.add(new Label("name",pair.getKey()));
|
||||
item.add(new Label("value","'"+pair.getValue()+"'"));
|
||||
}
|
||||
});
|
||||
}
|
||||
private final class KeyValuePair<V> implements Serializable{
|
||||
private static final long serialVersionUID = 1L;
|
||||
private final String key;
|
||||
private final V value;
|
||||
public KeyValuePair(final String key, final V value){
|
||||
this.key = key;
|
||||
this.value = value;
|
||||
}
|
||||
public String getKey(){
|
||||
return key;
|
||||
}
|
||||
public V getValue(){
|
||||
return value;
|
||||
}
|
||||
@Override
|
||||
public boolean equals(final Object o){
|
||||
if(o==this)
|
||||
return true;
|
||||
if(!(o instanceof KeyValuePair))
|
||||
return false;
|
||||
@SuppressWarnings("unchecked")
|
||||
final KeyValuePair<V> other = (KeyValuePair<V>)o;
|
||||
return ((key==null?other.key==null:key.equals(other.key)) &&
|
||||
(value==null?other.value==null:value.equals(other.value)));
|
||||
}
|
||||
@Override
|
||||
public int hashCode(){
|
||||
final int w = 31;
|
||||
int result = 17;//Why hello there Mr Bloch, how are we feeling today ?
|
||||
result = w * result + (key==null?0:key.hashCode());
|
||||
result = w * result + (value==null?0:value.hashCode());
|
||||
return result;
|
||||
}
|
||||
@Override
|
||||
public String toString(){
|
||||
return ("{"+key+":"+value+"}");
|
||||
}
|
||||
}
|
||||
private List<KeyValuePair<String>> getRequestAttributes(){
|
||||
final HttpServletRequest rawRequest = getWebRequestCycle().getWebRequest().getHttpServletRequest();
|
||||
List<KeyValuePair<String>> list = new ArrayList<KeyValuePair<String>>();
|
||||
list.add(new KeyValuePair<String>("[CALL] getRemoteUser",rawRequest.getRemoteUser()));
|
||||
list.add(new KeyValuePair<String>("[CALL] getAuthType",rawRequest.getAuthType()));
|
||||
@SuppressWarnings("rawtypes") Enumeration attributes = rawRequest.getAttributeNames();
|
||||
while(attributes.hasMoreElements()){
|
||||
final String key = (String)attributes.nextElement();
|
||||
final String value = rawRequest.getAttribute(key).toString();
|
||||
list.add(new KeyValuePair<String>("[ATTR] "+key,value));
|
||||
}
|
||||
Map<String,String> envs = System.getenv();
|
||||
for(String key : envs.keySet()){
|
||||
list.add(new KeyValuePair<String>("[ENV] "+key,envs.get(key)));
|
||||
}
|
||||
return list;
|
||||
}
|
||||
}
|
||||
|
@ -100,7 +100,7 @@ public final class ExternalAuthenticationRequestHelper{
|
||||
/**
|
||||
* Private utility method for dumping headers.
|
||||
*/
|
||||
public void dumpAuthInfo(){
|
||||
private void dumpAuthInfo(){
|
||||
logger.debug("---Standard methods---");
|
||||
logger.debug("Request implementation:" + req.getClass().getName());
|
||||
logger.debug("getAuthType = '" + getExternalAuthType() +"'");
|
||||
|
Loading…
x
Reference in New Issue
Block a user