From dcece198527eb3012a081402ad2e117e2136a4a4 Mon Sep 17 00:00:00 2001 From: Leif Johansson Date: Mon, 1 Aug 2011 11:30:31 +0200 Subject: import trunk@2167 --- src/main/webapp/Suggest.js | 357 ---- src/main/webapp/WEB-INF/tlds/struts-bean.tld | 1476 ++++----------- src/main/webapp/WEB-INF/tlds/struts-logic.tld | 2433 ++++++------------------- src/main/webapp/WEB-INF/web.xml | 14 +- src/main/webapp/images/internet2.gif | Bin src/main/webapp/index.htm | 5 - src/main/webapp/javascript.jsp | 45 - src/main/webapp/static.html | 163 -- src/main/webapp/static2.html | 160 -- src/main/webapp/wayf.css | 18 - src/main/webapp/wayf.jsp | 202 +- src/main/webapp/wayferror.jsp | 9 +- 12 files changed, 918 insertions(+), 3964 deletions(-) delete mode 100644 src/main/webapp/Suggest.js mode change 100644 => 100755 src/main/webapp/WEB-INF/tlds/struts-bean.tld mode change 100644 => 100755 src/main/webapp/WEB-INF/tlds/struts-logic.tld mode change 100644 => 100755 src/main/webapp/images/internet2.gif delete mode 100644 src/main/webapp/index.htm delete mode 100644 src/main/webapp/javascript.jsp delete mode 100644 src/main/webapp/static.html delete mode 100644 src/main/webapp/static2.html mode change 100644 => 100755 src/main/webapp/wayf.jsp mode change 100644 => 100755 src/main/webapp/wayferror.jsp (limited to 'src/main/webapp') diff --git a/src/main/webapp/Suggest.js b/src/main/webapp/Suggest.js deleted file mode 100644 index 2f17b93..0000000 --- a/src/main/webapp/Suggest.js +++ /dev/null @@ -1,357 +0,0 @@ -function TypeAheadControl(list, box, orig, submit, optype, ie6hack) -{ - // - // Squirrel away the parameters we were given - // - this.elementList = list; - this.textBox = box; - this.origin = orig; - this.submit = submit; - this.optype = optype; - this.results = 0; - this.maxResults = 35; - this.ie6hack = ie6hack; - var myThis = this; - - // - // Setup the lowercase names - // - var i = 0; - while (i < list.length) { - if (null == list[i]) { - list.length = i; - break; - } - list[i][2] = list[i][0].toLowerCase(); - i++; - } - // - // Set up the 'dropDown' - // - this.dropDown = document.createElement('div'); - this.dropDown.className = 'dropdown'; - this.dropDown.style.visibility = 'hidden'; - this.dropDown.style.width = box.offsetWidth; - this.dropDown.current = -1; - document.body.appendChild(this.dropDown); - - // - // mouse listeners for the dropdown box - // - this.dropDown.onmouseover = function(event) { - if (!event) { - event = window.event; - } - target = event.target; - if (!target) { - target = event.srcElement; - } - myThis.select(target); - } - - this.dropDown.onmousedown = function(event) { - if (-1 != myThis.dropDown.current) { - myThis.textBox.value = myThis.results[myThis.dropDown.current][0]; - } - } - - // - // Add the listeners to the text box - // - this.textBox.onkeyup = function(event) { - // - // get window even if needed (because of browser oddities) - // - if (!event) { - event = window.event; - } - myThis.handleKeyUp(event); - }; - - this.textBox.onkeydown = function(event) { - if (!event) { - event = window.event; - } - - myThis.handleKeyDown(event); - }; - - this.textBox.onblur = function() { - myThis.hideDrop(); - }; - - this.textBox.onfocus = function() { - myThis.handleChange(); - }; - -}; -// -// Given a name return the first maxresults, or all possibles -// -TypeAheadControl.prototype.getPossible = function(name) { - var possibles = []; - var inIndex = 0; - var outIndex = 0; - name = name.toLowerCase(); - var strIndex = 0; - var str; - var ostr; - - while (outIndex <= this.maxResults && inIndex < this.elementList.length) { - strIndex = this.elementList[inIndex][2].indexOf(name); - if (-1 != strIndex) { - // - // a hit - // - str = this.elementList[inIndex][0]; - possibles[outIndex] = new Array(str, this.elementList[inIndex][1]); - outIndex ++; - } else { - // - // Check entityId - strIndex = this.elementList[inIndex][1].indexOf(name); - if (-1 != strIndex) { - // - // a hit - // - str = this.elementList[inIndex][0]; - possibles[outIndex] = new Array(str, this.elementList[inIndex][1]); - outIndex ++; - } - } - inIndex ++; - } - // - // reset the cursor to the top - // - this.dropDown.current = -1; - - return possibles; -}; - -TypeAheadControl.prototype.handleKeyUp = function(event) { - var key = event.keyCode; - - if (27 == key) { - // - // Escape - clear - // - this.textBox.value = ''; - this.handleChange(); - } else if (8 == key || 32 == key || (key >= 46 && key < 112) || key > 123) { - // - // Backspace, Space and >=Del to F12 - // - this.handleChange(); - } -}; - -TypeAheadControl.prototype.handleKeyDown = function(event) { - - var key = event.keyCode; - - if (38 == key) { - // - // up arrow - // - this.upSelect(); - - } else if (40 == key) { - // - // down arrow - // - this.downSelect(); - } -}; - -TypeAheadControl.prototype.hideDrop = function() { - var i = 0; - if (null != this.ie6hack) { - while (i < this.ie6hack.length) { - this.ie6hack[i].style.visibility = 'visible'; - i++; - } - } - this.dropDown.style.visibility = 'hidden'; - if (-1 == this.dropDown.current) { - this.doUnselected(); - } -}; - -TypeAheadControl.prototype.showDrop = function() { - var i = 0; - if (null != this.ie6hack) { - while (i < this.ie6hack.length) { - this.ie6hack[i].style.visibility = 'hidden'; - i++; - } - } - this.dropDown.style.visibility = 'visible'; -}; - - -TypeAheadControl.prototype.doSelected = function() { - this.submit.value='Select'; - this.optype.value = 'selection'; -}; - -TypeAheadControl.prototype.doUnselected = function() { - this.submit.value='Search'; - - this.optype.value = 'search'; -}; - -TypeAheadControl.prototype.handleChange = function() { - - var val = this.textBox.value; - var res = this.getPossible(val); - - - if (0 == res.length || this.maxResults < res.length) { - this.hideDrop(); - this.doUnselected(); - this.results = []; - this.dropDown.current = -1; - } else { - this.results = res; - this.populateDropDown(res); - if (1 == res.length) { - this.select(this.dropDown.childNodes[0]); - this.doSelected(); - } else { - this.doUnselected(); - } - } -}; - -// -// A lot of the stuff below comes from -// http://www.webreference.com/programming/javascript/ncz/column2 -// -// With thanks to Nicholas C Zakas -// -TypeAheadControl.prototype.populateDropDown = function(list) { - this.dropDown.innerHTML = ''; - var i = 0; - var div; - while (i < list.length) { - div = document.createElement('div'); - div.appendChild(document.createTextNode(list[i][0])); -// div.style.zIndex = '1000'; - this.dropDown.appendChild(div); - i++; - } - var off = this.getXY(); - this.dropDown.style.left = off[0] + 'px'; - this.dropDown.style.top = off[1] + 'px'; - this.showDrop(); -}; - -TypeAheadControl.prototype.getXY = function() { - - var node = this.textBox; - var sumX = 0; - var sumY = node.offsetHeight; - - while(node.tagName != 'BODY') { - sumX += node.offsetLeft; - sumY += node.offsetTop; - node = node.offsetParent; - } - // - // And add in the offset for the Body - // - sumX += node.offsetLeft; - sumY += node.offsetTop; - - return [sumX, sumY]; -}; - -TypeAheadControl.prototype.select = function(selected) { - var i = 0; - var node; - this.dropDown.current = -1; - this.doUnselected(); - while (i < this.dropDown.childNodes.length) { - node = this.dropDown.childNodes[i]; - if (node == selected) { - // - // Highlight it - // - node.className = 'current'; - // - // turn on the button - // - this.doSelected(); - // - // setup the cursor - // - this.dropDown.current = i; - // - // and the value for the Server - // - this.origin.value = this.results[i][1]; - this.origin.textValue = this.results[i][0]; - } else { - node.className = ''; - } - i++; - } - this.textBox.focus(); -}; - -TypeAheadControl.prototype.downSelect = function() { - if (this.results.length > 0) { - - if (-1 == this.dropDown.current) { - // - // mimic a select() - // - this.dropDown.current = 0; - this.dropDown.childNodes[0].className = 'current'; - this.doSelected(); - this.origin.value = this.results[0][1]; - this.origin.textValue = this.results[0][0]; - - } else if (this.dropDown.current < (this.results.length-1)) { - // - // turn off highlight - // - this.dropDown.childNodes[this.dropDown.current].className = ''; - // - // move cursor - // - this.dropDown.current++; - // - // and 'select' - // - this.dropDown.childNodes[this.dropDown.current].className = 'current'; - this.doSelected(); - this.origin.value = this.results[this.dropDown.current][1]; - this.origin.textValue = this.results[this.dropDown.current][0]; - } - } -}; - - -TypeAheadControl.prototype.upSelect = function() { - if ((this.results.length > 0) && - (this.dropDown.current > 0)) { - - // - // turn off highlight - // - this.dropDown.childNodes[this.dropDown.current].className = ''; - // - // move cursor - // - this.dropDown.current--; - // - // and 'select' - // - this.dropDown.childNodes[this.dropDown.current].className = 'current'; - this.doSelected(); - this.origin.value = this.results[this.dropDown.current][1]; - this.origin.textValue = this.results[this.dropDown.current][0]; - } -}; \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/tlds/struts-bean.tld b/src/main/webapp/WEB-INF/tlds/struts-bean.tld old mode 100644 new mode 100755 index 7e95a46..d8e4425 --- a/src/main/webapp/WEB-INF/tlds/struts-bean.tld +++ b/src/main/webapp/WEB-INF/tlds/struts-bean.tld @@ -1,1152 +1,346 @@ - - - - 1.3 - 1.2 - bean - http://struts.apache.org/tags-bean - - Note: Some of the features in this taglib are also - available in the JavaServer Pages Standard Tag Library (JSTL). - The Struts team encourages the use of the standard tags over the Struts - specific tags when possible.

- -

This tag library contains tags useful in accessing beans and their - properties, as well as defining new beans (based on these accesses) - that are accessible to the remainder of the page via scripting variables - and page scope attributes. Convenient mechanisms to create new beans - based on the value of request cookies, headers, and parameters are also - provided.

- -

Many of the tags in this tag library will throw a - JspException at runtime when they are utilized incorrectly - (such as when you specify an invalid combination of tag attributes). JSP - allows you to declare an "error page" in the <%@ page %> - directive. If you wish to process the actual exception that caused the - problem, it is passed to the error page as a request attribute under key - org.apache.struts.action.EXCEPTION.

- - ]]> -
- - cookie - org.apache.struts.taglib.bean.CookieTag - org.apache.struts.taglib.bean.CookieTei - empty - - - Define a scripting variable based on the value(s) of the specified - request cookie. -

