Как создать Calendar в Google Calendar API в Spring?
Пытаюсь взаимодействовать с календарём используя Google Calendar API. Calendar API на Google Cloud Platform подключил. OAuth 2.0 работает. В документации увидел, что при создании Calendar Service в Builder передаются параметры HTTP_TRANSPORT, JSON_FACTORY и Credentials. Не получается забрать Credentials для Google API из SecurityContext. Сейчас код выглядит так
WebSecurityConfig:
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.anyRequest().authenticated()
.and()
.oauth2Login();
}
}
Controller, в котором пытаюсь начать работу с Календарём.
@Autowired
OAuth2AuthorizedClientService clientService;
private static final String APPLICATION_NAME = "Google Calendar";
private static final JsonFactory JSON_FACTORY = GsonFactory.getDefaultInstance();
@GetMapping( "/google" )
public String google() throws GeneralSecurityException, IOException {
final NetHttpTransport HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
Credential credential = (Credential) authentication.getCredentials();
Calendar service = new Calendar.Builder(HTTP_TRANSPORT, JSON_FACTORY, credential)
.setApplicationName(APPLICATION_NAME)
.build();
}
Credential, которые я достаю из контекста не кастятся к Credential, которые идут из Calendar API. Каким образом мне можно создать объект календаря при такой аутентификации?