1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.springframework.security.oauth2.client.test;
17
18 import java.lang.annotation.ElementType;
19 import java.lang.annotation.Retention;
20 import java.lang.annotation.RetentionPolicy;
21 import java.lang.annotation.Target;
22
23 import org.springframework.security.oauth2.client.resource.BaseOAuth2ProtectedResourceDetails;
24 import org.springframework.security.oauth2.client.resource.OAuth2ProtectedResourceDetails;
25 import org.springframework.security.oauth2.client.token.grant.client.ClientCredentialsResourceDetails;
26 import org.springframework.security.oauth2.client.token.grant.implicit.ImplicitResourceDetails;
27 import org.springframework.security.oauth2.client.token.grant.password.ResourceOwnerPasswordResourceDetails;
28
29
30
31
32
33
34
35
36
37 @Retention(RetentionPolicy.RUNTIME)
38 @Target({ ElementType.TYPE, ElementType.METHOD })
39 public @interface OAuth2ContextConfiguration {
40
41
42
43
44
45
46
47
48
49
50
51
52
53 Class<? extends OAuth2ProtectedResourceDetails> value() default OAuth2ProtectedResourceDetails.class;
54
55
56
57
58
59
60
61 Class<? extends OAuth2ProtectedResourceDetails> resource() default Password.class;
62
63 static class ResourceHelper {
64 public static void initialize(OAuth2ProtectedResourceDetails source, BaseOAuth2ProtectedResourceDetails target) {
65 target.setClientId(source.getClientId());
66 target.setClientSecret(source.getClientSecret());
67 target.setScope(source.getScope());
68 target.setId(source.getId());
69 target.setAccessTokenUri(source.getAccessTokenUri());
70 }
71 }
72
73
74
75
76 static class ClientCredentials extends ClientCredentialsResourceDetails {
77 public ClientCredentials(TestAccounts testAccounts) {
78 ClientCredentialsResourceDetails resource = testAccounts.getDefaultClientCredentialsResource();
79 ResourceHelper.initialize(resource, this);
80 }
81 }
82
83
84
85
86 static class Password extends ResourceOwnerPasswordResourceDetails {
87 public Password(TestAccounts testAccounts) {
88 ResourceOwnerPasswordResourceDetails resource = testAccounts.getDefaultResourceOwnerPasswordResource();
89 ResourceHelper.initialize(resource, this);
90 setUsername(resource.getUsername());
91 setPassword(resource.getPassword());
92 }
93 }
94
95
96
97
98 static class Implicit extends ImplicitResourceDetails {
99 public Implicit(TestAccounts testAccounts) {
100 ImplicitResourceDetails resource = testAccounts.getDefaultImplicitResource();
101 ResourceHelper.initialize(resource, this);
102 setPreEstablishedRedirectUri(resource.getPreEstablishedRedirectUri());
103 }
104 }
105
106
107
108
109
110
111
112
113 boolean initialize() default true;
114
115 }