本文整理汇总了Golang中github.com/cloudfoundry/cli/cf/configuration/core_config.ReadWriter.RefreshToken方法的典型用法代码示例。如果您正苦于以下问题:Golang ReadWriter.RefreshToken方法的具体用法?Golang ReadWriter.RefreshToken怎么用?Golang ReadWriter.RefreshToken使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/cloudfoundry/cli/cf/configuration/core_config.ReadWriter
的用法示例。
在下文中一共展示了ReadWriter.RefreshToken方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1:
"username": "[email protected]",
"password": "bar",
})
})
Describe("when login succeeds", func() {
BeforeEach(func() {
setupTestServer(successfulLoginRequest)
})
It("stores the access and refresh tokens in the config", func() {
Expect(handler).To(HaveAllRequestsCalled())
Expect(err).NotTo(HaveOccurred())
Expect(config.AuthenticationEndpoint()).To(Equal(testServer.URL))
Expect(config.AccessToken()).To(Equal("BEARER my_access_token"))
Expect(config.RefreshToken()).To(Equal("my_refresh_token"))
})
})
Describe("when login fails", func() {
BeforeEach(func() {
setupTestServer(unsuccessfulLoginRequest)
})
It("returns an error", func() {
Expect(handler).To(HaveAllRequestsCalled())
Expect(err).NotTo(BeNil())
Expect(err.Error()).To(Equal("Credentials were rejected, please try again."))
Expect(config.AccessToken()).To(BeEmpty())
Expect(config.RefreshToken()).To(BeEmpty())
})
示例2:
It("refreshes the token when UAA requests fail", func() {
apiServer := httptest.NewTLSServer(refreshTokenApiEndPoint(
`{ "error": "invalid_token", "error_description": "Auth token is invalid" }`,
testnet.TestResponse{Status: http.StatusOK},
))
defer apiServer.Close()
ccGateway.SetTrustedCerts(apiServer.TLS.Certificates)
config, auth := createAuthenticationRepository(apiServer, authServer)
uaaGateway.SetTokenRefresher(auth)
request, apiErr := uaaGateway.NewRequest("POST", config.ApiEndpoint()+"/v2/foo", config.AccessToken(), strings.NewReader("expected body"))
_, apiErr = uaaGateway.PerformRequest(request)
Expect(apiErr).NotTo(HaveOccurred())
Expect(config.AccessToken()).To(Equal("bearer new-access-token"))
Expect(config.RefreshToken()).To(Equal("new-refresh-token"))
})
It("refreshes the token when CC requests fail", func() {
apiServer := httptest.NewTLSServer(refreshTokenApiEndPoint(
`{ "code": 1000, "description": "Auth token is invalid" }`,
testnet.TestResponse{Status: http.StatusOK}))
defer apiServer.Close()
ccGateway.SetTrustedCerts(apiServer.TLS.Certificates)
config, auth := createAuthenticationRepository(apiServer, authServer)
ccGateway.SetTokenRefresher(auth)
request, apiErr := ccGateway.NewRequest("POST", config.ApiEndpoint()+"/v2/foo", config.AccessToken(), strings.NewReader("expected body"))
_, apiErr = ccGateway.PerformRequest(request)
Expect(apiErr).NotTo(HaveOccurred())
示例3: NewRepositoryLocator
func NewRepositoryLocator(config core_config.ReadWriter, gatewaysByName map[string]net.Gateway) (loc RepositoryLocator) {
strategy := strategy.NewEndpointStrategy(config.ApiVersion())
cloudControllerGateway := gatewaysByName["cloud-controller"]
routingApiGateway := gatewaysByName["routing-api"]
uaaGateway := gatewaysByName["uaa"]
loc.authRepo = authentication.NewUAAAuthenticationRepository(uaaGateway, config)
// ensure gateway refreshers are set before passing them by value to repositories
cloudControllerGateway.SetTokenRefresher(loc.authRepo)
uaaGateway.SetTokenRefresher(loc.authRepo)
tlsConfig := net.NewTLSConfig([]tls.Certificate{}, config.IsSSLDisabled())
loggregatorConsumer := consumer.New(config.LoggregatorEndpoint(), tlsConfig, http.ProxyFromEnvironment)
loggregatorConsumer.SetDebugPrinter(terminal.DebugPrinter{})
loc.appBitsRepo = application_bits.NewCloudControllerApplicationBitsRepository(config, cloudControllerGateway)
loc.appEventsRepo = app_events.NewCloudControllerAppEventsRepository(config, cloudControllerGateway, strategy)
loc.appFilesRepo = api_app_files.NewCloudControllerAppFilesRepository(config, cloudControllerGateway)
loc.appRepo = applications.NewCloudControllerApplicationRepository(config, cloudControllerGateway)
loc.appSummaryRepo = NewCloudControllerAppSummaryRepository(config, cloudControllerGateway)
loc.appInstancesRepo = app_instances.NewCloudControllerAppInstancesRepository(config, cloudControllerGateway)
loc.authTokenRepo = NewCloudControllerServiceAuthTokenRepository(config, cloudControllerGateway)
loc.curlRepo = NewCloudControllerCurlRepository(config, cloudControllerGateway)
loc.domainRepo = NewCloudControllerDomainRepository(config, cloudControllerGateway, strategy)
loc.endpointRepo = NewEndpointRepository(config, cloudControllerGateway)
loc.logsRepo = NewLoggregatorLogsRepository(config, loggregatorConsumer, loc.authRepo)
loc.organizationRepo = organizations.NewCloudControllerOrganizationRepository(config, cloudControllerGateway)
loc.passwordRepo = password.NewCloudControllerPasswordRepository(config, uaaGateway)
loc.quotaRepo = quotas.NewCloudControllerQuotaRepository(config, cloudControllerGateway)
loc.routeRepo = NewCloudControllerRouteRepository(config, cloudControllerGateway)
loc.routeServiceBindingRepo = NewCloudControllerRouteServiceBindingRepository(config, cloudControllerGateway)
loc.routingApiRepo = NewRoutingApiRepository(config, routingApiGateway)
loc.stackRepo = stacks.NewCloudControllerStackRepository(config, cloudControllerGateway)
loc.serviceRepo = NewCloudControllerServiceRepository(config, cloudControllerGateway)
loc.serviceKeyRepo = NewCloudControllerServiceKeyRepository(config, cloudControllerGateway)
loc.serviceBindingRepo = NewCloudControllerServiceBindingRepository(config, cloudControllerGateway)
loc.serviceBrokerRepo = NewCloudControllerServiceBrokerRepository(config, cloudControllerGateway)
loc.servicePlanRepo = NewCloudControllerServicePlanRepository(config, cloudControllerGateway)
loc.servicePlanVisibilityRepo = NewCloudControllerServicePlanVisibilityRepository(config, cloudControllerGateway)
loc.serviceSummaryRepo = NewCloudControllerServiceSummaryRepository(config, cloudControllerGateway)
loc.spaceRepo = spaces.NewCloudControllerSpaceRepository(config, cloudControllerGateway)
loc.userProvidedServiceInstanceRepo = NewCCUserProvidedServiceInstanceRepository(config, cloudControllerGateway)
loc.userRepo = NewCloudControllerUserRepository(config, uaaGateway, cloudControllerGateway)
loc.buildpackRepo = NewCloudControllerBuildpackRepository(config, cloudControllerGateway)
loc.buildpackBitsRepo = NewCloudControllerBuildpackBitsRepository(config, cloudControllerGateway, app_files.ApplicationZipper{})
loc.securityGroupRepo = security_groups.NewSecurityGroupRepo(config, cloudControllerGateway)
loc.stagingSecurityGroupRepo = staging.NewStagingSecurityGroupsRepo(config, cloudControllerGateway)
loc.runningSecurityGroupRepo = running.NewRunningSecurityGroupsRepo(config, cloudControllerGateway)
loc.securityGroupSpaceBinder = securitygroupspaces.NewSecurityGroupSpaceBinder(config, cloudControllerGateway)
loc.spaceQuotaRepo = space_quotas.NewCloudControllerSpaceQuotaRepository(config, cloudControllerGateway)
loc.featureFlagRepo = feature_flags.NewCloudControllerFeatureFlagRepository(config, cloudControllerGateway)
loc.environmentVariableGroupRepo = environment_variable_groups.NewCloudControllerEnvironmentVariableGroupsRepository(config, cloudControllerGateway)
loc.copyAppSourceRepo = copy_application_source.NewCloudControllerCopyApplicationSourceRepository(config, cloudControllerGateway)
client := v3client.NewClient(config.ApiEndpoint(), config.AuthenticationEndpoint(), config.AccessToken(), config.RefreshToken())
loc.v3Repository = repository.NewRepository(config, client)
return
}
示例4:
})
Context("when the api endpoint does not change", func() {
BeforeEach(func() {
config.SetApiEndpoint(testServer.URL)
config.SetAccessToken("some access token")
config.SetRefreshToken("some refresh token")
})
It("does not clear the session if the api endpoint does not change", func() {
repo.UpdateEndpoint(testServer.URL)
Expect(config.OrganizationFields()).To(Equal(org))
Expect(config.SpaceFields()).To(Equal(space))
Expect(config.AccessToken()).To(Equal("some access token"))
Expect(config.RefreshToken()).To(Equal("some refresh token"))
})
})
})
Context("when the API request fails", func() {
ItClearsTheConfig := func() {
Expect(config.ApiEndpoint()).To(BeEmpty())
}
BeforeEach(func() {
config.SetApiEndpoint("example.com")
})
It("returns a failure response when the server has a bad certificate", func() {
testServer.TLS.Certificates = []tls.Certificate{testnet.MakeExpiredTLSCert()}
示例5:
Describe("GetApplications", func() {
It("tries to get applications from CC with a token handler", func() {
r.GetApplications()
Expect(ccClient.GetApplicationsCallCount()).To(Equal(1))
})
Context("when the client has updated tokens", func() {
BeforeEach(func() {
ccClient.TokensUpdatedReturns(true)
ccClient.GetUpdatedTokensReturns("updated-access-token", "updated-refresh-token")
})
It("stores the new tokens in the config", func() {
r.GetApplications()
Expect(config.AccessToken()).To(Equal("updated-access-token"))
Expect(config.RefreshToken()).To(Equal("updated-refresh-token"))
})
})
Context("when getting the applications succeeds", func() {
BeforeEach(func() {
ccClient.GetApplicationsReturns(getApplicationsJSON, nil)
})
It("returns a slice of application model objects", func() {
applications, err := r.GetApplications()
Expect(err).NotTo(HaveOccurred())
Expect(applications).To(Equal([]models.V3Application{
{
Name: "app-1-name",
DesiredState: "STOPPED",