package com.sequenceiq.cloudbreak.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Component; import com.sequenceiq.cloudbreak.api.endpoint.SubscriptionEndpoint; import com.sequenceiq.cloudbreak.api.model.IdJson; import com.sequenceiq.cloudbreak.api.model.SubscriptionRequest; import com.sequenceiq.cloudbreak.domain.CbUser; import com.sequenceiq.cloudbreak.domain.Subscription; import com.sequenceiq.cloudbreak.logger.MDCBuilder; import com.sequenceiq.cloudbreak.service.subscription.SubscriptionService; @Component public class SubscriptionController implements SubscriptionEndpoint { @Autowired private SubscriptionService subscriptionService; @Autowired private AuthenticatedUserService authenticatedUserService; public IdJson subscribe(SubscriptionRequest subscriptionRequest) { CbUser user = authenticatedUserService.getCbUser(); MDCBuilder.buildUserMdcContext(user); Subscription subscription = new Subscription(SecurityContextHolder.getContext().getAuthentication().getPrincipal().toString(), subscriptionRequest.getEndpointUrl()); return new IdJson(subscriptionService.subscribe(subscription)); } }