Paul Flynn
unread,Jan 22, 2008, 2:12:07 AM1/22/08Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to joid-dev
Using JoidConsumer.authenticate() and passing in the request parameter
map, there are casts to String as opposed to String[]. The patch
below fixes the issues. This issue may only surface in Jetty 6.1.
Index: C:/Projects/ws/joid/src/org/verisign/joid/
SimpleRegistration.java
===================================================================
--- C:/Projects/ws/joid/src/org/verisign/joid/SimpleRegistration.java
(revision 84)
+++ C:/Projects/ws/joid/src/org/verisign/joid/SimpleRegistration.java
(working copy)
@@ -13,15 +13,15 @@
package org.verisign.joid;
-import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.StringTokenizer;
+
+import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.commons.logging.Log;
/**
* Simple registration extensions, as defined by
@@ -151,8 +151,10 @@
for (Iterator iter = set.iterator(); iter.hasNext();){
Map.Entry mapEntry = (Map.Entry) iter.next();
String key = (String) mapEntry.getKey();
- String value = (String) mapEntry.getValue();
-
+ String value = null;
+ if (null != mapEntry.getValue()) {
+ value = ((String[])mapEntry.getValue())[0];
+ }
if (key.startsWith(trigger)){
sup.put(key.substring(triggerLength), value);
}
Index: C:/Projects/ws/joid/src/org/verisign/joid/
AuthenticationResponse.java
===================================================================
--- C:/Projects/ws/joid/src/org/verisign/joid/
AuthenticationResponse.java (revision 84)
+++ C:/Projects/ws/joid/src/org/verisign/joid/
AuthenticationResponse.java (working copy)
@@ -22,8 +22,9 @@
import java.util.Map;
import java.util.Set;
import java.util.StringTokenizer;
+
+import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.commons.logging.Log;
import org.apache.tsik.datatypes.DateTime;
/**
@@ -282,8 +283,10 @@
for (Iterator iter = set.iterator(); iter.hasNext();){
Map.Entry mapEntry = (Map.Entry) iter.next();
String key = (String) mapEntry.getKey();
- String value = (String) mapEntry.getValue();
-
+ String value = null;
+ if (null != mapEntry.getValue()) {
+ value = ((String[])mapEntry.getValue())[0];
+ }
if (AuthenticationResponse.OPENID_MODE.equals(key)) {
mode = value;
} else if (AuthenticationResponse.OPENID_IDENTITY.equals(key)) {
Index: C:/Projects/ws/joid/src/org/verisign/joid/Response.java
===================================================================
--- C:/Projects/ws/joid/src/org/verisign/joid/Response.java (revision
84)
+++ C:/Projects/ws/joid/src/org/verisign/joid/Response.java (working
copy)
@@ -13,14 +13,10 @@
package org.verisign.joid;
-import java.io.UnsupportedEncodingException;
-import java.net.URLEncoder;
-import java.util.HashMap;
-import java.util.Iterator;
import java.util.Map;
-import java.util.Set;
+
+import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.commons.logging.Log;
/**
* Represents an OpenID response. Valid for OpenID 1.1 and 2.0
namespace.
@@ -46,8 +42,12 @@
Response(Map map)
{
if (map != null) {
- this.ns = (String) map.get(Message.OPENID_NS);
- this.error = (String) map.get(Response.OPENID_ERROR);
+ if (null != map.get(Message.OPENID_NS)) {
+ this.ns = ((String[]) map.get(Message.OPENID_NS))[0];
+ }
+ if (null != map.get(Response.OPENID_ERROR)) {
+ this.error = ((String[]) map.get(Response.OPENID_ERROR))[0];
+ }
}
}