use of org.tinystruct.data.component.Builder in project bible-online by m0ver.
the class communicator method update.
public synchronized void update() throws InterruptedException, IOException, ApplicationException {
HttpServletResponse response = (HttpServletResponse) this.context.getAttribute(HTTP_RESPONSE);
Builder struct;
while (true) {
wait();
if (this.map.containsKey("message")) {
struct = new Builder();
struct.parse(this.map.get("message"));
System.out.println(struct.get("browser") + ":" + struct.get("textvalue"));
response.getWriter().println("<script charset=\"utf-8\"> var message = '" + new StringUtilities(struct.get("textvalue").toString()).replace('\n', "\\n") + "';parent.update(message);</script>");
response.getWriter().flush();
this.map.remove("message");
}
}
}
use of org.tinystruct.data.component.Builder in project bible-online by m0ver.
the class communicator method save.
public synchronized boolean save() {
HttpServletRequest request = (HttpServletRequest) this.context.getAttribute(HTTP_REQUEST);
String[] agent = request.getHeader("User-Agent").split(" ");
Builder builder = new Builder();
builder.put("textvalue", request.getParameter("text"));
builder.put("browser", agent[agent.length - 1]);
this.map.put("message", builder.toString());
System.out.println("It's ready now!");
notifyAll();
return true;
}
use of org.tinystruct.data.component.Builder in project bible-online by m0ver.
the class login method oAuth2callback.
public String oAuth2callback() throws ApplicationException {
HttpServletRequest request = (HttpServletRequest) this.context.getAttribute(HTTP_REQUEST);
HttpServletResponse response = (HttpServletResponse) this.context.getAttribute(HTTP_RESPONSE);
Reforward reforward = new Reforward(request, response);
TokenResponse oauth2_response;
try {
if (this.getVariable("google_client_secrets") == null) {
clientSecrets = GoogleClientSecrets.load(JSON_FACTORY, new InputStreamReader(login.class.getResourceAsStream("/clients_secrets.json")));
if (clientSecrets.getDetails().getClientId().startsWith("Enter") || clientSecrets.getDetails().getClientSecret().startsWith("Enter ")) {
System.out.println("Enter Client ID and Secret from https://code.google.com/apis/console/ ");
}
this.setVariable(new ObjectVariable("google_client_secrets", clientSecrets), false);
} else
clientSecrets = (GoogleClientSecrets) this.getVariable("google_client_secrets").getValue();
GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(GoogleNetHttpTransport.newTrustedTransport(), JSON_FACTORY, clientSecrets, SCOPES).build();
oauth2_response = flow.newTokenRequest(request.getParameter("code")).setRedirectUri(this.getLink("oauth2callback")).execute();
System.out.println("Ok:" + oauth2_response.toString());
} catch (IOException e1) {
// TODO Auto-generated catch block
throw new ApplicationException(e1.getMessage(), e1);
} catch (GeneralSecurityException e) {
// TODO Auto-generated catch block
throw new ApplicationException(e.getMessage(), e);
}
try {
HttpClient httpClient = new DefaultHttpClient();
String url = "https://www.google.com/m8/feeds/contacts/default/full";
url = "https://www.googleapis.com/oauth2/v1/userinfo";
HttpGet httpget = new HttpGet(url + "?access_token=" + oauth2_response.getAccessToken());
httpClient.getParams().setParameter(HttpProtocolParams.HTTP_CONTENT_CHARSET, "UTF-8");
HttpResponse http_response = httpClient.execute(httpget);
HeaderIterator iterator = http_response.headerIterator();
while (iterator.hasNext()) {
Header next = iterator.nextHeader();
System.out.println(next.getName() + ":" + next.getValue());
}
com.google.api.client.http.HttpTransport h;
InputStream instream = http_response.getEntity().getContent();
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte[] bytes = new byte[1024];
int len;
while ((len = instream.read(bytes)) != -1) {
out.write(bytes, 0, len);
}
instream.close();
out.close();
Struct struct = new Builder();
struct.parse(new String(out.toByteArray(), "utf-8"));
this.usr = new User();
this.usr.setEmail(struct.toData().getFieldInfo("email").stringValue());
if (this.usr.findOneByKey("email", this.usr.getEmail()).size() == 0) {
usr.setPassword("");
usr.setUsername(usr.getEmail());
usr.setLastloginIP(request.getRemoteAddr());
usr.setLastloginTime(new Date());
usr.setRegistrationTime(new Date());
usr.append();
}
new passport(request, response, "waslogined").setLoginAsUser(this.usr.getId());
reforward.setDefault(URLDecoder.decode(this.getVariable("from").getValue().toString(), "utf8"));
reforward.forward();
return new String(out.toByteArray(), "utf-8");
} catch (ClientProtocolException e) {
throw new ApplicationException(e.getMessage(), e);
} catch (IOException e) {
throw new ApplicationException(e.getMessage(), e);
} catch (ParseException e) {
throw new ApplicationException(e.getMessage(), e);
}
}
use of org.tinystruct.data.component.Builder in project bible-online by m0ver.
the class login method oAuth2_github_callback.
public String oAuth2_github_callback() throws ApplicationException {
HttpServletRequest request = (HttpServletRequest) this.context.getAttribute(HTTP_REQUEST);
HttpServletResponse response = (HttpServletResponse) this.context.getAttribute(HTTP_RESPONSE);
Reforward reforward = new Reforward(request, response);
if (this.getVariable("github_client_secrets") == null) {
TextFileLoader loader = new TextFileLoader();
loader.setInputStream(login.class.getResourceAsStream("/clients_secrets.json"));
builder = new Builder();
builder.parse(loader.getContent().toString());
if (builder.get("github") instanceof Builder) {
builder = (Builder) builder.get("github");
System.out.println(builder.get("client_secret"));
System.out.println(builder.get("client_id"));
this.setVariable(new ObjectVariable("github_client_secrets", builder), false);
}
} else
builder = (Builder) this.getVariable("github_client_secrets").getValue();
String arguments = this.http_client("https://github.com/login/oauth/access_token?client_id=" + builder.get("client_id") + "&client_secret=" + builder.get("client_secret") + "&code=" + request.getParameter("code"));
try {
HttpClient httpClient = new DefaultHttpClient();
String url = "https://api.github.com/user";
HttpGet httpget = new HttpGet(url + "?" + arguments);
httpClient.getParams().setParameter(HttpProtocolParams.HTTP_CONTENT_CHARSET, "UTF-8");
HttpResponse http_response = httpClient.execute(httpget);
HeaderIterator iterator = http_response.headerIterator();
while (iterator.hasNext()) {
Header next = iterator.nextHeader();
System.out.println(next.getName() + ":" + next.getValue());
}
InputStream instream = http_response.getEntity().getContent();
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte[] bytes = new byte[1024];
int len;
while ((len = instream.read(bytes)) != -1) {
out.write(bytes, 0, len);
}
instream.close();
out.close();
Struct struct = new Builder();
struct.parse(new String(out.toByteArray(), "utf-8"));
this.usr = new User();
this.usr.setEmail(struct.toData().getFieldInfo("email").stringValue());
if (this.usr.findOneByKey("email", this.usr.getEmail()).size() == 0) {
usr.setPassword("");
usr.setUsername(usr.getEmail());
usr.setLastloginIP(request.getRemoteAddr());
usr.setLastloginTime(new Date());
usr.setRegistrationTime(new Date());
usr.append();
}
new passport(request, response, "waslogined").setLoginAsUser(this.usr.getId());
reforward.setDefault(URLDecoder.decode(this.getVariable("from").getValue().toString(), "utf8"));
reforward.forward();
return new String(out.toByteArray(), "utf-8");
} catch (ClientProtocolException e) {
throw new ApplicationException(e.getMessage(), e);
} catch (IOException e) {
throw new ApplicationException(e.getMessage(), e);
} catch (ParseException e) {
throw new ApplicationException(e.getMessage(), e);
}
}
Aggregations