- -

Retrieve the value of the specified request cookie (as a single - value or multiple values, depending on the multiple attribute), - and define the result as a page scope attribute of type Cookie - (if multiple is not specified) or Cookie[] - (if multiple is specified).

- -

If no cookie with the specified name can be located, and no default - value is specified, a request time exception will be thrown.

- ]]> -
- - id - true - false - - Specifies the name of the scripting variable (and associated page - scope attribute) that will be made available with the value of the - specified request cookie.

- ]]> -
-
- - multiple - false - true - - If any arbitrary value for this attribute is specified, causes all - matching cookies to be accumulated and stored into a bean of type - Cookie[]. If not specified, the first value for the - specified cookie will be retrieved as a value of type - Cookie.

- ]]> -
-
- - name - true - true - - Specifies the name of the request cookie whose value, or values, - is to be retrieved.

- ]]> -
-
- - value - false - true - - The default cookie value to return if no cookie with the - specified name was included in this request.

- ]]> -
-
-
- - define - org.apache.struts.taglib.bean.DefineTag - org.apache.struts.taglib.bean.DefineTei - JSP - - - Define a scripting variable based on the value(s) of the specified - bean property. -

- -

Create a new attribute (in the scope specified by the - toScope property, if any), and a corresponding scripting - variable, both of which are named by the value of the id - attribute. The corresponding value to which this new attribute (and - scripting variable) is set are specified via use of exactly one of the - following approaches (trying to use more than one will result in a - JspException being thrown):

-
    -
  • Specify a name attribute (plus optional - property and scope attributes) - - The created attribute and scripting variable will be of the type of the - retrieved JavaBean property, unless it is a Java primitive type, - in which case it will be wrapped in the appropriate wrapper class - (i.e. int is wrapped by java.lang.Integer).
  • -
  • Specify a value attribute - The created attribute and - scripting variable will be of type java.lang.String, - set to the value of this attribute.
  • -
  • Specify nested body content - The created attribute and scripting - variable will be of type java.lang.String, set to - the value of the nested body content.
  • -
- -

If a problem occurs while retrieving the specified bean property, a - request time exception will be thrown.

- -

The <bean:define> tag differs from - <jsp:useBean> in several ways, including:

-
    -
  • Unconditionally creates (or replaces) a bean under the - specified identifier.
  • -
  • Can create a bean with the value returned by a property getter - of a different bean (including properties referenced with a - nested and/or indexed property name).
  • -
  • Can create a bean whose contents is a literal string (or the result - of a runtime expression) specified by the value - attribute.
  • -
  • Does not support nested content (such as - <jsp:setProperty> tags) that are only executed - if a bean was actually created.
  • -
-

USAGE NOTE - There is a restriction in the JSP 1.1 - Specification that disallows using the same value for an id - attribute more than once in a single JSP page. Therefore, you will not - be able to use <bean:define> for the same bean - name more than once in a single page.

-

USAGE NOTE - If you use another tag to create the - body content (e.g. bean:write), that tag must return a non-empty String. - An empty String equates to an empty body or a null String, and a new - scripting variable cannot be defined as null. Your bean must return a - non-empty String, or the define tag must be wrapped within a logic tag - to test for an empty or null value.

-

USAGE NOTE - You cannot use bean:define to instantiate - a DynaActionForm (type="org.apache.struts.action.DynaActionForm") with - the properties specified in the struts-config. The mechanics of creating - the dyna-properties is complex and cannot be handled by a no-argument - constructor. If you need to create an ActionForm this way, you must use - a conventional ActionForm. -

-

See the Bean Developer's Guide section on - - bean creation for more information about these differences, as well - as alternative approaches to introducing beans into a JSP page.

- ]]> -
- - id - true - false - - Specifies the name of the scripting variable (and associated page - scope attribute) that will be made available with the value of the - specified property.

- ]]> -
-
- - name - false - true - - Specifies the attribute name of the bean whose property is accessed - to define a new page scope attribute (if property is also - specified) or the attribute name of the bean that is duplicated with - the new reference created by this tag (if property is not - also specified). This attribute is required unless you specify - a value attribute or nested body content.

- ]]> -
-
- - property - false - true - - Specifies the name of the property to be accessed on the bean - specified by name. This value may be a simple, indexed, - or nested property reference expression. If not specified, the bean - identified by name is given a new reference identified by - id.

- ]]> -
-
- - scope - false - true - - Specifies the variable scope searched to retrieve the bean specified - by name. If not specified, the default rules applied by - PageContext.findAttribute() are applied.

- ]]> -
-
- - toScope - false - true - - Specifies the variable scope into which the newly defined bean will - be created. If not specified, the bean will be created in - page scope.

- ]]> -
-
- - type - false - true - - Specifies the fully qualified class name of the value to be exposed - as the id attribute.

- ]]> -
-
- - value - false - true - - The java.lang.String value to which the exposed bean - should be set. This attribute is required unless you specify the - name attribute or nested body content.

- ]]> -
-
-
- - header - org.apache.struts.taglib.bean.HeaderTag - org.apache.struts.taglib.bean.HeaderTei - empty - - - Define a scripting variable based on the value(s) of the specified - request header. -

- -

Retrieve the value of the specified request header (as a single - value or multiple values, depending on the multiple attribute), - and define the result as a page scope attribute of type String - (if multiple is not specified) or String[] - (if multiple is specified).

-

If no header with the specified name can be located, and no default - value is specified, a request time exception will be thrown.

- ]]> -
- - id - true - false - - Specifies the name of the scripting variable (and associated page - scope attribute) that will be made available with the value of the - specified request header.

- ]]> -
-
- - multiple - false - true - - If any arbitrary value for this attribute is specified, causes a call - to HttpServletRequest.getHeaders() and a definition of the - result as a bean of type String[]. Otherwise, - HttpServletRequest.getHeader() will be called, and a - definition of the result as a bean of type String - will be performed.

- ]]> -
-
- - name - true - true - - Specifies the name of the request header whose value, or values, - is to be retrieved.

- ]]> -
-
- - value - false - true - - The default header value to return if no header with the - specified name was included in this request.

- ]]> -
-
-
- - include - org.apache.struts.taglib.bean.IncludeTag - org.apache.struts.taglib.bean.IncludeTei - empty - - - Load the response from a dynamic application request and make it available - as a bean. -

- -

Perform an internal dispatch to the specified application component - (or external URL) - and make the response data from that request available as a bean of - type String. This tag has a function similar to that of - the standard <jsp:include> tag, except that the - response data is stored in a page scope attribute instead of being - written to the output stream. If the current request is part of a - session, the generated request for the include will also include the - session identifier (and thus be part of the same session).

-

The URL used to access the specified application component is - calculated based on which of the following attributes you specify - (you must specify exactly one of them):

-
    -
  • forward - Use the value of this attribute as the name - of a global ActionForward to be looked up, and - use the module-relative or context-relative URI found there.
  • -
  • href - Use the value of this attribute unchanged (since - this might link to a resource external to the application, the - session identifier is not included.
  • -
  • page - Use the value of this attribute as an - module-relative URI to the desired resource.
  • -
- ]]> -
- - anchor - false - true - - Optional anchor tag ("#xxx") to be added to the generated - hyperlink. Specify this value without any - "#" character.

- ]]> -
-
- - forward - false - true - - Logical name of a global ActionForward that contains - the actual content-relative URI of the resource to be included.

- ]]> -
-
- - href - false - true - - Absolute URL (including the appropriate protocol prefix such as - "http:") of the resource to be included. Because this URL could be - external to the current web application, the session identifier will - not be included in the request.

