package com.github.hburgmeier.jerseyoauth2.authsrv.api.ui; import java.io.IOException; import java.util.Set; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import com.github.hburgmeier.jerseyoauth2.api.protocol.IAuthorizationRequest; import com.github.hburgmeier.jerseyoauth2.api.protocol.IRefreshTokenRequest; import com.github.hburgmeier.jerseyoauth2.api.user.IUser; import com.github.hburgmeier.jerseyoauth2.authsrv.api.client.IRegisteredClientApp; import com.github.hburgmeier.jerseyoauth2.authsrv.api.protocol.IOAuth2Response; public interface IAuthorizationFlow { IOAuth2Response startAuthorizationFlow(IUser user, IRegisteredClientApp clientApp, Set<String> scope, IAuthorizationRequest originalRequest, HttpServletRequest request) throws AuthorizationFlowException, ServletException, IOException; IOAuth2Response startScopeEnhancementFlow(IUser user, IRegisteredClientApp clientApp, Set<String> requestedScope, IRefreshTokenRequest refreshTokenRequest, HttpServletRequest request) throws AuthorizationFlowException; IOAuth2Response handleMissingUser(HttpServletRequest request) throws AuthorizationFlowException, ServletException, IOException; IOAuth2Response handleInvalidClient(HttpServletRequest request) throws AuthorizationFlowException, ServletException, IOException; }