View Javadoc

1   package sparklr.common;
2   
3   import static org.junit.Assert.assertNotNull;
4   import static org.junit.Assert.fail;
5   
6   import org.junit.Test;
7   import org.springframework.http.HttpHeaders;
8   import org.springframework.security.crypto.codec.Base64;
9   import org.springframework.security.oauth2.client.resource.UserRedirectRequiredException;
10  import org.springframework.security.oauth2.client.test.OAuth2ContextConfiguration;
11  import org.springframework.security.oauth2.client.token.grant.implicit.ImplicitResourceDetails;
12  import org.springframework.security.oauth2.common.util.OAuth2Utils;
13  
14  /**
15   * @author Ryan Heaton
16   * @author Dave Syer
17   */
18  public abstract class AbstractImplicitProviderTests extends AbstractIntegrationTests {
19  
20  	@Test
21  	@OAuth2ContextConfiguration(resource = NonAutoApproveImplicit.class, initialize = false)
22  	public void testPostForNonAutomaticApprovalToken() throws Exception {
23  
24  		HttpHeaders headers = new HttpHeaders();
25  		headers.set("Authorization", "Basic " + new String(Base64.encode("user:password".getBytes())));
26  		context.getAccessTokenRequest().setHeaders(headers);
27  		try {
28  			assertNotNull(context.getAccessToken());
29  			fail("Expected UserRedirectRequiredException");
30  		}
31  		catch (UserRedirectRequiredException e) {
32  			// ignore
33  		}
34  		// add user approval parameter for the second request
35  		context.getAccessTokenRequest().add(OAuth2Utils.USER_OAUTH_APPROVAL, "true");
36  		context.getAccessTokenRequest().add("scope.read", "true");
37  		assertNotNull(context.getAccessToken());
38  	}
39  
40  	static class NonAutoApproveImplicit extends ImplicitResourceDetails {
41  		public NonAutoApproveImplicit(Object target) {
42  			super();
43  			setClientId("my-trusted-client");
44  			setId(getClientId());
45  			setPreEstablishedRedirectUri("http://anywhere");
46  		}
47  	}
48  
49  }