- ]]> -
-
- - id - true - false - - Specifies the name of the scripting variable (and associated page - scope attribute) that will be made available with the value of the - specified web application resource.

- ]]> -
-
- - page - false - true - - Module-relative URI (starting with a '/') of the web application - resource to be included.

- ]]> -
-
- - transaction - false - true - boolean - - Set to true if you want the current - transaction control token included in the generated - URL for this include.

- ]]> -
-
-
- - message - org.apache.struts.taglib.bean.MessageTag - empty - - - Render an internationalized message string to the response. -

- -

Retrieves an internationalized message for the specified locale, - using the specified message key, and write it to the output stream. - Up to five parametric replacements (such as "{0}") may be specified.

- -

The message key may be specified directly, using the key - attribute, or indirectly, using the name and - property attributes to obtain it from a bean.

- -

- JSTL: The equivalent JSTL tag is <fmt:message>. For example, -
- - <fmt:message key="my.msg.key"> - <fmt:param value="replacement text"/> - </fmt:message> - -

- ]]> -
- - arg0 - false - true - - First parametric replacement value, if any.

- ]]> -
-
- - arg1 - false - true - - Second parametric replacement value, if any.

- ]]> -
-
- - arg2 - false - true - - Third parametric replacement value, if any.

- ]]> -
-
- - arg3 - false - true - - Fourth parametric replacement value, if any.

- ]]> -
-
- - arg4 - false - true - - Fifth parametric replacement value, if any.

- ]]> -
-
- - bundle - false - true - - The name of the application scope bean under which the - MessageResources object containing our messages - is stored.

- ]]> -
-
- - key - false - true - - The message key of the requested message, which must have - a corresponding value in the message resources. If not specified, - the key is obtained from the name and - property attributes.

- ]]> -
-
- - locale - false - true - - The name of the session scope bean under which our currently - selected Locale object is stored.

- ]]> -
-
- - name - false - true - - Specifies the attribute name of the bean whose property is accessed - to retrieve the value specified by property (if - specified). If property is not specified, the value of - this bean itself will be used as the message resource key.

- ]]> -
-
- - property - false - true - - Specifies the name of the property to be accessed on the bean - specified by name. This value may be a simple, indexed, - or nested property reference expression. If not specified, the value - of the bean identified by name will itself be used as the - message resource key.

- ]]> -
-
- - scope - false - true - - Specifies the variable scope searched to retrieve the bean specified - by name. If not specified, the default rules applied by - PageContext.findAttribute() are applied.

- ]]> -
-
-
- - page - org.apache.struts.taglib.bean.PageTag - org.apache.struts.taglib.bean.PageTei - empty - - - Expose a specified item from the page context as a bean. -

- -

Retrieve the value of the specified item from the page context - for this page, and define it as a scripting variable, and a page scope - attribute accessible to the remainder of the current page.

- -

If a problem occurs while retrieving the specified configuration - object, a request time exception will be thrown.

- ]]> -
- - id - true - false - - Specifies the name of the scripting variable (and associated - page scope attribute) that will be made available with the value of - the specified page context property.

- ]]> -
-
- - property - true - true - - Name of the property from our page context to be retrieved and - exposed. Must be one of application, config, - request, response, or session. -

- ]]> -
-
-
- - parameter - org.apache.struts.taglib.bean.ParameterTag - org.apache.struts.taglib.bean.ParameterTei - empty - - - Define a scripting variable based on the value(s) of the specified - request parameter. -

- -

Retrieve the value of the specified request parameter (as a single - value or multiple values, depending on the multiple attribute), - and define the result as a page scope attribute of type String - (if multiple is not specified) or String[] - (if multiple is specified).

- -

If no request parameter with the specified name can be located, and - no default value is specified, a request time exception will be thrown.

- ]]> -
- - id - true - false - - Specifies the name of the scripting variable (and associated page - scope attribute) that will be made available with the value of the - specified request parameter.

- ]]> -
-
- - multiple - false - true - - If any arbitrary value for this attribute is specified, causes a call - to ServletRequest.getParameterValues() and a definition of - the result as a bean of type String[]. Otherwise, - ServletRequest.getParameter() will be called, and a - definition of the result as a bean of type String - will be performed.

- ]]> -
-
- - name - true - true - - Specifies the name of the request parameter whose value, or values, - is to be retrieved.

- ]]> -
-
- - value - false - true - - The default parameter value to return if no parameter with the - specified name was included in this request.

- ]]> -
-
-
- - resource - org.apache.struts.taglib.bean.ResourceTag - org.apache.struts.taglib.bean.ResourceTei - empty - - - Load a web application resource and make it available as a bean. -

- -

Retrieve the value of the specified web application resource, and make - it available as either a InputStream or a String, - depending on the value of the input attribute.

- -

If a problem occurs while retrieving the specified resource, a - request time exception will be thrown.

- ]]> -
- - id - true - false - - Specifies the name of the scripting variable (and associated page - scope attribute) that will be made available with the value of the - specified web application resource.

- ]]> -
-
- - input - false - true - - If any arbitrary value for this attribute is specified, the resource - will be made available as an InputStream. If this - attribute is not specified, the resource will be made available - as a String.

- ]]> -
-
- - name - true - true - - Module-relative name (starting with a '/') of the web application - resource to be loaded and made available.

- ]]> -
-
-
- - size - org.apache.struts.taglib.bean.SizeTag - org.apache.struts.taglib.bean.SizeTei - empty - - - Define a bean containing the number of elements in a Collection or Map. -

- -

Given a reference to an array, Collection or Map, creates a new bean, of - type java.lang.Integer, whose value is the number of elements - in that collection. You can specify the collection to be counted in any - one of the following ways:

-
    -
  • As a runtime expression specified as the value of the - collection attribute.
  • -
  • As a JSP bean specified by the name attribute.
  • -
  • As the property, specified by the property attribute, - of the JSP bean specified by the name attribute.
  • -
- ]]> -
- - collection - false - true - java.lang.Object - - A runtime expression that evaluates to an array, a Collection, or - a Map.

- ]]> -
-
- - id - true - false - - The name of a page scope JSP bean, of type - java.lang.Integer, that will be created to contain the - size of the underlying collection being counted.

- ]]> -
-
- - name - false - true - - The name of the JSP bean (optionally constrained to the scope - specified by the scope attribute) that contains the - collection to be counted (if property is not specified), - or whose property getter is called to return the collection to be - counted (if property is specified.

- ]]> -
-
- - property - false - true - - The name of the property, of the bean specified by the - name attribute, whose getter method will return the - collection to be counted.

- ]]> -
-
- - scope - false - true - - The bean scope within which to search for the JSP bean specified - by the name attribute. If not specified, the available - scopes are searched in ascending sequence.

- ]]> -
-
-
- - struts - org.apache.struts.taglib.bean.StrutsTag - org.apache.struts.taglib.bean.StrutsTei - empty - - - Expose a named Struts internal configuration object as a bean. -

- -

Retrieve the value of the specified Struts internal configuration - object, and define it as a scripting variable and as a page scope - attribute accessible to the remainder of the current page. You must - specify exactly one of the formBean, forward, - and mapping attributes to select the configuration object - to be exposed.

- -

If a problem occurs while retrieving the specified configuration - object, a request time exception will be thrown.

- ]]> -
- - id - true - false - - Specifies the name of the scripting variable (and associated - page scope attribute) that will be made available with the value of - the specified Struts internal configuration object.

- ]]> -
-
- - formBean - false - true - - Specifies the name of the Struts ActionFormBean - definition object to be exposed.

- ]]> -
-
- - forward - false - true - - Specifies the name of the global Struts ActionForward - definition object to be exposed.

- ]]> -
-
- - mapping - false - true - - Specifies the matching path of the Struts ActionMapping - definition object to be exposed.

- ]]> -
-
-
- - write - org.apache.struts.taglib.bean.WriteTag - empty - - - Render the value of the specified bean property to the current - JspWriter. -

- -

Retrieve the value of the specified bean property, and render it to the - current JspWriter as a String by the ways:

-
    -
  • If format attribute exists then value will be formatted on base of format - string from format attribute and default system locale.
  • -
  • If in resources exists format string for value data type (view format - attribute description) then value will be formatted on base of format string - from resources. Resources bundle and target locale can be specified with - bundle and locale attributes. If nothing specified then - default resource bundle and current user locale will be used.
  • -
  • If there is a PropertyEditor configured for the property value's class, the - getAsText() method will be called.
  • -
  • Otherwise, the usual toString() conversions will be applied.
  • -
-

When a format string is provided, numeric values are formatted using the - java.text.DecimalFormat class; if the format string came from - a resource, the applyLocalisedPattern() method is used, and - applyPattern() is used otherwise. Dates are formatted using - the SimpleDateFormat class. For details of the specific format - patterns, please see the Javadocs for those classes.

-

If a problem occurs while retrieving the specified bean property, a - request time exception will be thrown.

- ]]> -
- - bundle - false - true - - The name of the application scope bean under which the - MessageResources object containing our messages - is stored.

- ]]> -
-
- - filter - false - true - boolean - - If this attribute is set to true, the rendered property - value will be filtered for characters that are sensitive in HTML, and any - such characters will be replaced by their entity equivalents.

- ]]> -
-
- - format - false - true - - Specifies the format string to use to convert bean or property value - to the String. If nothing specified, then default format - string for value data type will be searched in message resources by - according key.

