@Override public OAuthService getCurrentService() { return services.select(getCurrentSession().getServiceQualifier()).get(); }
@Override public UserProfileService getCurrentUserProfileService() { return userProfileServices.select(getCurrentSession().getServiceQualifier()).get(); }
@Override public void endDance(String verifier) { getCurrentSession().setVerifier(verifier); endDance(); }
@Override public synchronized void endDance() { OAuthSession currentSession = getCurrentSession(); System.out.println("Verifier ("+ getVerifierParamName() + ") : " + currentSession.getVerifier()); // FIXME replace with logger or disable if (currentSession.getAccessToken() == null) { currentSession.setAccessToken(getCurrentService().getAccessToken(currentSession.getRequestToken(), currentSession.getVerifier())); } if (currentSession.getAccessToken() != null) { currentSession.setRequestToken(null); currentSession.setUserProfile(getCurrentUserProfileService().getUserProfile()); currentSession.getRepo().add(currentSession); completeEvt.select(currentSession.getServiceQualifier()).fire(new OAuthComplete(SocialEvent.Status.SUCCESS, "", currentSession)); //TODO: reactivate logger } else { // FIXME Launch an exception !! } }
@Override public OAuthSession resolveSessionForQualifier(Annotation qualifier) { OAuthSession current = getCurrentSession(); if (current.getServiceQualifier().equals(qualifier)) { return current; } if (getCurrentRepository().getCurrent().equals(OAuthSession.NULL)) { buildSessionFor(qualifier); } else if (!getCurrentRepository().getCurrent().getServiceQualifier().equals(qualifier)) { throw new ProviderMismatchException("Inconsistent state between repo and service. In repo Session provider is " + getCurrentRepository().getCurrent().getServiceName() + " while service provider is " + qualifier); } return getCurrentRepository().getCurrent(); }