From 8832cc237445e5fbbf176ab13de02fd301b92452 Mon Sep 17 00:00:00 2001
From: Robin Eklund <robi-ekl@dsv.su.se>
Date: Thu, 4 Aug 2011 13:24:19 +0200
Subject: [PATCH] More refactoring and a workaround to support the
 iPhone/android way of authenticating.

---
 src/main/java/se/su/dsv/scipro/json/IResponseHandler.java     | 3 +++
 .../su/dsv/scipro/json/ImportUpdateStatsResponseHandler.java  | 2 ++
 .../se/su/dsv/scipro/json/ImportWorkerResponseHandler.java    | 4 +++-
 src/main/java/se/su/dsv/scipro/json/JsonResponseHandler.java  | 2 +-
 .../se/su/dsv/scipro/json/JsonUserFullResponseHandler.java    | 2 ++
 .../java/se/su/dsv/scipro/json/JsonUserResponseHandler.java   | 2 ++
 .../java/se/su/dsv/scipro/json/pages/JsonKeyAuthPage.java     | 3 ++-
 src/main/java/se/su/dsv/scipro/json/pages/JsonLoginPage.java  | 4 ++--
 8 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/src/main/java/se/su/dsv/scipro/json/IResponseHandler.java b/src/main/java/se/su/dsv/scipro/json/IResponseHandler.java
index 9f7ea67e33..aa876a79d8 100644
--- a/src/main/java/se/su/dsv/scipro/json/IResponseHandler.java
+++ b/src/main/java/se/su/dsv/scipro/json/IResponseHandler.java
@@ -1,5 +1,8 @@
 package se.su.dsv.scipro.json;
 
+/**
+ * Interface for delegated callback handling of response-strings.
+ */
 public interface IResponseHandler {
 	public void handleResponse(String response);
 }
diff --git a/src/main/java/se/su/dsv/scipro/json/ImportUpdateStatsResponseHandler.java b/src/main/java/se/su/dsv/scipro/json/ImportUpdateStatsResponseHandler.java
index 421aca6dab..811f4a3f0a 100644
--- a/src/main/java/se/su/dsv/scipro/json/ImportUpdateStatsResponseHandler.java
+++ b/src/main/java/se/su/dsv/scipro/json/ImportUpdateStatsResponseHandler.java
@@ -3,6 +3,7 @@ package se.su.dsv.scipro.json;
 import java.lang.reflect.Type;
 
 import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
 import org.springframework.stereotype.Component;
 
 import se.su.dsv.scipro.jsonobjects.JsonUpdateStatsContainer;
