package com.github.hburgmeier.jerseyoauth2.protocol.impl; import java.util.EnumSet; import com.github.hburgmeier.jerseyoauth2.api.protocol.IAccessTokenRequest; import com.github.hburgmeier.jerseyoauth2.api.protocol.IAuthorizationRequest; import com.github.hburgmeier.jerseyoauth2.api.protocol.IHttpRequest; import com.github.hburgmeier.jerseyoauth2.api.protocol.IRequestFactory; import com.github.hburgmeier.jerseyoauth2.api.protocol.IResourceAccessRequest; import com.github.hburgmeier.jerseyoauth2.api.protocol.OAuth2ParseException; import com.github.hburgmeier.jerseyoauth2.api.types.ParameterStyle; import com.github.hburgmeier.jerseyoauth2.api.types.TokenType; import com.github.hburgmeier.jerseyoauth2.protocol.impl.accesstoken.AbstractTokenRequest; import com.github.hburgmeier.jerseyoauth2.protocol.impl.accesstoken.AccessTokenRequestParser; import com.github.hburgmeier.jerseyoauth2.protocol.impl.authorization.AuthorizationRequest; import com.github.hburgmeier.jerseyoauth2.protocol.impl.authorization.AuthorizationRequestParser; import com.github.hburgmeier.jerseyoauth2.protocol.impl.resourceaccess.ResourceAccessParser; import com.github.hburgmeier.jerseyoauth2.protocol.impl.resourceaccess.ResourceAccessRequest; public class RequestFactory implements IRequestFactory { private final ResourceAccessParser resourceAccessParser = new ResourceAccessParser(); private final AuthorizationRequestParser authorizationRequestParser = new AuthorizationRequestParser(); private final AccessTokenRequestParser accessTokenRequestParser = new AccessTokenRequestParser(); @Override public IResourceAccessRequest parseResourceAccessRequest(IHttpRequest request, EnumSet<ParameterStyle> parameterStyles, EnumSet<TokenType> tokenTypes) throws OAuth2ParseException { ResourceAccessRequest accessRequest = resourceAccessParser.parse(request, parameterStyles, tokenTypes); accessRequest.validate(); return accessRequest; } @Override public IAuthorizationRequest parseAuthorizationRequest(IHttpRequest request, boolean useAuthorizationHeader) throws OAuth2ParseException { AuthorizationRequest authzRequest = authorizationRequestParser.parse(request, useAuthorizationHeader); authzRequest.validate(); return authzRequest; } @Override public IAccessTokenRequest parseAccessTokenRequest(IHttpRequest request, boolean useAuthorizationHeader) throws OAuth2ParseException { AbstractTokenRequest accessTokenRequest = accessTokenRequestParser.parse(request, useAuthorizationHeader); accessTokenRequest.validate(); return accessTokenRequest; } }