- - ]]> -
-
- - formatKey - false - true - - Specifies the key to search format string in application resources.

- ]]> -
-
- - ignore - false - true - boolean - - If this attribute is set to true, and the bean specified - by the name and scope attributes does not - exist, simply return without writing anything. If this attribute is - set to false, a runtime exception to be thrown, - consistent with the other tags in this tag library.

- ]]> -
-
- - locale - false - true - - The name of the session scope bean under which our currently - selected Locale object is stored.

- ]]> -
-
- - name - true - true - - Specifies the attribute name of the bean whose property is accessed - to retrieve the value specified by property (if - specified). If property is not specified, the value of - this bean itself will be rendered.

- ]]> -
-
- - property - false - true - - Specifies the name of the property to be accessed on the bean - specified by name. This value may be a simple, indexed, - or nested property reference expression. If not specified, the bean - identified by name will itself be rendered. If the - specified property returns null, no output will be rendered.

- ]]> -
-
- - scope - false - true - - Specifies the variable scope searched to retrieve the bean specified - by name. If not specified, the default rules applied by - PageContext.findAttribute() are applied.

- ]]> -
-
-
+ + +1.0 +1.1 +bean +http://jakarta.apache.org/struts/tags-bean-1.0.2 + +cookie +org.apache.struts.taglib.bean.CookieTag +org.apache.struts.taglib.bean.CookieTei +empty + +id +true +true + + +multiple +false +true + + +name +true +true + + +value +false +true + + + +define +org.apache.struts.taglib.bean.DefineTag +org.apache.struts.taglib.bean.DefineTei +empty + +id +true +true + + +name +false +true + + +property +false +true + + +scope +false +true + + +toScope +false +true + + +type +false +true + + +value +false +true + + + +header +org.apache.struts.taglib.bean.HeaderTag +org.apache.struts.taglib.bean.HeaderTei +empty + +id +true +true + + +multiple +false +true + + +name +true +true + + +value +false +true + + + +include +org.apache.struts.taglib.bean.IncludeTag +org.apache.struts.taglib.bean.IncludeTei +empty + +anchor +false +true + + +forward +false +true + + +href +false +true + + +id +true +true + + +name +false +true + + +page +false +true + + +transaction +false +true + + + +message +org.apache.struts.taglib.bean.MessageTag +empty + +arg0 +false +true + + +arg1 +false +true + + +arg2 +false +true + + +arg3 +false +true + + +arg4 +false +true + + +bundle +false +true + + +key +true +true + + +locale +false +true + + + +page +org.apache.struts.taglib.bean.PageTag +org.apache.struts.taglib.bean.PageTei +empty + +id +true +true + + +property +true +true + + + +parameter +org.apache.struts.taglib.bean.ParameterTag +org.apache.struts.taglib.bean.ParameterTei +empty + +id +true +true + + +multiple +false +true + + +name +true +true + + +value +false +true + + + +resource +org.apache.struts.taglib.bean.ResourceTag +org.apache.struts.taglib.bean.ResourceTei +empty + +id +true +true + + +input +false +true + + +name +true +true + + + +size +org.apache.struts.taglib.bean.SizeTag +org.apache.struts.taglib.bean.SizeTei +empty + +collection +false +true + + +id +true +true + + +name +false +true + + +property +false +true + + +scope +false +true + + + +struts +org.apache.struts.taglib.bean.StrutsTag +org.apache.struts.taglib.bean.StrutsTei +empty + +id +true +true + + +formBean +false +true + + +forward +false +true + + +mapping +false +true + + + +write +org.apache.struts.taglib.bean.WriteTag +empty + +filter +false +true + + +ignore +false +true + + +name +true +true + + +property +false +true + + +scope +false +true + + diff --git a/src/main/webapp/WEB-INF/tlds/struts-logic.tld b/src/main/webapp/WEB-INF/tlds/struts-logic.tld old mode 100644 new mode 100755 index fe638ae..bf03f24 --- a/src/main/webapp/WEB-INF/tlds/struts-logic.tld +++ b/src/main/webapp/WEB-INF/tlds/struts-logic.tld @@ -1,1892 +1,561 @@ - - - - 1.3 - 1.2 - logic - http://struts.apache.org/tags-logic - - Note: Some of the features in this taglib are also - available in the JavaServer Pages Standard Tag Library (JSTL). - The Struts team encourages the use of the standard tags over the Struts - specific tags when possible.

- -

This tag library contains tags that are useful in managing conditional - generation of output text, looping over object collections for - repetitive generation of output text, and application flow management.

- -

For tags that do value comparisons (equal, - greaterEqual, greaterThan, lessEqual, - lessThan, notEqual), the following rules apply:

-
    -
  • The specified value is examined. If it can be converted successfully - to a double or a long, it is assumed that the - ultimate comparison will be numeric (either floating point or integer). - Otherwise, a String comparison will be performed.
  • -
  • The variable to be compared to is retrieved, based on the selector - attribute(s) (cookie, header, - name, parameter, property) - present on this tag. It will be converted to the appropriate type - for the comparison, as determined above.
  • -
  • If the specified variable or property returns null, it will be - coerced to a zero-length string before the comparison occurs.
  • -
  • The specific comparison for this tag will be performed, and the nested - body content of this tag will be evaluated if the comparison returns - a true result.
  • -
- -

For tags that do substring matching (match, - notMatch), the following rules apply:

-
    -
  • The specified variable is retrieved, based on the selector attribute(s) - (cookie, header, name, - parameter, property) present on this tag. - The variable is converted to a String, if necessary.
  • -
  • A request time exception will be thrown if the specified variable - cannot be retrieved, or has a null value.
  • -
  • The specified value is checked for existence as a substring of the - variable, in the position specified by the location - attribute, as follows: at the beginning (if location is set to - start), at the end (if location is set to - end), or anywhere (if location is not specified).
  • -
- -

Many of the tags in this tag library will throw a - JspException at runtime when they are utilized incorrectly - (such as when you specify an invalid combination of tag attributes). JSP - allows you to declare an "error page" in the <%@ page %> - directive. If you wish to process the actual exception that caused the - problem, it is passed to the error page as a request attribute under key - org.apache.struts.action.EXCEPTION.

- - ]]> -
- - empty - org.apache.struts.taglib.logic.EmptyTag - JSP - - - Evaluate the nested body content of this tag if the requested variable is - either null or an empty string. -

- -

This tag evaluates its nested body content only if the specified value - is either absent (i.e. null), an empty string (i.e. a - java.lang.String with a length of zero), or an empty - java.util.Collection or java.util.Map (tested by - the .isEmpty() method on the respective interface).

- -

- JSTL: The equivalent JSTL tag is <c:if> using the - empty operator. For example, -
- - <c:if test="${empty sessionScope.myBean.myProperty}"> - do something - </c:if> - -

- -
Since:
-
Struts 1.1
- ]]> -
- - name - false - true - - The variable to be compared is the JSP bean specified by this - attribute, if property is not specified, or the value - of the specified property of this bean, if property - is specified.

- ]]> -
-
- - property - false - true - - The variable to be compared is the property (of the bean specified - by the name attribute) specified by this attribute. - The property reference can be simple, nested, and/or indexed.

- ]]> -
-
- - scope - false - true - - The bean scope within which to search for the bean named by the - name property, or "any scope" if not specified.

- ]]> -
-
-
- - equal - org.apache.struts.taglib.logic.EqualTag - JSP - - - Evaluate the nested body content of this tag if the requested - variable is equal to the specified value. -

- -

Compares the variable specified by one of the selector attributes - against the specified constant value. The nested body content of this - tag is evaluated if the variable and value are equal. -

- ]]> -
- - cookie - false - true - - The variable to be compared is the value of the cookie whose - name is specified by this attribute.

- ]]> -
-
- - header - false - true - - The variable to be compared is the value of the header whose - name is specified by this attribute. The name match is performed - in a case insensitive manner.

- ]]> -
-
- - name - false - true - - The variable to be compared is the JSP bean specified by this - attribute, if property is not specified, or the value - of the specified property of this bean, if property - is specified.

- ]]> -
-
- - parameter - false - true - - The variable to be compared is the first, or only, value of the - request parameter specified by this attribute.

- ]]> -
-
- - property - false - true - - The variable to be compared is the property (of the bean specified - by the name attribute) specified by this attribute. - The property reference can be simple, nested, and/or indexed.

- ]]> -
-
- - scope - false - true - - The bean scope within which to search for the bean named by the - name property, or "any scope" if not specified.

- ]]> -
-
- - value - true - true - - The constant value to which the variable, specified by other - attribute(s) of this tag, will be compared.

- ]]> -
-
-
- - forward - org.apache.struts.taglib.logic.ForwardTag - empty - - - Forward control to the page specified by the specified ActionForward - entry. -

- -

Performs a PageContext.forward() or - HttpServletResponse.sendRedirect() call for the global - ActionForward entry for the specified name. URL - rewriting will occur automatically if a redirect is performed.

- ]]> -
- - name - true - true - - - The logical name of the global ActionForward entry - that identifies the destination, and forwarding approach, to be used. - Note: forwarding to Tiles definitions is not supported - from this tag. You should forward to them from an Action subclass. -

- ]]> -
-
-
- - greaterEqual - org.apache.struts.taglib.logic.GreaterEqualTag - JSP - - - Evaluate the nested body content of this tag if the requested - variable is greater than or equal to the specified value. -

