> On 2012-02-22 00:39:19, Ryan Baxter wrote:
> > LGTM.  This seems reasonable.  I took a quick peak at the OAuth 2 spec and 
> > it didnt seem to go into any details on this.  You might want to post 
> > something on the OAuth mailing list to see if anyone there has any thoughts.

The only details I found were these: 
http://tools.ietf.org/html/draft-ietf-oauth-v2-bearer-16#section-3.1

It talks about services typically returning 400, 401, 403, and 405 when a 
request fails.  However, the information it provides there also seems like we 
should really only remove the token if there's a 401.  Removing the token from 
the store in that case would be fulfilling this part of the spec: "The client 
MAY request a new access token and retry the protected resource request."

403 indicates that the request requires higher privileges than that provided by 
the access token and that it's not necessarily a problem with the access token 
itself.  I'm not sure if it would be possible to request a new access token 
with higher privileges since the scope is defined in the gadget from what I've 
seen.

And now the more I think about it, we should really be looking for those error 
codes like "invalid_token" or "insufficient scope" in the response headers... 
if those are even available in the flow that I'm looking at in Shindig... I'll 
investigate more.


- Stanton


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/3987/#review5255
-----------------------------------------------------------


On 2012-02-21 21:40:31, Stanton Sievers wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/3987/
> -----------------------------------------------------------
> 
> (Updated 2012-02-21 21:40:31)
> 
> 
> Review request for shindig, li xu and Adam Clarke.
> 
> 
> Summary
> -------
> 
> From JIRA:
> If the url to which a gadget is doing a makeRequest doesn't exist, i.e., 
> returns a 404 to the Shindig server, the access token is being removed from 
> the OAuth2 Store. This functionality is implemented here: 
> org.apache.shindig.gadgets.oauth2.BasicOAuth2Request.fetchFromServer(OAuth2Accessor,
>  HttpRequest)
> 
> fetchFromServer is checking only if the response code is 4xx, and if so, it 
> is removing the access token from the store. This seems right for 401 or 403 
> return codes, perhaps, but not for 404. The behavior for an end user would 
> then be that they have to do the OAuth dance again next time the gadget tries 
> to access a resource.
> 
> The proposal is to change the current implementation to look explicitly for 
> 401 or 403 response codes in fetchFromServer instead of looking for any 4xx. 
> 
> Any other recommendations on what the behavior should be are welcome.
> 
> 
> This addresses bug SHINDIG-1711.
>     https://issues.apache.org/jira/browse/SHINDIG-1711
> 
> 
> Diffs
> -----
> 
>   
> http://svn.apache.org/repos/asf/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth2/BasicOAuth2Request.java
>  1292022 
> 
> Diff: https://reviews.apache.org/r/3987/diff
> 
> 
> Testing
> -------
> 
> Built and ran existing JUnits.
> 
> 
> Thanks,
> 
> Stanton
> 
>

Reply via email to