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;
}
Aggregations