- -

Compares the variable specified by one of the selector attributes - against the specified constant value. The nested body content of this - tag is evaluated if the variable is greater than or equal - to the value.

- ]]> -
- - cookie - false - true - - The variable to be compared is the value of the cookie whose - name is specified by this attribute.

- ]]> -
-
- - header - false - true - - The variable to be compared is the value of the header whose - name is specified by this attribute. The name match is performed - in a case insensitive manner.

- ]]> -
-
- - name - false - true - - The variable to be compared is the JSP bean specified by this - attribute, if property is not specified, or the value - of the specified property of this bean, if property - is specified.

- ]]> -
-
- - parameter - false - true - - The variable to be compared is the first, or only, value of the - request parameter specified by this attribute.

- ]]> -
-
- - property - false - true - - The variable to be compared is the property (of the bean specified - by the name attribute) specified by this attribute. - The property reference can be simple, nested, and/or indexed.

- ]]> -
-
- - scope - false - true - - The bean scope within which to search for the bean named by the - name property, or "any scope" if not specified.

- ]]> -
-
- - value - true - true - - The constant value to which the variable, specified by other - attribute(s) of this tag, will be compared.

- ]]> -
-
-
- - greaterThan - org.apache.struts.taglib.logic.GreaterThanTag - JSP - - - Evaluate the nested body content of this tag if the requested - variable is greater than the specified value. -

- -

Compares the variable specified by one of the selector attributes - against the specified constant value. The nested body content of this - tag is evaluated if the variable is greater than - the value.

- ]]> -
- - cookie - false - true - - The variable to be compared is the value of the cookie whose - name is specified by this attribute.

- ]]> -
-
- - header - false - true - - The variable to be compared is the value of the header whose - name is specified by this attribute. The name match is performed - in a case insensitive manner.

- ]]> -
-
- - name - false - true - - The variable to be compared is the JSP bean specified by this - attribute, if property is not specified, or the value - of the specified property of this bean, if property - is specified.

- ]]> -
-
- - parameter - false - true - - The variable to be compared is the first, or only, value of the - request parameter specified by this attribute.

- ]]> -
-
- - property - false - true - - The variable to be compared is the property (of the bean specified - by the name attribute) specified by this attribute. - The property reference can be simple, nested, or indexed.

- ]]> -
-
- - scope - false - true - - The bean scope within which to search for the bean named by the - name property, or "any scope" if not specified.

- ]]> -
-
- - value - true - true - - The constant value to which the variable, specified by other - attribute(s) of this tag, will be compared.

- ]]> -
-
-
- - iterate - org.apache.struts.taglib.logic.IterateTag - org.apache.struts.taglib.logic.IterateTei - JSP - - - Repeat the nested body content of this tag over a specified collection. -

- -

Repeats the nested body content of this tag once for every element - of the specified collection, which must be an Iterator, - a Collection, a Map (whose values are to be - iterated over), or an array. The collection to be iterated over must be - specified in one of the following ways:

-
    -
  • As a runtime expression specified as the value of the - collection attribute.
  • -
  • As a JSP bean specified by the name attribute.
  • -
  • As the property, specified by the property, of the - JSP bean specified by the name attribute.
  • -
- -

The collection to be iterated over MUST conform to one of the following - requirements in order for iteration to be successful:

-
    -
  • An array of Java objects or primitives.
  • -
  • An implementation of java.util.Collection, including - ArrayList and Vector.
  • -
  • An implementation of java.util.Enumeration.
  • -
  • An implementation of java.util.Iterator.
  • -
  • An implementation of java.util.Map, including - HashMap, Hashtable, and - TreeMap. NOTE - See below for - additional information about accessing Maps.
  • -
-

Normally, each object exposed by the iterate tag is an element - of the underlying collection you are iterating over. However, if you - iterate over a Map, the exposed object is of type - Map.Entry that has two properties:

-
    -
  • key - The key under which this item is stored in the - underlying Map.
  • -
  • value - The value that corresponds to this key.
  • -
-

So, if you wish to iterate over the values of a Hashtable, you would - implement code like the following:

- - <logic:iterate id="element" name="myhashtable">
- Next element is <bean:write name="element" property="value"/>
- </logic:iterate> -
-

If the collection you are iterating over can contain null - values, the loop will still be performed but no page scope attribute - (named by the id attribute) will be created for that loop - iteration. You can use the <logic:present> and - <logic:notPresent> tags to test for this case.

- ]]> -
- - collection - false - true - java.lang.Object - - A runtime expression that evaluates to a collection (conforming to - the requirements listed above) to be iterated over.

- ]]> -
-
- - id - true - false - - The name of a page scope JSP bean that will contain the current - element of the collection on each iteration, if it is not - null.

- ]]> -
-
- - indexId - false - false - - The name of a page scope JSP bean that will contain the current - index of the collection on each iteration.

- ]]> -
-
- - length - false - true - - The maximum number of entries (from the underlying collection) to be - iterated through on this page. This can be either an integer that - directly expresses the desired value, or the name of a JSP bean (in - any scope) of type java.lang.Integer that defines the - desired value. If not present, there will be no limit on the number - of iterations performed.

- ]]> -
-
- - name - false - true - - The name of the JSP bean containing the collection to be iterated - (if property is not specified), or the JSP bean whose - property getter returns the collection to be iterated (if - property is specified).

- ]]> -
-
- - offset - false - true - - The zero-relative index of the starting point at which entries from - the underlying collection will be iterated through. This can be either - an integer that directly expresses the desired value, or the name of a - JSP bean (in any scope) of type java.lang.Integer that - defines the desired value. If not present, zero is assumed (meaning - that the collection will be iterated from the beginning.

- ]]> -
-
- - property - false - true - - Name of the property, of the JSP bean specified by name, - whose getter returns the collection to be iterated.

- ]]> -
-
- - scope - false - true - - The bean scope within which to search for the bean named by the - name property, or "any scope" if not specified.

- ]]> -
-
- - type - false - true - - Fully qualified Java class name of the element to be exposed through - the JSP bean named from the id attribute. If not present, - no type conversions will be performed. NOTE: The actual elements of - the collection must be assignment-compatible with this class, or a - request time ClassCastException will occur.

- ]]> -
-
-
- - lessEqual - org.apache.struts.taglib.logic.LessEqualTag - JSP - - - Evaluate the nested body content of this tag if the requested - variable is less than or equal to the specified value. -

- -

Compares the variable specified by one of the selector attributes - against the specified constant value. The nested body content of this - tag is evaluated if the variable is less than or equal - to the value.

- ]]> -
- - cookie - false - true - - The variable to be compared is the value of the cookie whose - name is specified by this attribute.

- ]]> -
-
- - header - false - true - - The variable to be compared is the value of the header whose - name is specified by this attribute. The name match is performed - in a case insensitive manner.

- ]]> -
-
- - name - false - true - - The variable to be compared is the JSP bean specified by this - attribute, if property is not specified, or the value - of the specified property of this bean, if property - is specified.

- ]]> -
-
- - parameter - false - true - - The variable to be compared is the first, or only, value of the - request parameter specified by this attribute.

- ]]> -
-
- - property - false - true - - The variable to be compared is the property (of the bean specified - by the name attribute) specified by this attribute. - The property reference can be simple, nested, or indexed.

- ]]> -
-
- - scope - false - true - - The bean scope within which to search for the bean named by the - name property, or "any scope" if not specified.

- ]]> -
-
- - value - true - true - - The constant value to which the variable, specified by other - attribute(s) of this tag, will be compared.

- ]]> -
-
-
- - lessThan - org.apache.struts.taglib.logic.LessThanTag - JSP - - - Evaluate the nested body content of this tag if the requested - variable is less than the specified value. -

- -

Compares the variable specified by one of the selector attributes - against the specified constant value. The nested body content of this - tag is evaluated if the variable is less than - the value.

- ]]> -
- - cookie - false - true - - The variable to be compared is the value of the cookie whose - name is specified by this attribute.

- ]]> -
-
- - header - false - true - - The variable to be compared is the value of the header whose - name is specified by this attribute. The name match is performed - in a case insensitive manner.

- ]]> -
-
- - name - false - true - - The variable to be compared is the JSP bean specified by this - attribute, if property is not specified, or the value - of the specified property of this bean, if property - is specified.

- ]]> -
-
- - parameter - false - true - - The variable to be compared is the first, or only, value of the - request parameter specified by this attribute.

- ]]> -
-
- - property - false - true - - The variable to be compared is the property (of the bean specified - by the name attribute) specified by this attribute. - The property reference can be simple, nested, and/or indexed.

- ]]> -
-
- - scope - false - true - - The bean scope within which to search for the bean named by the - name property, or "any scope" if not specified.

- ]]> -
-
- - value - true - true - - The constant value to which the variable, specified by other - attribute(s) of this tag, will be compared.

- ]]> -
-
-
- - match - org.apache.struts.taglib.logic.MatchTag - JSP - - - Evaluate the nested body content of this tag if the specified value - is an appropriate substring of the requested variable. -

- -

Matches the variable specified by one of the selector attributes - (as a String) against the specified constant value. If the value is - a substring (appropriately limited by the location - attribute), the nested body content of this tag is evaluated.

- ]]> -
- - cookie - false - true - - The variable to be matched is the value of the cookie whose - name is specified by this attribute.

