package org.tiki.tikitoken; import java.io.IOException; import java.io.InputStream; import java.net.MalformedURLException; import java.net.URISyntaxException; import java.net.URL; import java.util.Map; import java.util.Scanner; import org.jivesoftware.util.JiveGlobals; import com.owlike.genson.Genson; public class TikiTokenQuery { private final String DEFAULT_BASE_URL = "http://tikiconverse.docker/"; private String username; private String token; public TikiTokenQuery(String username, String token) { this.username = username; this.token = token; } public URL getUrl() throws MalformedURLException, URISyntaxException { String baseAddress = JiveGlobals.getProperty("org.tiki.tikitoken.baseUrl", this.DEFAULT_BASE_URL); String script = String.format("tiki-ajax_services.php?controller=xmpp&action=check_token&user=%s&token=%s", this.username, this.token); URL baseUrl = new URL(baseAddress); URL fullUrl = new URL(baseUrl, script); return fullUrl; } public boolean isValid() { String content = this.fetch(); Genson genson = new Genson(); Map<String, Boolean> root = genson.deserialize(content, Map.class); return root.get("valid"); } public String fetch() { try { URL url = this.getUrl(); InputStream stream = url.openStream(); Scanner s = new java.util.Scanner( stream ).useDelimiter( "\\A" ); String result = s.hasNext() ? s.next() : ""; s.close(); return result; } catch (IOException | URISyntaxException e) { e.printStackTrace(); } return null; } }