Как создать 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. Каким образом мне можно создать объект календаря при такой аутентификации?


Ответы (0 шт):