- ]]> -
-
- - header - false - true - - The variable to be matched is the value of the header whose - name is specified by this attribute. The name match is performed - in a case insensitive manner.

- ]]> -
-
- - location - false - true - - If not specified, a match between the variable and the value may - occur at any position within the variable string. If specified, the - match must occur at the specified location (either start - or end) of the variable string.

- ]]> -
-
- - name - false - true - - The variable to be matched is the JSP bean specified by this - attribute, if property is not specified, or the value - of the specified property of this bean, if property - is specified.

- ]]> -
-
- - parameter - false - true - - The variable to be matched is the first, or only, value of the - request parameter specified by this attribute.

- ]]> -
-
- - property - false - true - - The variable to be matched is the property (of the bean specified - by the name attribute) specified by this attribute. - The property reference can be simple, nested, and/or indexed.

- ]]> -
-
- - scope - false - true - - The bean scope within which to search for the bean named by the - name property, or "any scope" if not specified.

- ]]> -
-
- - value - true - true - - The constant value which is checked for existence as a substring - of the specified variable.

- ]]> -
-
-
- - messagesNotPresent - - org.apache.struts.taglib.logic.MessagesNotPresentTag - JSP - - - Generate the nested body content of this tag if the specified - message is not present in any scope. -

- -

Evaluates the nested body content of this tag if - an ActionMessages - object, ActionErrors object, a String, - or a String array is not present in any scope. If - such a bean is found, nothing will be rendered. -

- -
Since:
-
Struts 1.1
- ]]> -
- - name - false - true - - The parameter key used to retrieve the message from page, request, - session or application scope.

- ]]> -
-
- - property - false - true - - Name of the property for which messages should be - retrieved. If not specified, all messages (regardless - of property) are retrieved. -

- ]]> -
-
- - message - false - true - - By default the tag will retrieve the bean it will - iterate over from the Globals.ERROR_KEY constant string, - but if this attribute is set to 'true' the bean - will be retrieved from the Globals.MESSAGE_KEY - constant string. Also if this is set to 'true', any value - assigned to the name attribute will be ignored. -

- ]]> -
-
-
- - messagesPresent - - org.apache.struts.taglib.logic.MessagesPresentTag - JSP - - - Generate the nested body content of this tag if the specified - message is present in any scope. -

- -

Evaluates the nested body content of this tag if - an ActionMessages - object, ActionErrors object, a String, - or a String array is present in any scope. If - such a bean is not found, nothing will be rendered. -

- -
Since:
-
Struts 1.1
- ]]> -
- - name - false - true - - The parameter key used to retrieve the message from page, request, - session, or application scope.

- ]]> -
-
- - property - false - true - - Name of the property for which messages should be - retrieved. If not specified, all messages (regardless - of property) are retrieved. -

- ]]> -
-
- - message - false - true - - By default the tag will retrieve the bean it will - iterate over from the Globals.ERROR_KEY constant string, - but if this attribute is set to 'true' the bean - will be retrieved from the Globals.MESSAGE_KEY - constant string. Also if this is set to 'true', any value - assigned to the name attribute will be ignored. -

- ]]> -
-
-
- - notEmpty - org.apache.struts.taglib.logic.NotEmptyTag - JSP - - - Evaluate the nested body content of this tag if the requested variable is - neither null, nor an empty string, nor an empty java.util.Collection - (tested by the .isEmpty() method on the java.util.Collection interface). -

- -

This tag evaluates its nested body content only if the specified value - is present (i.e. not null) and is not an empty string (i.e. a - java.lang.String with a length of zero).

- -

- JSTL: The equivalent JSTL tag is <c:if> using the - ! empty operator. For example, -
- - <c:if test="${ ! empty sessionScope.myBean.myProperty}"> - do something - </c:if> - -

- ]]> -
- - name - false - true - - The variable to be compared is the JSP bean specified by this - attribute, if property is not specified, or the value - of the specified property of this bean, if property - is specified.

- ]]> -
-
- - property - false - true - - The variable to be compared is the property (of the bean specified - by the name attribute) specified by this attribute. - The property reference can be simple, nested, and/or indexed.

- ]]> -
-
- - scope - false - true - - The bean scope within which to search for the bean named by the - name property, or "any scope" if not specified.

- ]]> -
-
-
- - notEqual - org.apache.struts.taglib.logic.NotEqualTag - JSP - - - Evaluate the nested body content of this tag if the requested - variable is not equal to the specified value. -

- -

Compares the variable specified by one of the selector attributes - against the specified constant value. The nested body content of this - tag is evaluated if the variable and value are not equal. -

- ]]> -
- - cookie - false - true - - The variable to be compared is the value of the cookie whose - name is specified by this attribute.

- ]]> -
-
- - header - false - true - - The variable to be compared is the value of the header whose - name is specified by this attribute. The name match is performed - in a case insensitive manner.

- ]]> -
-
- - name - false - true - - The variable to be compared is the JSP bean specified by this - attribute, if property is not specified, or the value - of the specified property of this bean, if property - is specified.

- ]]> -
-
- - parameter - false - true - - The variable to be compared is the first, or only, value of the - request parameter specified by this attribute.

- ]]> -
-
- - property - false - true - - The variable to be compared is the property (of the bean specified - by the name attribute) specified by this attribute. - The property reference can be simple, nested, and/or indexed.

- ]]> -
-
- - scope - false - true - - The bean scope within which to search for the bean named by the - name property, or "any scope" if not specified.

- ]]> -
-
- - value - true - true - - The constant value to which the variable, specified by other - attribute(s) of this tag, will be compared.

- ]]> -
-
-
- - notMatch - org.apache.struts.taglib.logic.NotMatchTag - JSP - - - Evaluate the nested body content of this tag if the specified value - is not an appropriate substring of the requested variable. -

- -

Matches the variable specified by one of the selector attributes - (as a String) against the specified constant value. If the value is - not a substring (appropriately limited by the location - attribute), the nested body content of this tag is evaluated.

- ]]> -
- - cookie - false - true - - The variable to be matched is the value of the cookie whose - name is specified by this attribute.

- ]]> -
-
- - header - false - true - - The variable to be matched is the value of the header whose - name is specified by this attribute. The name match is performed - in a case insensitive manner.

- ]]> -
-
- - location - false - true - - If not specified, a match between the variable and the value may - occur at any position within the variable string. If specified, the - match must occur at the specified location (either start - or end) of the variable string.

- ]]> -
-
- - name - false - true - - The variable to be matched is the JSP bean specified by this - attribute, if property is not specified, or the value - of the specified property of this bean, if property - is specified.

- ]]> -
-
- - parameter - false - true - - The variable to be matched is the first, or only, value of the - request parameter specified by this attribute.

- ]]> -
-
- - property - false - true - - The variable to be matched is the property (of the bean specified - by the name attribute) specified by this attribute. - The property reference can be simple, nested, and/or indexed.

- ]]> -
-
- - scope - false - true - - The bean scope within which to search for the bean named by the - name property, or "any scope" if not specified.

- ]]> -
-
- - value - true - true - - The constant value which is checked for existence as a substring - of the specified variable.

- ]]> -
-
-
- - notPresent - org.apache.struts.taglib.logic.NotPresentTag - JSP - - - Generate the nested body content of this tag if the specified - value is not present in this request. -

- -

Depending on which attribute is specified, this tag checks the - current request, and evaluates the nested body content of this tag - only if the specified value is not present. Only one - of the attributes may be used in one occurrence of this tag, unless - you use the property attribute, in which case the - name attribute is also required.

- ]]> -
- - cookie - false - true - - Checks for the existence of a cookie with the specified name.

- ]]> -
-
- - header - false - true - - Checks for the existence of an HTTP header with the specified - name. The name match is performed in a case insensitive manner.

- ]]> -
-
- - name - false - true - - Checks for the existence of a JSP bean, in any scope, with the - specified name. If property is also specified, checks - for a non-null property value for the specified property.

- ]]> -
-
- - parameter - false - true - - Checks for the existence of at least one occurrence of the - specified request parameter on this request, even if the parameter - value is a zero-length string.

- ]]> -
-
- - property - false - true - - Checks for the existence of a non-null property value, returned - by a property getter method on the JSP bean (in any scope) that is - specified by the name attribute. Property references - can be simple, nested, and/or indexed.

- ]]> -
-
- - role - false - true - - Checks whether the currently authenticated user (if any) has been - associated with the specified security role.

- ]]> -
-
- - scope - false - true - - The bean scope within which to search for the bean named by the - name property, or "any scope" if not specified.

- ]]> -
-
- - user - false - true - - Checks whether the currently authenticated user principal has the - specified name.

- ]]> -
-
-
- - present - org.apache.struts.taglib.logic.PresentTag - JSP - - - Generate the nested body content of this tag if the specified - value is present in this request. -

- -

Depending on which attribute is specified, this tag checks the - current request, and evaluates the nested body content of this tag - only if the specified value is present. Only one - of the attributes may be used in one occurrence of this tag, unless - you use the property attribute, in which case the - name attribute is also required.

- ]]> -
- - cookie - false - true - - Checks for the existence of a cookie with the specified name.

- ]]> -
-
- - header - false - true - - Checks for the existence of an HTTP header with the specified - name. The name match is performed in a case insensitive manner.

- ]]> -
-
- - name - false - true - - Checks for the existence of a JSP bean, in any scope, with the - specified name. If property is also specified, checks - for a non-null property value for the specified property.

