[SIDP-472] Eschew class local state in taglib code
authorrdw <rdw@ab3bd59b-922f-494d-bb5f-6f0a3c29deca>
Fri, 18 Mar 2011 16:47:06 +0000 (16:47 +0000)
committerrdw <rdw@ab3bd59b-922f-494d-bb5f-6f0a3c29deca>
Fri, 18 Mar 2011 16:47:06 +0000 (16:47 +0000)
git-svn-id: https://subversion.switch.ch/svn/shibboleth/java-idp/branches/REL_2@2998 ab3bd59b-922f-494d-bb5f-6f0a3c29deca

doc/RELEASE-NOTES.txt
src/main/java/edu/internet2/middleware/shibboleth/idp/ui/ServiceNameTag.java
src/main/java/edu/internet2/middleware/shibboleth/idp/ui/ServiceTagSupport.java

index c44f547..65d1de5 100644 (file)
@@ -8,6 +8,7 @@ Changes in Release 2.3.0
 [SIDP-464] - An SPNameQualifier in NameIDPolicy always treated as an affiliation
 [SIDP-468] - Add taglib to simplify rendering login pages.
 [SIDP-469] - eduPersonTargetedID Could Be Separately Commented
+[SIDP-471] - Taglibs appear to be caching SP information
 
 Changes in Release 2.2.1
 =============================================
index 3feaee6..d68addf 100644 (file)
@@ -174,7 +174,6 @@ public class ServiceNameTag extends ServiceTagSupport {
     @Override\r
     public int doStartTag() throws JspException {\r
        \r
-        log.debug("StartTag");\r
         try {\r
             pageContext.getOut().print(getServiceName());\r
         } catch (IOException e) {\r
index b7cc466..dc17aed 100644 (file)
@@ -47,8 +47,6 @@ public class ServiceTagSupport extends BodyTagSupport{
      * checkstyle requires this serialization info.\r
      */\r
     private static final long serialVersionUID = 7988646597267865255L;\r
-    /** The actual entity for the SP. */ \r
-    private EntityDescriptor spEntity;\r
 \r
     /** Bean storage. class reference*/\r
     private String cssClass;\r
@@ -57,11 +55,6 @@ public class ServiceTagSupport extends BodyTagSupport{
     /** Bean storage. style reference*/\r
     private String cssStyle;\r
 \r
-    /** The uiInfo (if present) for the SP. */\r
-    private UIInfo spUIInfo;\r
-    /** Whether we have tried to populate the above two. */\r
-    private boolean populated;\r
-    \r
     /** Bean setter.\r
      * @param value what to set\r
      */\r
@@ -112,16 +105,17 @@ public class ServiceTagSupport extends BodyTagSupport{
         return sb.toString();\r
     }\r
     \r
-    /** Populate spEntity and spUIInfo.  */\r
-    private void initialize() {\r
+    /**\r
+     * Get the EntityDescriptor for the relying party.\r
+     * @return the SPs EntityDescriptor\r
+     */\r
+    protected EntityDescriptor getSPEntityDescriptor() {\r
         LoginContext loginContext;\r
         HttpServletRequest request;\r
         ServletContext application;\r
         RelyingPartyConfigurationManager rpConfigMngr;\r
-\r
-        if (populated) {\r
-            return;\r
-        }\r
+        EntityDescriptor spEntity;\r
+        \r
         //\r
         // Populate up those things that jsp gives us.\r
         //\r
@@ -136,43 +130,32 @@ public class ServiceTagSupport extends BodyTagSupport{
         rpConfigMngr = HttpServletHelper.getRelyingPartyConfigurationManager(application);       \r
         spEntity = HttpServletHelper.getRelyingPartyMetadata(loginContext.getRelyingPartyId(), rpConfigMngr);\r
 \r
+        return spEntity;\r
+    }\r
+    /**\r
+     * Traverse the SP's EntityDescriptor and pick out the UIInfo.\r
+     * @return the first UIInfo for the SP.\r
+     */\r
+    protected UIInfo getSPUIInfo() {\r
+        EntityDescriptor spEntity = getSPEntityDescriptor();\r
         Extensions exts;\r
-\r
-        populated = true;\r
+        \r
         if (null == spEntity) {\r
             //\r
             // all done\r
             //\r
-            return;\r
+            return null;\r
         }\r
+\r
         for (RoleDescriptor role:spEntity.getRoleDescriptors(SPSSODescriptor.DEFAULT_ELEMENT_NAME)) {\r
             exts = role.getExtensions();\r
             for (XMLObject object:exts.getOrderedChildren()) {\r
                 if (object instanceof UIInfo) {\r
-                    spUIInfo = (UIInfo) object;\r
-                    //\r
-                    // found it\r
-                    //\r
-                    return;\r
+                    return (UIInfo) object;\r
                 }\r
             }\r
         }\r
-    }\r
-    /**\r
-     * Get the EntityDescriptor for the relying party.\r
-     * @return the SPs EntityDescriptor\r
-     */\r
-    protected EntityDescriptor getSPEntityDescriptor() {\r
-        initialize();\r
-        return spEntity;\r
-    }\r
-    /**\r
-     * Traverse the SP's EntityDescriptor and pick out the UIInfo.\r
-     * @return the first UIInfo for the SP.\r
-     */\r
-    protected UIInfo getSPUIInfo() {\r
-        initialize();\r
-        return spUIInfo;\r
+        return null;\r
     }\r
             \r
     /**\r