authForm.add("Passwd", password);
request.setEntity(authForm.getWebRepresentation());
Response response = client.handle(request);
if (response.getStatus().isSuccess()) {
context.getLogger().info("Authenticated "+username);
actor.authenticated(form,new Identity(UUID.randomUUID().toString(),username,username,username,email));
} else {
context.getLogger().info("Authorization request for "+username+" returned: "+response.getStatus().getCode());
actor.unauthorized();
}
} else {
Request request = new Request(Method.GET,service);
request.setChallengeResponse(new ChallengeResponse(ChallengeScheme.HTTP_BASIC,username,password));
Response response = client.handle(request);
if (response.getStatus().isSuccess()) {
XMLRepresentationParser parser = new XMLRepresentationParser();
try {
Document doc = parser.load(response.getEntity());
String session = doc.getDocumentElement().getAttributeValue("id");
String id = doc.getDocumentElement().getAttributeValue("user-id");
String alias = doc.getDocumentElement().getAttributeValue("user-alias");
Element nameE = doc.getDocumentElement().getFirstElementNamed(NAME);
Element emailE = doc.getDocumentElement().getFirstElementNamed(EMAIL);
Identity identity = new Identity(session,id,alias,nameE==null ? null : nameE.getText(),emailE==null ? null : emailE.getText());
context.getLogger().info("Authenticated "+username);
actor.authenticated(form,identity);
} catch (Exception ex) {
context.getLogger().log(Level.SEVERE,"Cannot parse auth result.",ex);
actor.unauthorized();