Search in sources :

Example 1 with AuthenticationException

use of org.apache.airavata.model.error.AuthenticationException in project airavata by apache.

the class AuthResponse method authenticate.

public static AuthResponse authenticate(String username, String password) throws AuthenticationException {
    try {
        OAuthClientRequest request = OAuthClientRequest.tokenLocation(hostName + "/oauth2/token").setClientId(clientId).setClientSecret(clientSecret).setGrantType(GrantType.PASSWORD).setRedirectURI("").setUsername(username).setPassword(password).setScope("openid").buildBodyMessage();
        URLConnectionClient ucc = new URLConnectionClient();
        org.apache.oltu.oauth2.client.OAuthClient oAuthClient = new org.apache.oltu.oauth2.client.OAuthClient(ucc);
        OAuthResourceResponse resp = oAuthClient.resource(request, OAuth.HttpMethod.POST, OAuthResourceResponse.class);
        // converting JSON to object
        ObjectMapper mapper = new ObjectMapper();
        AuthResponse authResponse;
        try {
            authResponse = mapper.readValue(resp.getBody(), AuthResponse.class);
        } catch (Exception e) {
            return null;
        }
        String accessToken = authResponse.getAccess_token();
        if (accessToken != null && !accessToken.isEmpty()) {
            request = new OAuthBearerClientRequest(hostName + "/oauth2/userinfo?schema=openid").buildQueryMessage();
            ucc = new URLConnectionClient();
            request.setHeader("Authorization", "Bearer " + accessToken);
            oAuthClient = new org.apache.oltu.oauth2.client.OAuthClient(ucc);
            resp = oAuthClient.resource(request, OAuth.HttpMethod.GET, OAuthResourceResponse.class);
            Map<String, String> profile = mapper.readValue(resp.getBody(), Map.class);
            return authResponse;
        }
    } catch (Exception ex) {
        throw new AuthenticationException(ex.getMessage());
    }
    return null;
}
Also used : OAuthResourceResponse(org.apache.oltu.oauth2.client.response.OAuthResourceResponse) DefaultOAuthClient(org.apache.airavata.service.security.oauth.DefaultOAuthClient) AuthenticationException(org.apache.airavata.model.error.AuthenticationException) AuthenticationException(org.apache.airavata.model.error.AuthenticationException) AiravataSecurityException(org.apache.airavata.security.AiravataSecurityException) OAuthBearerClientRequest(org.apache.oltu.oauth2.client.request.OAuthBearerClientRequest) URLConnectionClient(org.apache.oltu.oauth2.client.URLConnectionClient) OAuthClientRequest(org.apache.oltu.oauth2.client.request.OAuthClientRequest) ObjectMapper(org.codehaus.jackson.map.ObjectMapper)

Aggregations

AuthenticationException (org.apache.airavata.model.error.AuthenticationException)1 AiravataSecurityException (org.apache.airavata.security.AiravataSecurityException)1 DefaultOAuthClient (org.apache.airavata.service.security.oauth.DefaultOAuthClient)1 URLConnectionClient (org.apache.oltu.oauth2.client.URLConnectionClient)1 OAuthBearerClientRequest (org.apache.oltu.oauth2.client.request.OAuthBearerClientRequest)1 OAuthClientRequest (org.apache.oltu.oauth2.client.request.OAuthClientRequest)1 OAuthResourceResponse (org.apache.oltu.oauth2.client.response.OAuthResourceResponse)1 ObjectMapper (org.codehaus.jackson.map.ObjectMapper)1