- ]]> -
-
- - parameter - false - true - - Checks for the existence of at least one occurrence of the - specified request parameter on this request, even if the parameter - value is a zero-length string.

- ]]> -
-
- - property - false - true - - Checks for the existence of a non-null property value, returned - by a property getter method on the JSP bean (in any scope) that is - specified by the name attribute. Property references - can be simple, nested, and/or indexed.

- ]]> -
-
- - role - false - true - - Checks whether the currently authenticated user (if any) has been - associated with any of the specified security roles. Use a comma-delimited - list to check for multiple roles. Example: - <logic:present role="role1,role2,role3"> - code..... - </logic:present>

- ]]> -
-
- - scope - false - true - - The bean scope within which to search for the bean named by the - name property, or "any scope" if not specified.

- ]]> -
-
- - user - false - true - - Checks whether the currently authenticated user principal has the - specified name.

- ]]> -
-
-
- - redirect - org.apache.struts.taglib.logic.RedirectTag - - Render an HTTP Redirect

- - -

Performs an HttpServletResponse.sendRedirect() - call to the hyperlink specified by the attributes to this - tag. URL rewriting will be applied automatically, to - maintain session state in the absence of cookies.

- -

The base URL for this redirect is calculated based on - which of the following attributes you specify (you must - specify exactly one of them):

-
    -
  • forward - Use the value of this attribute as the - name of a global ActionForward to be looked - up, and use the module-relative or context-relative - URI found there.
  • -
  • href - Use the value of this attribute unchanged. -
  • -
  • page - Use the value of this attribute as an - module-relative URI, and generate a server-relative - URI by including the context path.
  • -
- -

Normally, the redirect you specify with one of the - attributes described in the previous paragraph will be left - unchanged (other than URL rewriting if necessary). However, - there are two ways you can append one or more dynamically - defined query parameters to the hyperlink -- specify a single - parameter with the paramId attribute (and its - associated attributes to select the value), or specify the - name (and optional property) - attributes to select a java.util.Map bean that - contains one or more parameter ids and corresponding values. -

- -

To specify a single parameter, use the paramId - attribute to define the name of the request parameter to be - submitted. To specify the corresponding value, use one of the - following approaches:

-
    -
  • Specify only the paramName attribute - - The named JSP bean (optionally scoped by the value of the - paramScope attribute) must identify a value - that can be converted to a String.
  • -
  • Specify both the paramName and - paramProperty attributes - The specified - property getter method will be called on the JSP bean - identified by the paramName (and optional - paramScope) attributes, in order to select - a value that can be converted to a String.
  • -
- -

If you prefer to specify a java.util.Map that - contains all of the request parameters to be added to the - hyperlink, use one of the following techniques:

-
    -
  • Specify only the name attribute - - The named JSP bean (optionally scoped by the value of - the scope attribute) must identify a - java.util.Map containing the parameters.
  • -
  • Specify both name and - property attributes - The specified - property getter method will be called on the bean - identified by the name (and optional - scope) attributes, in order to return the - java.util.Map containing the parameters.
  • -
- -

As the Map is processed, the keys are assumed - to be the names of query parameters to be appended to the - hyperlink. The value associated with each key must be either - a String or a String array representing the parameter value(s). - If a String array is specified, more than one value for the - same query parameter name will be created.

- ]]> -
- - action - false - true - - Logical name of a global Action that - contains the actual content-relative URI of the destination - of this transfer. This hyperlink may be dynamically - modified by the inclusion of query parameters, as described - in the tag description. You must specify - exactly one of the action attribute, the - forward attribute, the - href attribute, - or the page attribute.

- ]]> -
-
- - anchor - false - true - - Optional anchor tag ("#xxx") to be added to the generated - hyperlink. Specify this value without any - "#" character.

- ]]> -
-
- - forward - false - true - - Logical name of a global ActionForward that - contains the actual content-relative URI of the destination - of this redirect. This URI may be dynamically - modified by the inclusion of query parameters, as described - in the tag description. You must specify - exactly one of the forward attribute, the - href attribute, the linkName - attribute, or the page attribute.

- ]]> -
-
- - href - false - true - - The URL to which this redirect will transfer control. - This URL may be dynamically modified - by the inclusion of query parameters, as described in the - tag description. You must specify - exactly one of the forward attribute, the - href attribute, the linkName - attribute, or the page attribute.

- ]]> -
-
- - name - false - true - - The name of a JSP bean that contains a Map - representing the query parameters (if property - is not specified), or a JSP bean whose property getter is - called to return a Map (if property - is specified).

- ]]> -
-
- - page - false - true - - The context-relative path (beginning with a "/" - character) to which this hyperlink will transfer control - if activated. This hyperlink may be dynamically modified - by the inclusion of query parameters, as described in the - tag description. You must specify exactly - one of the forward attribute, the - href attribute, the linkName - attribute, or the page attribute.

- ]]> -
-
- - paramId - false - true - - The name of the request parameter that will be dynamically - added to the generated hyperlink. The corresponding value is - defined by the paramName and (optional) - paramProperty attributes, optionally scoped by - the paramScope attribute

- ]]> -
-
- - paramName - false - true - - The name of a JSP bean that is a String containing the - value for the request parameter named by paramId - (if paramProperty is not specified), or a JSP - bean whose property getter is called to return a String - (if paramProperty is specified). The JSP bean - is constrained to the bean scope specified by the - paramScope property, if it is specified.

- ]]> -
-
- - paramProperty - false - true - - The name of a property of the bean specified by the - paramName attribute, whose return value must - be a String containing the value of the request parameter - (named by the paramId attribute) that will be - dynamically added to this hyperlink.

- ]]> -
-
- - paramScope - false - true - - The scope within which to search for the bean specified - by the paramName attribute. If not specified, - all scopes are searched.

- ]]> -
-
- - property - false - true - - The name of a property of the bean specified by the - name attribute, whose return value must be - a java.util.Map containing the query parameters - to be added to the hyperlink. You must - specify the name attribute if you specify - this attribute.

- ]]> -
-
- - scope - false - true - - The scope within which to search for the bean specified - by the name attribute. If not specified, all - scopes are searched.

- ]]> -
-
- - transaction - false - true - boolean - - Set to true if you want the current - transaction control token included in the generated - URL for this redirect.

- ]]> -
-
- - useLocalEncoding - false - true - boolean - - If set to true, LocalCharacterEncoding will be - used, that is, the characterEncoding set to the HttpServletResponse, - as prefered character encoding rather than UTF-8, when - URLEncoding is done on parameters of the URL.

- ]]> -
-
-
+ + +1.0 +1.1 +logic +http://jakarta.apache.org/struts/tags-logic-1.0 + +equal +org.apache.struts.taglib.logic.EqualTag +JSP + +cookie +false +true + + +header +false +true + + +name +false +true + + +parameter +false +true + + +property +false +true + + +scope +false +true + + +value +true +true + + + +forward +org.apache.struts.taglib.logic.ForwardTag +empty + +name +true +true + + + +greaterEqual +org.apache.struts.taglib.logic.GreaterEqualTag +JSP + +cookie +false +true + + +header +false +true + + +name +false +true + + +parameter +false +true + + +property +false +true + + +scope +false +true + + +value +true +true + + + +greaterThan +org.apache.struts.taglib.logic.GreaterThanTag +JSP + +cookie +false +true + + +header +false +true + + +name +false +true + + +parameter +false +true + + +property +false +true + + +scope +false +true + + +value +true +true + + + +iterate +org.apache.struts.taglib.logic.IterateTag +org.apache.struts.taglib.logic.IterateTei +JSP + +collection +false +true + + +id +true +true + + +indexId +false +true + + +length +false +true + + +name +false +true + + +offset +false +true + + +property +false +true + + +scope +false +true + + +type +false +true + + + +lessEqual +org.apache.struts.taglib.logic.LessEqualTag +JSP + +cookie +false +true + + +header +false +true + + +name +false +true + + +parameter +false +true + + +property +false +true + + +scope +false +true + + +value +true +true + + + +lessThan +org.apache.struts.taglib.logic.LessThanTag +JSP + +cookie +false +true + + +header +false +true + + +name +false +true + + +parameter +false +true + + +property +false +true + + +scope +false +true + + +value +true +true + + + +match +org.apache.struts.taglib.logic.MatchTag +JSP + +cookie +false +true + + +header +false +true + + +location +false +true + + +name +false +true + + +parameter +false +true + + +property +false +true + + +scope +false +true + + +value +true +true + + + +notEqual +org.apache.struts.taglib.logic.NotEqualTag +JSP + +cookie +false +true + + +header +false +true + + +name +false +true + + +parameter +false +true + + +property +false +true + + +scope +false +true + + +value +true +true + + + +notMatch +org.apache.struts.taglib.logic.NotMatchTag +JSP + +cookie +false +true + + +header +false +true + + +location +false +true + + +name +false +true + + +parameter +false +true + + +property +false +true + + +scope +false +true + + +value +true +true + + + +notPresent +org.apache.struts.taglib.logic.NotPresentTag +JSP + +cookie +false +true + + +header +false +true + + +name +false +true + + +parameter +false +true + + +property +false +true + + +role +false +true + + +scope +false +true + + +user +false +true + + + +present +org.apache.struts.taglib.logic.PresentTag +JSP + +cookie +false +true + + +header +false +true + + +name +false +true + + +parameter +false +true + + +property +false +true + + +role +false +true + + +scope +false +true + + +user +false +true + + + +redirect +org.apache.struts.taglib.logic.RedirectTag + +anchor +false +true + + +forward +false +true + + +href +false +true + + +name +false +true + + +page +false +true + + +paramId +false +true + + +paramName +false +true + + +paramProperty +false +true + + +paramScope +false +true + + +property +false +true + + +scope +false +true + + +transaction +false +true + + diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml index c938b16..c264d13 100644 --- a/src/main/webapp/WEB-INF/web.xml +++ b/src/main/webapp/WEB-INF/web.xml @@ -12,11 +12,11 @@ edu.internet2.middleware.shibboleth.wayf.WayfService WAYFConfigFileLocation - $DS_HOME$/conf/wayfconfig.xml + $DS_HOME$/wayfconfig.xml WAYFLogConfig - $DS_HOME$/conf/logging.xml + $DS_HOME$/logging.xml WAYFLogConfigPollFrequency @@ -38,16 +38,6 @@ *.wayf - - WAYF - /DS - - - - WAYF - *.ds - - css text/css diff --git a/src/main/webapp/images/internet2.gif b/src/main/webapp/images/internet2.gif old mode 100644 new mode 100755 diff --git a/src/main/webapp/index.htm b/src/main/webapp/index.htm deleted file mode 100644 index 8825d6d..0000000 --- a/src/main/webapp/index.htm +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/main/webapp/javascript.jsp b/src/main/webapp/javascript.jsp deleted file mode 100644 index 274df50..0000000 --- a/src/main/webapp/javascript.jsp +++ /dev/null @@ -1,45 +0,0 @@ -<%@ page contentType="text/javascript;charset=UTF-8" %> -<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %> -<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %> - -<%request.setCharacterEncoding("UTF-8");%> -<%response.setCharacterEncoding("UTF-8");%> - - -var theElements = [ - - ["", ""], - - ]; - -var theHints = [ - - - - - - - - - - [ - "?entityID=<%= java.net.URLEncoder.encode(ei.toString(), "utf-8") %>&return=<%= java.net.URLEncoder.encode(re.toString(), "utf-8") %>&returnIDxParam=<%= java.net.URLEncoder.encode( returnIDParam.toString(), "utf-8" ) %>&cache=perm&action=selection&origin=" - , - "" - ], - - - - - - - [ - "?target=<%= java.net.URLEncoder.encode(targ.toString(),"utf-8") %>&shire=<%= java.net.URLEncoder.encode(shire.toString(),"utf-8") %>&providerId=<%= java.net.URLEncoder.encode(pid.toString(),"utf-8") %>&time=&cache=perm&action=selection&origin=" - , - "" - ], - - - -]; - \ No newline at end of file diff --git a/src/main/webapp/static.html b/src/main/webapp/static.html deleted file mode 100644 index 4f20be0..0000000 --- a/src/main/webapp/static.html +++ /dev/null @@ -1,163 +0,0 @@ - - - -Static Discovery Service with centralised hinting - -

