There were some significant changes to the client support features last week and some feedback would be good from anyone who is using s2-oauth in a client app. See in particular the new constructors and public methods in OAuth2RestTemplate...
For a client with an existing access token:
For a client that needs to obtain a token but has all the credentials needed:Code:OAuth2ProtectedResourceDetails resource = ...; OAuth2ClientContext context = new DefaultOAuth2ClientContext(accessToken); OAuth2RestTemplate template = new OAuth2RestTemplate(resource, context); // ... now use template as a normal RestTemplate
There are some tweaks in the pipeline to make this last example work better with implicit and auth code grants. Password and client credentials should be OK already.Code:OAuth2ProtectedResourceDetails resource = ...; OAuth2ClientContext context = new DefaultOAuth2ClientContext(new AccessTokenRequest(parameters)); OAuth2RestTemplate template = new OAuth2RestTemplate(resource, context); // ... now use template as a normal RestTemplate
A webapp client can create a rest template and inject a OAuth2ClientContext in session scope to get the same behaviour as before the change, and there is a new namespace element to support this in a convenient way, e.g. (from tonr2):
Code:<bean id="sparklrService" class="org.springframework.security.oauth.examples.tonr.impl.SparklrServiceImpl"> ... <property name="sparklrRestTemplate"> <oauth:rest-template resource="sparklr" /> </property> <property name="trustedClientRestTemplate"> <oauth:rest-template resource="trusted" /> </property> </bean>


Reply With Quote