diff --git a/WebContent/WEB-INF/web_sample.xml b/WebContent/WEB-INF/web_sample.xml
index d8b2365..277e27c 100644
--- a/WebContent/WEB-INF/web_sample.xml
+++ b/WebContent/WEB-INF/web_sample.xml
@@ -29,14 +29,6 @@
DATA_PATH
C:\\data
-
- FB_APPID
- 123456789
-
-
- FB_APPSEC
- 123456789abcdefklmnopqrst
-
1
diff --git a/src/zall/Zallery.java b/src/zall/Zallery.java
index 56fd512..65ad6f2 100644
--- a/src/zall/Zallery.java
+++ b/src/zall/Zallery.java
@@ -2,7 +2,6 @@ package zall;
import java.io.File;
import java.io.IOException;
-import java.io.PrintWriter;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -21,13 +20,9 @@ import zall.bean.Image;
import zall.bean.Media;
import zall.bean.User;
import zall.util.Email;
-import zall.util.facebook.FBUser;
-import zall.util.facebook.FacebookConnect;
import zall.util.msg.UserMessage;
import zall.util.msg.UserMessage.MessageType;
import zutil.db.DBConnection;
-import zutil.db.bean.DBBean;
-import zutil.db.bean.DBBeanSQLResultHandler;
import zutil.log.LogUtil;
public class Zallery extends HttpServlet{
@@ -68,12 +63,6 @@ public class Zallery extends HttpServlet{
throw new ServletException("Missing DATA_PATH parameter!");
if( config.getInitParameter("THEME") != null )
THEME = config.getInitParameter("THEME");
- if( config.getInitParameter("FB_APPID") != null &&
- config.getInitParameter("FB_APPID") != null)
- FacebookConnect.setApplicationID(
- config.getInitParameter("FB_APPID"),
- config.getInitParameter("FB_APPSEC"));
-
LogUtil.setLevel("zall", Level.FINEST);
//LogUtil.setLevel("zutil", Level.FINEST);
}
@@ -98,27 +87,10 @@ public class Zallery extends HttpServlet{
String page = new File(request.getRequestURI()).getName();
request.setAttribute("page", page);
User user = (User) session.getAttribute("user");
- FacebookConnect fbc = (FacebookConnect) session.getAttribute("facebook");
- if( fbc == null )
- fbc = FacebookConnect.getConnection( request.getCookies() );
String action = request.getParameter("action");
if( action == null ) action = "";
UserMessage msgs = UserMessage.getUserMessage(session);
-
- // Take care of facebook open graph
- if( request.getHeader("User-Agent").startsWith("facebookexternalhit/1.1") && page.startsWith("media") ){
- PrintWriter out = response.getWriter();
- out.print(""+
- ""+
- ""+
- ""+
- ""+
- ""+
- ""+
- ""+
- "");
- return;
- }
+
// Verify email address
if( action.equalsIgnoreCase("verfemail") ){
@@ -132,35 +104,6 @@ public class Zallery extends HttpServlet{
else
msgs.add(MessageType.ERROR, "Email verification failed!");
}
-
- // auth with facebook
- if( user == null ){
- if( fbc != null ){
- FBUser fb_user = fbc.getUser();
- user = User.loadByFacebook(request, response, db, fb_user.getUID() );
- // New user?
- if( user == null ){
- logger.info("Creating new user from Facebook login.");
- user = new User();
- user.setFacebookUid( fb_user.getUID() );
- user.setName( fb_user.getName() );
- user.setEmail( "" );
- user.registerOnHost(request, response, db, false );
- ZalleryAjax.sendEmailNewUserToAdmin(user, db);
- msgs.add(MessageType.INFO, "Your account has successfully been created. The account is waiting account activation by an admin.");
- }
- logger.info("Used Facebook to auth User: \""+user.getName()+"\".");
- user.registerOnHost(request, response, db, false );
- session.setAttribute("user", user);
- session.setAttribute("facebook", fbc);
- user.save(db);
- //if( page.startsWith("login") )
- response.sendRedirect( "gallery" );
- //else
- // response.sendRedirect( page );
- return;
- }
- }
// auth with cookie
if( user == null ){
user = User.loadByCookie(request, db, getCookieValue(request.getCookies(), "sessionHash") );
@@ -181,7 +124,6 @@ public class Zallery extends HttpServlet{
session.invalidate();
session = request.getSession( true );
msgs.setSession( session );
- if( fbc != null ) fbc.logout( response );
user.logout( response );
if( !user.isEmailVerified() )
@@ -199,12 +141,6 @@ public class Zallery extends HttpServlet{
String include_jsp = null;
if( user != null ){
logger.finest("Valid user: \""+user.getName()+"\"");
- // Register facebook on user
- if( user.getFacebookUid() == null && fbc != null){
- FBUser fb_user = fbc.getUser();
- user.setFacebookUid( fb_user.getUID() );
- msgs.add(MessageType.INFO, "Facebook connected to your account.");
- }
// Import JSP pages
if(page.startsWith("media")){
try{
diff --git a/src/zall/util/facebook/FBUser.java b/src/zall/util/facebook/FBUser.java
deleted file mode 100644
index 9954aff..0000000
--- a/src/zall/util/facebook/FBUser.java
+++ /dev/null
@@ -1,120 +0,0 @@
-package zall.util.facebook;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.logging.Logger;
-
-import zutil.io.IOUtil;
-import zutil.log.LogUtil;
-import zutil.parser.DataNode;
-import zutil.parser.json.JSONParser;
-
-/**
- * This class represent a Facebook user
- *
- * @author Ziver
- */
-public class FBUser {
- private static Logger logger = LogUtil.getLogger();
-
- /** This is the connection to Facebook **/
- private FacebookConnect fbc;
- /** the user id of this user */
- private String uid;
-
- /* User data */
- private String name;
- private String email;
- private String birthday;
- private String gender;
- private String relationship_status;
- private String website;
- private int timezone;
- private String locale;
-
-
- public FBUser( FacebookConnect fbc, String uid ){
- this.fbc = fbc;
- this.uid = uid;
-
- load();
- }
-
- /**
- * Updates the data of the user in this object
- */
- public void load(){
- try {
- InputStream stream = fbc.getServiceURL( uid ).openStream();
- String data = IOUtil.readContentAsString( stream );
- DataNode node = JSONParser.read( data );
-
- logger.finer("User("+uid+") data from Facebook: "+data);
-
- if( node.get("name") != null )
- name = node.get("name").getString();
- if( node.get("email") != null )
- email = node.get("email").getString();
- if( node.get("birthday") != null )
- birthday = node.get("birthday").getString();
- if( node.get("gender") != null )
- gender = node.get("gender").getString();
- if( node.get("relationship_status") != null )
- relationship_status = node.get("relationship_status").getString();
- if( node.get("website") != null )
- website = node.get("website").getString();
- if( node.get("timezone") != null )
- timezone = node.get("timezone").getInt();
- if( node.get("locale") != null )
- locale = node.get("locale").getString();
-
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
-
- /**
- * @return The unique user id on Facebook
- */
- public String getUID(){
- return uid;
- }
-
-
- public String getName(){
- return name;
- }
- public String getEmail(){
- return email;
- }
- public String getBirthday(){
- return birthday;
- }
- public String getGender(){
- return gender;
- }
- public String getRelationshipStatus(){
- return relationship_status;
- }
- public String getWebsite(){
- return website;
- }
- public int getTimezone(){
- return timezone;
- }
- public String getLocale(){
- return locale;
- }
-
- /**
- * Returns an instance of the given UID user class
- *
- * @param uid is the id of the user
- * @return a cached FBUser object or a new one if its not cached
- */
- public static FBUser get( FacebookConnect fbc, String uid ){
- if( uid == null )
- return null;
- return new FBUser( fbc, uid );
- }
-}
diff --git a/src/zall/util/facebook/FacebookConnect.java b/src/zall/util/facebook/FacebookConnect.java
deleted file mode 100644
index 34d045d..0000000
--- a/src/zall/util/facebook/FacebookConnect.java
+++ /dev/null
@@ -1,204 +0,0 @@
-package zall.util.facebook;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.logging.Logger;
-
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletResponse;
-
-import zutil.Hasher;
-import zutil.log.LogUtil;
-import zutil.parser.Base64Decoder;
-import zutil.parser.DataNode;
-import zutil.parser.json.JSONParser;
-
-/**
- * This class connects to Facebook and
- * retrieves information about the user
- *
- * @author Ziver
- */
-public class FacebookConnect {
- private static Logger logger = LogUtil.getLogger();
-
- /** The URL to the Facebook OpenGraph service. (must end with a '/') **/
- public static final String SERVICE_URL = "https://graph.facebook.com/";
-
- /** The application id for this application generated by Facebook **/
- protected static String application_id = null;
- /** The application secret for this application generated by Facebook **/
- protected static String application_secret = null;
-
-
- protected String access_token;
- protected FBUser user;
-
- private FacebookConnect( String access_token, String uid ){
- this.access_token = access_token;
- user = FBUser.get( this, uid );
- }
-
- /**
- * @return the main user
- */
- public FBUser getUser(){
- return user;
- }
-
- /**
- * Returns the given user by UID
- *
- * @param uid is the user id of the user
- * @return a FBUser object or null if there is no such user
- */
- public FBUser getUser(String uid){
- return FBUser.get( this, uid );
- }
-
- /**
- * @return The access token for this session
- */
- protected String getAccessToken(){
- return access_token;
- }
-
- /**
- * Generates a url for calling the Facebook OpenGraph API
- *
- * @param page is the page ex. a UID
- * @return A URL to the service
- * @throws MalformedURLException
- */
- protected URL getServiceURL(String page) throws MalformedURLException{
- return getServiceURL(page, null);
- }
-
- /**
- * Generates a url for calling the Facebook OpenGraph API
- *
- * @param page is the page ex. a UID
- * @param params is URL parameters ex. "?name=lol" or "&name=lol&lol=name" or "name=lol" etc...
- * @return A URL to the service
- * @throws MalformedURLException
- */
- protected URL getServiceURL(String page, String params) throws MalformedURLException{
- StringBuilder url = new StringBuilder( SERVICE_URL );
- url.append( page );
- url.append( '?' );
- url.append( "access_token=" );
- url.append( access_token );
-
- if( params != null && !params.isEmpty() ){
- if( params.charAt(0) == '?' )
- params = params.substring( 1 );
- if( params.charAt(0) != '&' )
- url.append( '&' );
-
- url.append( params );
- }
- return new URL( url.toString() );
- }
-
- /**
- * Sets the static values for this application
- * @param id is the application id for this application generated by Facebook
- * @param secret is the application secret for this application generated by Facebook
- */
- public static void setApplicationID(String id, String secret){
- application_id = id;
- application_secret = secret;
- }
-
- public static String getAplicationId() {
- return application_id;
- }
-
- /**
- * Creates a new instance of the FacebookConnect for the logged in user
- * or null if the creation was unsuccessful.
- *
- * @param cookies is the cookies from the client
- * @return A new FacebookConnect object or null if the creation was unsuccessful
- */
- public static FacebookConnect getConnection( Cookie[] cookies ){
- if( cookies == null ){
- logger.severe("Cookie is not set!");
- return null;
- }
-
- String cookie_name = "fbsr_" + application_id;
- // Find the cookie
- for(Cookie cookie : cookies) {
- if ( cookie_name.equals(cookie.getName()) ){
- // remove the trailing "
- String value = cookie.getValue();
- return getConnection( value );
- }
- }
- return null;
- }
-
- /**
- * Creates a new instance of the FacebookConnect for the logged in user
- * or null if the creation was unsuccessful.
- *
- * @param value is the string value from facebook
- * @return A new FacebookConnect object or null if the creation was unsuccessful
- */
- public static FacebookConnect getConnection( String value ){
- if( application_id == null ){
- logger.severe("Application_id is not set!");
- return null;
- }
- if( application_secret == null ){
- logger.severe("Application_secret is not set!");
- return null;
- }
-
- value = value.trim();
- if( value.isEmpty() )
- return null;
- value = value.replaceAll("-", "+");
- value = value.replaceAll("_", "/");
-
- // Parse the attributes
- String[] attrib = value.split("\\.", 2);
- String signature = Base64Decoder.decodeToHex( attrib[0] );
- System.out.println( signature );
- //attrib[1] = Base64Decoder.addPadding( attrib[1] );
- String data = Base64Decoder.decode( attrib[1] );
- DataNode map = JSONParser.read( data );
- System.out.println(map);
-
- if ( !map.getString("algorithm").equalsIgnoreCase("HMAC-SHA256") ) {
- logger.severe("Unknown algorithm: '"+map.getString("algorithm")+"' Expected 'HMAC-SHA256'");
- return null;
- }
- // Check hash signature
- String local_sig = Hasher.HMAC_SHA256( attrib[1], application_secret );
- System.out.println(local_sig);
- if ( !signature.equals( local_sig )) {
- logger.severe("Bad Signed JSON signature: '"+signature+"' Expected '"+local_sig+"'");
- return null;
- }
-
- //if( map.containsKey( "access_token" ) )
- // return new FacebookConnect( map.get( "access_token" ), map.get( "uid" ) );
- //return null;
- return null;
- }
-
- /**
- * This method remove the cookie from the user by setting the MaxAge to -1
- *
- * @param response is the response that the cookie will be added to
- */
- public void logout(HttpServletResponse response) {
- Cookie cookie = new Cookie( "fbsr_" + application_id, null);
- cookie.setMaxAge( 0 );
- cookie.setPath("/");
- response.addCookie( cookie );
- }
-
-}
diff --git a/src/zall/util/test/FacebookTester.java b/src/zall/util/test/FacebookTester.java
deleted file mode 100644
index 549f9f5..0000000
--- a/src/zall/util/test/FacebookTester.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package zall.util.test;
-
-import zall.util.facebook.FacebookConnect;
-
-public class FacebookTester {
- public static void main(String[] args){
- FacebookConnect.setApplicationID("110543555676926", "5b2dd75314a2fd58b080b06a19b55713");
- FacebookConnect.getConnection("rZtSPvnBVqNi8hnjJuIffghIvQdq56yaLh1FiP-KybQ.eyJhbGdvcml0aG0iOiJITUFDLVNIQTI1NiIsImNvZGUiOiJBUUJnR3ZtNzVfLXIyVU9iSU4wdnJ4N2pMYVRicVpLdVprdE1xQXVWMHBxUjZMcGkzTDJXVEtYV3BxQmJ5MjByX1pnSFo1dDJLX3lGTENFRTJ3Sko1ek8tbHU2Z3Eyb2xfaDB4WGNneW9OTHNRODBsR2tpMG1hVFdSV083a2VfOUlPb0puYkVqajVSdnhyYW03UW9DOHRkRUEtS2NRZE1DUmptd1kzeHNSNFVsUDBuOE9fblFLa1RUbldYNjY0XzR5UEUiLCJpc3N1ZWRfYXQiOjEzMzU3OTQ4MDcsInVzZXJfaWQiOiIxMTg3MDk1NTIyIn0");
- }
-}