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
16
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
33 }
34
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 }