Author: chris.laprun(a)jboss.com
Date: 2007-02-23 14:16:55 -0500 (Fri, 23 Feb 2007)
New Revision: 6385
Modified:
branches/JBoss_Portal_Branch_2_4/common/src/main/org/jboss/portal/common/util/Tools.java
branches/JBoss_Portal_Branch_2_4/wsrp/src/main/org/jboss/portal/wsrp/producer/MarkupHandler.java
branches/JBoss_Portal_Branch_2_4/wsrp/src/main/org/jboss/portal/wsrp/producer/ServiceDescriptionHandler.java
Log:
- JBPORTAL-1220: Force call to initCookie for BEA version < 9.2
- JBPORTAL-1291: Fix NPE in isUserInRole.
Modified:
branches/JBoss_Portal_Branch_2_4/common/src/main/org/jboss/portal/common/util/Tools.java
===================================================================
---
branches/JBoss_Portal_Branch_2_4/common/src/main/org/jboss/portal/common/util/Tools.java 2007-02-23
19:09:56 UTC (rev 6384)
+++
branches/JBoss_Portal_Branch_2_4/common/src/main/org/jboss/portal/common/util/Tools.java 2007-02-23
19:16:55 UTC (rev 6385)
@@ -785,4 +785,32 @@
ObjectInputStream ois = new ObjectInputStream(bais);
return ois.readObject();
}
+
+ /**
+ * Determines if value is contained in array.
+ *
+ * @param value
+ * @param array
+ * @return
+ * @since 2.4.2
+ */
+ public static boolean isContainedIn(Object value, Object[] array)
+ {
+ if (value == null)
+ {
+ return false;
+ }
+
+ if (array != null)
+ {
+ for (int i = 0; i < array.length; i++)
+ {
+ if (value.equals(array[i]))
+ {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
}
\ No newline at end of file
Modified:
branches/JBoss_Portal_Branch_2_4/wsrp/src/main/org/jboss/portal/wsrp/producer/MarkupHandler.java
===================================================================
---
branches/JBoss_Portal_Branch_2_4/wsrp/src/main/org/jboss/portal/wsrp/producer/MarkupHandler.java 2007-02-23
19:09:56 UTC (rev 6384)
+++
branches/JBoss_Portal_Branch_2_4/wsrp/src/main/org/jboss/portal/wsrp/producer/MarkupHandler.java 2007-02-23
19:16:55 UTC (rev 6385)
@@ -91,6 +91,7 @@
import org.jboss.portal.wsrp.core.WSRP_v1_Markup_PortType;
import org.jboss.portal.wsrp.invocation.WSRPActionContext;
import org.jboss.portal.wsrp.invocation.WSRPRenderContext;
+import org.jboss.portal.wsrp.servlet.ServletAccess;
import javax.activation.MimeTypeParseException;
import javax.portlet.PortletModeException;
@@ -434,12 +435,12 @@
Throwable throwable = errorResult.getThrowable();
if (throwable instanceof PortletModeException)
{
-
throw(UnsupportedModeFault)WSRPUtils.createFaultFrom(UnsupportedModeFault.class,
+ throw
(UnsupportedModeFault)WSRPUtils.createFaultFrom(UnsupportedModeFault.class,
new IllegalArgumentException("Unsupported mode: " +
((PortletModeException)throwable).getMode()));
}
if (throwable instanceof WindowStateException)
{
-
throw(UnsupportedWindowStateFault)WSRPUtils.createFaultFrom(UnsupportedWindowStateFault.class,
+ throw
(UnsupportedWindowStateFault)WSRPUtils.createFaultFrom(UnsupportedWindowStateFault.class,
new IllegalArgumentException("Unsupported window state: " +
((WindowStateException)throwable).getState()));
}
// todo: deal with other exceptions
@@ -508,7 +509,12 @@
WSRPUtils.throwOperationFailedFaultIfValueIsMissing(initCookie,
"InitCookie");
producer.checkRegistration(initCookie.getRegistrationContext());
- return new ReturnAny(); // todo: implement when actually needed
+ // Force HTTP session creation... this is required for BEA Weblogic version <
9.2.
+ // See
http://jira.jboss.com/jira/browse/JBPORTAL-1220
+ String sessionId = ServletAccess.getRequest().getSession().getId();
+ log.debug("Got init cookie operation, created a session with id " +
sessionId);
+
+ return new ReturnAny();
}
// Parameter checking methods
***************************************************************************************
@@ -633,7 +639,7 @@
}
catch (MimeTypeParseException e)
{
-
throw(UnsupportedMimeTypeFault)WSRPUtils.createFaultFrom(UnsupportedMimeTypeFault.class,
e);
+ throw
(UnsupportedMimeTypeFault)WSRPUtils.createFaultFrom(UnsupportedMimeTypeFault.class, e);
}
return streamInfo;
}
@@ -670,12 +676,7 @@
public boolean isUserInRole(String roleName)
{
- if (wsrpUserContext != null)
- {
- List userCategories = Arrays.asList(wsrpUserContext.getUserCategories());
- return userCategories.contains(roleName);
- }
- return false;
+ return wsrpUserContext != null && Tools.isContainedIn(roleName,
wsrpUserContext.getUserCategories());
}
public boolean isAuthenticated()
@@ -717,7 +718,7 @@
// no MIME type was found: error!
if (markupType == null)
{
-
throw(UnsupportedMimeTypeFault)WSRPUtils.createFaultFrom(UnsupportedMimeTypeFault.class,
+ throw
(UnsupportedMimeTypeFault)WSRPUtils.createFaultFrom(UnsupportedMimeTypeFault.class,
new IllegalArgumentException("None of the specified MIME types are
supported by this Portlet."));
}
@@ -729,7 +730,7 @@
}
catch (IllegalArgumentException e)
{
- throw(UnsupportedModeFault)WSRPUtils.createFaultFrom(UnsupportedModeFault.class,
e);
+ throw
(UnsupportedModeFault)WSRPUtils.createFaultFrom(UnsupportedModeFault.class, e);
}
// get the window state
@@ -740,7 +741,7 @@
}
catch (IllegalArgumentException e)
{
-
throw(UnsupportedWindowStateFault)WSRPUtils.createFaultFrom(UnsupportedWindowStateFault.class,
e);
+ throw
(UnsupportedWindowStateFault)WSRPUtils.createFaultFrom(UnsupportedWindowStateFault.class,
e);
}
// get the character set
Modified:
branches/JBoss_Portal_Branch_2_4/wsrp/src/main/org/jboss/portal/wsrp/producer/ServiceDescriptionHandler.java
===================================================================
---
branches/JBoss_Portal_Branch_2_4/wsrp/src/main/org/jboss/portal/wsrp/producer/ServiceDescriptionHandler.java 2007-02-23
19:09:56 UTC (rev 6384)
+++
branches/JBoss_Portal_Branch_2_4/wsrp/src/main/org/jboss/portal/wsrp/producer/ServiceDescriptionHandler.java 2007-02-23
19:16:55 UTC (rev 6385)
@@ -70,7 +70,8 @@
{
super(producer);
serviceDescription =
WSRPTypeFactory.createServiceDescription(producer.isRequiresRegistration());
- serviceDescription.setRequiresInitCookie(CookieProtocol.none);
+ // force call to initCookie... See
http://jira.jboss.com/jira/browse/JBPORTAL-1220
+ serviceDescription.setRequiresInitCookie(CookieProtocol.perUser);
}
public ServiceDescription getServiceDescription(GetServiceDescription gs)