I am trying to use the AccessTokenVaidatorService, but I keep running into a 
problem of the UserPrincipal being null.


@Path("validate")
public class AccessTokenValidatorService extends AbstractAccessTokenValidator {
    @POST
    @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
    @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
    public AccessTokenValidation getTokenValidationInfo(
        @FormParam(OAuthConstants.AUTHORIZATION_SCHEME_TYPE) String authScheme,
        @Encoded @FormParam(OAuthConstants.AUTHORIZATION_SCHEME_DATA) String 
authSchemeData) {


        if (getMessageContext().getSecurityContext().getUserPrincipal() == 
null) {
            AuthorizationUtils.throwAuthorizationFailure(supportedSchemes, 
realm);
        }
        return super.getAccessTokenValidation(authScheme, authSchemeData);
    }
}


However, my token is a client_credentials grant type and there is no user.  
Also, I am wonder why the OAuth server would have a UserPrincipal to begin 
with.  The end user does not even know this service exists as the protected 
services are calling it with the Auth token they are called with. So, I don’t 
understand why a UserPrincipal should ever be present?  If I am missing 
something, how does the UserPrincipal get created and added to the 
SecurityContext then?

Any help on this would be greatly appreciated as no matter what I have tried I 
can’t get this service to work.



Reply via email to