/*
* 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 "";
}
}
}