/* * Facebook Login Servlet - Shiboleth Identity Provider integrator with Facebook * Copyright (C) 2012 Poznan Supercomputing and Networking Center - Application * Department * * contact: adamski@man.poznan.pl * * This program is free software: you can redistribute it and/or modify it under * the terms of the GNU General Public License as published by the Free Software * Foundation, either version 3 of the License, or (at your option) any later * version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more * details. You should have received a copy of the GNU General Public License * along with this program. If not, see . * * * Poznan Supercomputing and Networking Center - Application Department, * ul.Dąbrowskiego 79a, 60-529 Poznań, Poland. (+48 61) 858-20-72 * http://apps.man.poznan.pl/ * * This application was developed as a part of the SYNAT project * http://www.synat.pl/en * * Poznan Supercomputing and Networking Center, hereby disclaims all copyright * interest in the Facebook Login Servlet written by Jakub "Erwin" Aftowicz. * (erwin37@gmail.com) * * Marcin Adamski , 21 MAY 2012 (adamski@man.poznan.pl) */ package pl.psnc.synat.idp; import java.util.ArrayList; import java.util.List; public class FBConfig { public FBConfig() { this.parameters = new ArrayList(); this.fbParameters = new ArrayList(); } private String APP_ID; private String APP_SECRET; private boolean isDatabaseUsed = false; private boolean isDatabasePasswordUsed = false; private boolean isUserBeingInserted = false; private boolean isBlackListUsed = false; private boolean isBlackListPasswordUsed = false; private String SqlDriver; private String SqlDataBaseName; private String SqlUserName; private String SqlPassword = null; private String SqlStatement; private String SqlInsertStatement; private String BlackListDriver; private String BlackListDataBaseName; private String BlackListUserName; private String BlackListPassword = null; private String BlackListStatement; private String BlackListRedirectAddress; private List parameters; private List fbParameters; public void addParameter(String name) { parameters.add(new Parameter(name)); } public void addParameter(String name, String val) { Parameter p = new Parameter(name); p.setDefaultValue(val); parameters.add(p); } public void addFbParameter(String name, String ret) { if (ret.equalsIgnoreCase("true")) fbParameters.add(new FbParameter(name, true)); else fbParameters.add(new FbParameter(name, false)); } public void addFbParameter(String name, String ret, String num, String num2, String num3) { FbParameter p; if (ret.equalsIgnoreCase("true")) p = new FbParameter(name, true); else p = new FbParameter(name, false); if (Integer.parseInt(num) != 0) p.setNumberInStatement(Integer.parseInt(num)); if (Integer.parseInt(num2) != 0) p.setNumberInBlackListStatement(Integer.parseInt(num2)); if (Integer.parseInt(num3) != 0) p.setNumberInInsertStatement(Integer.parseInt(num3)); fbParameters.add(p); } public boolean isDatabaseUsed() { return isDatabaseUsed; } public void setDatabaseUsed(boolean isDatabseUsed) { this.isDatabaseUsed = isDatabseUsed; } public boolean isDatabasePasswordUsed() { return isDatabasePasswordUsed; } public void setDatabasePasswordUsed(boolean isDatabasePasswordUsed) { this.isDatabasePasswordUsed = isDatabasePasswordUsed; } public boolean isBlackListUsed() { return isBlackListUsed; } public void setBlackListUsed(boolean isBlackListUsed) { this.isBlackListUsed = isBlackListUsed; } public boolean isUserBeingInserted() { return isUserBeingInserted; } public String getSqlDriver() { return SqlDriver; } public void setSqlDriver(String sqlDriver) { SqlDriver = sqlDriver; } public String getSqlDataBaseName() { return SqlDataBaseName; } public void setSqlDataBaseName(String sqlDataBaseName) { SqlDataBaseName = sqlDataBaseName; } public String getSqlPassword() { return SqlPassword; } public void setSqlPassword(String sqlPassword) { isDatabasePasswordUsed = true; SqlPassword = sqlPassword; } public String getBlackListDriver() { return BlackListDriver; } public void setBlackListDriver(String blackListDriver) { BlackListDriver = blackListDriver; } public String getBlackListDataBaseName() { return BlackListDataBaseName; } public void setBlackListDataBaseName(String blackListDataBaseName) { BlackListDataBaseName = blackListDataBaseName; } public String getBlackListUserName() { return BlackListUserName; } public void setBlackListUserName(String blackListUserName) { BlackListUserName = blackListUserName; } public String getBlackListPassword() { return BlackListPassword; } public void setBlackListPassword(String blackListPassword) { isBlackListPasswordUsed = true; BlackListPassword = blackListPassword; } public void setSqlInsertStatement(String insertStatement) { isUserBeingInserted = true; SqlInsertStatement = insertStatement; } public String getSqlInsertStatement() { return SqlInsertStatement; } public String getBlackListStatement() { return BlackListStatement; } public void setBlackListStatement(String blackListStatement) { BlackListStatement = blackListStatement; } public List getParametersList() { return parameters; } public List getFbParametersList() { return fbParameters; } public String getAPP_ID() { return APP_ID; } public void setAPP_ID(String string) { APP_ID = string; } public String getAPP_SECRET() { return APP_SECRET; } public void setAPP_SECRET(String aPP_SECRET) { APP_SECRET = aPP_SECRET; } public String getSqlUserName() { return SqlUserName; } public void setSqlUserName(String sqlUserName) { SqlUserName = sqlUserName; } public String getSqlStatement() { return SqlStatement; } public void setSqlStatement(String sqlStatement) { System.out.println(sqlStatement); SqlStatement = sqlStatement; } public String getBlackListRedirectAddress() { return BlackListRedirectAddress; } public void setBlackListRedirectAddress(String blackListRedirectAddress) { BlackListRedirectAddress = blackListRedirectAddress; } public boolean isPasswordUsed() { return isDatabasePasswordUsed; } public void setPasswordUsed(boolean isPasswordUsed) { this.isDatabasePasswordUsed = isPasswordUsed; } public boolean isBlackListPasswordUsed() { return isBlackListPasswordUsed; } public void setBlackListPasswordUsed(boolean isBlackListPasswordUsed) { this.isBlackListPasswordUsed = isBlackListPasswordUsed; } public String getParameters() { String out = ""; for (Parameter param : this.parameters) { out = out + param.toString() + ", "; } if (this.parameters.size() != 0) return out.substring(0, out.length() - 2); else return out; } public String getParametersDefaultValues() { String out = ""; for (Parameter param : this.parameters) { out = out + param.getDefaultValue() + ", "; } if (this.parameters.size() != 0) return out.substring(0, out.length() - 2); else return out; } public String getFbParameters() { String out = ""; for (FbParameter param : this.fbParameters) { out = out + param.toString() + ", "; } if (this.fbParameters.size() != 0) return out.substring(0, out.length() - 2); else return out; } @Override public String toString() { return "FBConfig [\n APP_ID=" + APP_ID + "\n APP_SECRET=" + APP_SECRET + "\n isDatabaseUsed=" + isDatabaseUsed + "\n isBlackListUsed=" + isBlackListUsed + "\n isUserInserted=" + isUserBeingInserted + "\n isPasswordUsed=" + isDatabasePasswordUsed + "\n isBlackListPasswordUsed=" + isBlackListPasswordUsed + "\n SqlDriver=" + SqlDriver + "\n SqlDataBaseName=" + SqlDataBaseName + "\n SqlUserName=" + SqlUserName + "\n SqlPassword=" + SqlPassword + "\n SqlStatement=" + SqlStatement + "\n InsertStatement=" + SqlInsertStatement + "\n BlackListDriver=" + BlackListDriver + "\n BlackListDataBaseName=" + BlackListDataBaseName + "\n BlackListUserName=" + BlackListUserName + "\n BlackListPassword=" + BlackListPassword + "\n BlackListStatement=" + BlackListStatement + "\n BlackListRedirectAddress=" + BlackListRedirectAddress + "\n Parameters={" + this.getParameters() + "}\n FbParameters={" + this.getFbParameters() + "}\n Permission=(" + this.getPermissions() + ")\n]"; } public String getPermissions() { String perm = ""; boolean isPermissionRequired = false; if (this.getFbParameters().contains("bio") || this.getFbParameters().contains("quotes")) { isPermissionRequired = true; perm += "user_about_me,"; } if (this.getFbParameters().contains("birthday")) { isPermissionRequired = true; perm += "user_birthday,"; } if (this.getFbParameters().contains("email")) { isPermissionRequired = true; perm += "email,"; } if (this.getFbParameters().contains("political") || this.getFbParameters().contains("religion")) { isPermissionRequired = true; perm += "user_religion_politics,"; } if (this.getFbParameters().contains("relationship_status")) { isPermissionRequired = true; perm += "user_relationships,"; } if (this.getFbParameters().contains("website")) { isPermissionRequired = true; perm += "user_website,"; } if (isPermissionRequired) { perm = "&scope=" + perm; String ret = perm.substring(0, (perm.length() - 1)); return ret; } else { return ""; } } }