@@ -17,6 +18,7 @@ import com.google.gson.reflect.TypeToken;
  */
 @Component
 public class ImportUpdateStatsResponseHandler extends JsonResponseHandler {
+	private Logger logger = Logger.getLogger(ImportUpdateStatsResponseHandler.class);
 	/**
 	 * Handles a json string
 	 * 
diff --git a/src/main/java/se/su/dsv/scipro/json/ImportWorkerResponseHandler.java b/src/main/java/se/su/dsv/scipro/json/ImportWorkerResponseHandler.java
index 77196e7932..f365bc138b 100644
--- a/src/main/java/se/su/dsv/scipro/json/ImportWorkerResponseHandler.java
+++ b/src/main/java/se/su/dsv/scipro/json/ImportWorkerResponseHandler.java
@@ -3,6 +3,7 @@ package se.su.dsv.scipro.json;
 import java.lang.reflect.Type;
 
 import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
 import org.springframework.stereotype.Component;
 
 import se.su.dsv.scipro.data.dataobjects.Project;
@@ -24,6 +25,7 @@ import com.google.gson.reflect.TypeToken;
  */
 @Component
 public class ImportWorkerResponseHandler extends JsonResponseHandler {
+	private Logger logger = Logger.getLogger(ImportWorkerResponseHandler.class);
 	/**
 	 * Handles a json string
 	 * 
@@ -123,7 +125,7 @@ public class ImportWorkerResponseHandler extends JsonResponseHandler {
 		}
 
 		if(isLogResult()){
-			logger.log(Level.INFO, "\nResult from userimport/update:\nChecked: " + completeContainer.users.size() + " users\n" +
+			logger.info("\nResult from userimport/update:\nChecked: " + completeContainer.users.size() + " users\n" +
 									"Changed users: " + changedUsers + "\n" +
 									"Created users: " + createdUsers + "\n" +
 									"Number of errors when creating users: " + userCreationErrors + "\n" +
diff --git a/src/main/java/se/su/dsv/scipro/json/JsonResponseHandler.java b/src/main/java/se/su/dsv/scipro/json/JsonResponseHandler.java
index ab4c6825e5..94f0024cb4 100644
--- a/src/main/java/se/su/dsv/scipro/json/JsonResponseHandler.java
+++ b/src/main/java/se/su/dsv/scipro/json/JsonResponseHandler.java
@@ -52,7 +52,7 @@ abstract class JsonResponseHandler implements IResponseHandler {
 	@Autowired
 	protected ApplicationSettings applicationSettings;
 	
-	protected Logger logger = Logger.getLogger(JsonResponseHandler.class);
+	private Logger logger = Logger.getLogger(JsonResponseHandler.class);
 	
 	private int numUsersCreated = 0;
 	private int numEmailChanges = 0;
diff --git a/src/main/java/se/su/dsv/scipro/json/JsonUserFullResponseHandler.java b/src/main/java/se/su/dsv/scipro/json/JsonUserFullResponseHandler.java
index 3e926c52cf..442a149c68 100644
--- a/src/main/java/se/su/dsv/scipro/json/JsonUserFullResponseHandler.java
+++ b/src/main/java/se/su/dsv/scipro/json/JsonUserFullResponseHandler.java
@@ -3,6 +3,7 @@ package se.su.dsv.scipro.json;
 import java.lang.reflect.Type;
 
 import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
 import org.springframework.stereotype.Component;
 
 import se.su.dsv.scipro.data.dataobjects.User;
@@ -22,6 +23,7 @@ import com.google.gson.reflect.TypeToken;
  */
 @Component
 public class JsonUserFullResponseHandler extends JsonResponseHandler {
+	private Logger logger = Logger.getLogger(JsonUserFullResponseHandler.class);
 	/**
 	 * Handles a json string
 	 * 
diff --git a/src/main/java/se/su/dsv/scipro/json/JsonUserResponseHandler.java b/src/main/java/se/su/dsv/scipro/json/JsonUserResponseHandler.java
index 81ccfb34d6..69d956016c 100644
--- a/src/main/java/se/su/dsv/scipro/json/JsonUserResponseHandler.java
+++ b/src/main/java/se/su/dsv/scipro/json/JsonUserResponseHandler.java
@@ -2,6 +2,7 @@ package se.su.dsv.scipro.json;
 
 import java.lang.reflect.Type;
 
+import org.apache.log4j.Logger;
 import org.springframework.stereotype.Component;
 
 import se.su.dsv.scipro.data.dataobjects.User;
@@ -19,6 +20,7 @@ import com.google.gson.reflect.TypeToken;
  */
 @Component
 public class JsonUserResponseHandler extends JsonResponseHandler {
+	private Logger logger = Logger.getLogger(JsonUserResponseHandler.class);
 	/**
 	 * Handles a json string
 	 * 
diff --git a/src/main/java/se/su/dsv/scipro/json/pages/JsonKeyAuthPage.java b/src/main/java/se/su/dsv/scipro/json/pages/JsonKeyAuthPage.java
index 915a3555da..f4edd51830 100644
--- a/src/main/java/se/su/dsv/scipro/json/pages/JsonKeyAuthPage.java
+++ b/src/main/java/se/su/dsv/scipro/json/pages/JsonKeyAuthPage.java
@@ -34,7 +34,8 @@ public class JsonKeyAuthPage extends WebPage {
         
         if (jsonLogin != null) {
             String loginUsername = jsonLogin.username;
-            User user = userDao.getUserByUsername(loginUsername);
+            //@ToDo Fix the apple-app to support non hard-coded realm 
+            User user = userDao.getUserByUsername(loginUsername,"DSV.SU.SE");
 
             if (user == null) {
                 jsonOutput.addProperty("authenticated", false);
diff --git a/src/main/java/se/su/dsv/scipro/json/pages/JsonLoginPage.java b/src/main/java/se/su/dsv/scipro/json/pages/JsonLoginPage.java
index 88bacfdf1f..3e4090d6e7 100644
--- a/src/main/java/se/su/dsv/scipro/json/pages/JsonLoginPage.java
+++ b/src/main/java/se/su/dsv/scipro/json/pages/JsonLoginPage.java
@@ -69,9 +69,9 @@ public class JsonLoginPage extends WebPage {
 		}
 
 		if (loginUsername != null) {
-
 			String username = jsonLogin.username;
-			User user = userDao.getUserByUsername(username);
+			//@ToDo Fix the apple-app to support non hard-coded realm
+			User user = userDao.getUserByUsername(username,"DSV.SU.SE");
 			if (roleDao.isEmployee(user)) {
 				jsonOutput.addProperty("authenticated", true);
 				UserSettings userSettings = userSettingsDao.getUserSettings(user);