Alfresco Authenticate -get the valid ticket & invalidate the login.

Alfresco Authenticate -get the valid ticket & invalidate the login.



import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;

public class AuthenticationService {

PropertyService propS = PropertyService.getInstance();

public String validateTicket(String ticket){
URL url = null;
HttpURLConnection connection = null;
try {
String adminTicket = readTicket();
String query = String.format("alf_ticket=%s",
URLEncoder.encode(adminTicket, "UTF-8"));
url = new URL(propS.getKeyValue("systemURL")+ "alfresco/service/api/login/ticket/"+ ticket+ "?"+query);
connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setDoOutput(true);
connection.connect();
InputStream is = connection.getInputStream();
DocumentBuilder docBuilder = DocumentBuilderFactory.newInstance()
.newDocumentBuilder();
Document xmlDoc = docBuilder.parse(is);
System.out.println("Validated Ticket =>" + xmlDoc.getElementsByTagName("ticket").item(0).getTextContent());
return xmlDoc.getElementsByTagName("ticket").item(0).getTextContent();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (connection != null) {
connection.disconnect();
}
}
return null;
}

public String readTicket() {
System.out.println("Trying to readTicket()");
URL url = null;
HttpURLConnection connection = null;
try {
String query = String.format("u=%s&pw=%s",
URLEncoder.encode(propS.getKeyValue("adminuser"), "UTF-8"),
URLEncoder.encode(propS.getKeyValue("adminpassword"), "UTF-8"));
url = new URL(propS.getKeyValue("systemURL")+"alfresco/service/api/login?"
+ query);
connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setDoOutput(true);
connection.connect();
InputStream is = connection.getInputStream();
DocumentBuilder docBuilder = DocumentBuilderFactory.newInstance()
.newDocumentBuilder();
Document xmlDoc = docBuilder.parse(is);
System.out.println("Ticket =>"
+ xmlDoc.getElementsByTagName("ticket").item(0)
.getTextContent());
return xmlDoc.getElementsByTagName("ticket").item(0)
.getTextContent();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (connection != null) {
connection.disconnect();
}
}
return null;
}

public boolean invalidatelogin(String ticket){
URL url = null;
HttpURLConnection connection = null;
try{
String adminTicket = readTicket();
String query = String.format("alf_ticket=%s",
URLEncoder.encode(adminTicket, "UTF-8"));
url = new URL(propS.getKeyValue("systemURL")+ "alfresco/service/api/login/ticket/"+ ticket+ "?"+query);

connection = (HttpURLConnection) url.openConnection();
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded" );
connection.setRequestMethod("DELETE");
int responseCode = connection.getResponseCode();

connection.connect();
System.out.println("<<<<>>>>" +responseCode);
}catch(Exception e){
e.printStackTrace();
}
finally {
if (connection != null) {
connection.disconnect();
}
}
return true;
}

//Test method
public static void main(String args[]){
String newP = "TICKET_368733fe59db7b634b5767c807538f27db9f403a";
AuthenticationService au = new AuthenticationService();
//newP = au.readTicket();
System.out.println(" Validate Ticket ::> "+newP);
au.validateTicket(newP);
// System.out.println("Deletion : "+au.invalidatelogin(newP));
}
}

Share this

Related Posts

Previous
Next Post »