File tree Expand file tree Collapse file tree 3 files changed +28
-2
lines changed
org.restlet.ext.oauth/src/org/restlet/ext/oauth
org.restlet.ext.servlet/src/org/restlet/ext/servlet/internal
org.restlet.test/src/org/restlet/test/ext/oauth Expand file tree Collapse file tree 3 files changed +28
-2
lines changed Original file line number Diff line number Diff line change 29
29
import java .util .logging .Logger ;
30
30
31
31
import org .restlet .data .Form ;
32
+ import org .restlet .data .Parameter ;
32
33
import org .restlet .data .Reference ;
33
34
import org .restlet .ext .oauth .internal .Scopes ;
34
35
import org .restlet .representation .Representation ;
@@ -118,6 +119,17 @@ public Reference toReference(String uri) {
118
119
reference .setQuery (query );
119
120
return reference ;
120
121
}
122
+
123
+ public Reference toReference (Reference ref ) {
124
+ Reference reference = new Reference (ref );
125
+
126
+ //Add each parameter to avoid overwriting existing parameters
127
+ for (Parameter param : form ){
128
+ reference .addQueryParameter (param );
129
+ }
130
+
131
+ return reference ;
132
+ }
121
133
122
134
public Representation toRepresentation () {
123
135
return form .getWebRepresentation ();
Original file line number Diff line number Diff line change @@ -85,8 +85,10 @@ public HttpRequest toRequest(ServerCall httpCall) {
85
85
for (final Enumeration <String > namesEnum = servletCall .getRequest ()
86
86
.getAttributeNames (); namesEnum .hasMoreElements ();) {
87
87
attributeName = namesEnum .nextElement ();
88
- result .getAttributes ().put (attributeName ,
89
- servletCall .getRequest ().getAttribute (attributeName ));
88
+ Object attribute = servletCall .getRequest ().getAttribute (attributeName );
89
+ if (attribute != null ) {
90
+ result .getAttributes ().put (attributeName , attribute );
91
+ }
90
92
}
91
93
}
92
94
Original file line number Diff line number Diff line change @@ -64,4 +64,16 @@ public void testToReference() {
64
64
assertEquals ("val2" , form .getFirstValue ("bar" ));
65
65
assertEquals ("val3" , form .getFirstValue ("buz" ));
66
66
}
67
+
68
+ @ Test
69
+ public void testToReferenceFromReference () {
70
+ Reference originalReference = new Reference ("http://localhost/test?existing=thing" );
71
+
72
+ Reference reference = parameters .toReference (originalReference );
73
+ Form form = reference .getQueryAsForm ();
74
+ assertEquals ("thing" , form .getFirstValue ("existing" ));
75
+ assertEquals ("val1" , form .getFirstValue ("foo" ));
76
+ assertEquals ("val2" , form .getFirstValue ("bar" ));
77
+ assertEquals ("val3" , form .getFirstValue ("buz" ));
78
+ }
67
79
}
You can’t perform that action at this time.
0 commit comments