-This is a boring, but static web page which shows how an signle SP can -configure their own "Discovery Service" without recouse to a Java -Container but taking full advantage of the centralised cookie server -in the Federation Discovery Service. -

-

This is not meant to be pretty - it is meant to be easy for SP's -(who understand HTML) to understand and develop. It is however -targetted at a single SP. Sites running multiple SPs and wanting a -single Discovery will still need to deploy a real DS, or deploy this -as an embedded wayf on each SP. -

-

-There is obviously plenty of room for adding all the visual sugar and -branding that we want at the three levels

-
    -
  • A World Wide "This is a Discovery" look and feel
  • -
  • A Federation branding
  • -
  • "Corporate" Branding
  • -
- -

Just for fun, this Discovery service points to the I2Wiki, a Shib 2 -SP (and so with an easier configuration). To make things even more -fun it has access to metadata (mostly statically loaded) for 6 -Federations. (UK, InCommon, MAMS, Switch AcoNet and Renater)

- - - -
- -

Enter Organization Name

- - - -
- - - - - - - - - - - - - -
- - - -
-
- -

Configuring

- -Details on how to set this up this are embedded as comments in this -web page. Currently a lot of the configuration is manual. Future -versions will be as automatic as possible and the only configuration -required will be the link which is displayed when there is not -javascript enabled. - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/main/webapp/static2.html b/src/main/webapp/static2.html deleted file mode 100644 index c815f22..0000000 --- a/src/main/webapp/static2.html +++ /dev/null @@ -1,160 +0,0 @@ - - - -Static Discovery Service with centralised hinting - -

-This is a boring, but static web page which shows how an signle SP can -configure their own "Discovery Service" without recouse to a Java -Container but taking full advantage of the centralised cookie server -in the Federation Discovery Service. -

-

-This DS points at a test SP in the UK Federation, and uses the -Shib/SAML1 protocol. It is a lot harder to configure (a lot like -setting up one a "WAYFless URLS". Consider it motivation to upgrade -from SAML1 to SAML2... -

- - -
-
-

Enter Organization Name

- - -
- - - - - - - - - - - - - - - -
- - - -
-
- - - -

Configuring

- -Details on how to set this up this are embedded as comments in this -web page. Currently a lot of the configuration is manual. Although -it would be feasible to automate this just as is planned for Shib2 -SPs, the duplication seems needless given that the product has a 9 -month shelf life. - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/main/webapp/wayf.css b/src/main/webapp/wayf.css index 0eeb26c..4056aa3 100644 --- a/src/main/webapp/wayf.css +++ b/src/main/webapp/wayf.css @@ -102,21 +102,3 @@ span.warning { text-align: center; margin-top: 1.5em; } - -div.dropdown { - -moz-box-sizing: border-box; - box-sizing: border-box; - border: 1px solid black; - position: absolute; -} - -div.dropdown div { - background-color: white; - cursor: default; - padding: 0px 3px; -} - -div.dropdown div.current { - background-color: #3366cc; - color: white; -} diff --git a/src/main/webapp/wayf.jsp b/src/main/webapp/wayf.jsp old mode 100644 new mode 100755 index e30fc38..7b76dd5 --- a/src/main/webapp/wayf.jsp +++ b/src/main/webapp/wayf.jsp @@ -1,15 +1,11 @@ -<%@ page contentType="text/html;charset=UTF-8" %> <%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %> <%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %> -<%request.setCharacterEncoding("UTF-8");%> -<%response.setCharacterEncoding("UTF-8");%> - - + SAML Discovery protocol - - - - - - - - - - - + configuration file. --> @@ -159,14 +120,15 @@ Select an identity provider The Service you are trying to reach requires that you -authenticate with your home organization, enter the name below. +authenticate with your home institution, please select it from the +list below.

-Recently used organizations: +Recently used institutions:

@@ -178,7 +140,6 @@ Recently used organizations: simulating the user having specified a permanent cookie -->
-

@@ -187,7 +148,7 @@ Recently used organizations: - ?entityID=<%= java.net.URLEncoder.encode(ei.toString(), "utf-8") %>&return=<%= java.net.URLEncoder.encode(re.toString(), "utf-8") %>&returnIDxParam=<%= java.net.URLEncoder.encode( returnIDParam.toString(), "utf-8" ) %>&cache=perm&action=selection&origin="> + ?entityID=<%= java.net.URLEncoder.encode(ei.toString(), "utf-8") %>&return=<%= java.net.URLEncoder.encode(re.toString(), "utf-8") %>&returnIDxParam=<%= java.net.URLEncoder.encode( returnIDParam.toString(), "utf-8" ) %>&cache=perm&action=selection&origin="> @@ -195,7 +156,7 @@ Recently used organizations: - ?target=<%= java.net.URLEncoder.encode(targ.toString(),"utf-8") %>&shire=<%= java.net.URLEncoder.encode(shire.toString(),"utf-8") %>&providerId=<%= java.net.URLEncoder.encode(pid.toString(),"utf-8") %>&time=&cache=perm&action=selection&origin="> + ?target=<%= java.net.URLEncoder.encode(targ.toString(),"utf-8") %>&shire=<%= java.net.URLEncoder.encode(shire.toString(),"utf-8") %>&providerId=<%= java.net.URLEncoder.encode(pid.toString(),"utf-8") %>&time=&cache=perm&action=selection&origin="> @@ -213,7 +174,6 @@ Recently used organizations:

-
" /> " /> @@ -227,58 +187,16 @@ Recently used organizations: " /> " /> - -
+
- - - - - - or

@@ -437,7 +344,6 @@ Search by keyword:

"> -

@@ -455,15 +361,11 @@ Search by keyword: - - + +

-
- - -

@@ -479,11 +381,10 @@ Search results:

"> -
  • - " /> + " />
  • @@ -503,14 +404,13 @@ Search results: " /> - - +

    -
@@ -519,9 +419,9 @@ Search results: @@ -587,59 +487,13 @@ function changedFed(X, Selected) { } + } --> - - - - - - - - - - + diff --git a/src/main/webapp/wayferror.jsp b/src/main/webapp/wayferror.jsp old mode 100644 new mode 100755 index 1fd564a..5e72816 --- a/src/main/webapp/wayferror.jsp +++ b/src/main/webapp/wayferror.jsp @@ -5,7 +5,7 @@ <%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %> <%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %> - + @@ -24,14 +24,9 @@

Please email administrator's name and include the following error message:

- -

Discovery Service failure at ()

+

WAYF failure at ()

-
- -

The Discovery Service should not be called directly

-
-- cgit v1.1