· 6 years ago · Jul 26, 2019, 04:10 PM
1@Configuration
2@EnableOAuth2Client
3class OAuth2Client {
4
5 @Value("${"$"}{auth0.oauth2.scopes}")
6 private lateinit var scopes: String
7
8 @Value("${"$"}{auth0.oauth2.domain}")
9 private lateinit var domain: String
10
11 @Value("${"$"}{auth0.oauth2.clientId}")
12 private lateinit var clientId: String
13
14 @Value("${"$"}{auth0.oauth2.clientSecret")
15 private lateinit var clientSecret: String
16
17 @Bean
18 fun auth0OAuth2Details(): OAuth2ProtectedResourceDetails {
19 val oAuth2Details = AuthorizationCodeResourceDetails()
20 oAuth2Details.authenticationScheme = AuthenticationScheme.form
21 oAuth2Details.clientAuthenticationScheme = AuthenticationScheme.form
22 oAuth2Details.clientId = clientId
23 oAuth2Details.clientSecret = clientSecret
24 oAuth2Details.userAuthorizationUri = domain + "authorization"
25 oAuth2Details.accessTokenUri = domain + "oauth/token"
26 oAuth2Details.scope = listOf(scopes)
27 return oAuth2Details
28 }
29
30 @Resource
31 @SuppressWarnings("SpringJavaAutowiringInspection")
32 private lateinit var oAuth2ClientContext: OAuth2ClientContext
33
34 @Bean
35 @Scope(value="session", proxyMode = ScopedProxyMode.INTERFACES)
36 fun auth0OAuth2RestTemplate() : OAuth2RestOperations {
37 return OAuth2RestTemplate(auth0OAuth2Details(), oAuth2ClientContext)
38 }
39}