From 9d2b9694a7db980839e46eef948ab71096746fda Mon Sep 17 00:00:00 2001 From: Marcus Warm Date: Mon, 8 Jan 2018 19:31:08 +0100 Subject: [PATCH] Switch logging on/off, better overriding capabilities of auth framework --- build.gradle | 2 +- .../java/de/mwvb/maja/auth/AuthPlugin.java | 44 ++++++++++++++----- .../java/de/mwvb/maja/auth/LogoutAction.java | 8 ++-- .../mwvb/maja/auth/OneUserAuthorization.java | 5 ++- 4 files changed, 42 insertions(+), 17 deletions(-) diff --git a/build.gradle b/build.gradle index 0db038a..4735a16 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ allprojects { - version = "0.2.1" + version = "0.2.2" group = 'de.mwvb.maja' } diff --git a/maja-auth/src/main/java/de/mwvb/maja/auth/AuthPlugin.java b/maja-auth/src/main/java/de/mwvb/maja/auth/AuthPlugin.java index 879334a..511636c 100644 --- a/maja-auth/src/main/java/de/mwvb/maja/auth/AuthPlugin.java +++ b/maja-auth/src/main/java/de/mwvb/maja/auth/AuthPlugin.java @@ -19,6 +19,7 @@ import de.mwvb.maja.auth.rememberme.NoOpRememberMeFeature; import de.mwvb.maja.auth.rememberme.RememberMeFeature; import de.mwvb.maja.web.Action; +import de.mwvb.maja.web.ActionBase; import de.mwvb.maja.web.AppConfig; import de.mwvb.maja.web.Template; import spark.Filter; @@ -32,14 +33,15 @@ */ public class AuthPlugin implements de.mwvb.maja.web.AuthPlugin, Filter { public static final String USER_ATTR = "user"; - private static final String LOGGED_IN = "logged_in"; - private static final String LOGGED_IN_YES = "yes"; - private static final String USERID_ATTR = "user_id"; - private final Set notProtected = new HashSet<>(); - private final Authorization authorization; - private final AuthFeature feature; - private final RememberMeFeature rememberMe; - + public static final String LOGGED_IN = "logged_in"; + public static final String LOGGED_IN_YES = "yes"; + public static final String USERID_ATTR = "user_id"; + protected final Set notProtected = new HashSet<>(); + protected final Authorization authorization; + protected final AuthFeature feature; + protected final RememberMeFeature rememberMe; + private boolean debugLogging = true; + /** No remember-me constructor */ public AuthPlugin() { this(new NoOpRememberMeFeature()); @@ -78,11 +80,11 @@ protected Authorization getAuthorization() { } } - private boolean hasGoogle() { + protected boolean hasGoogle() { return new AppConfig().hasFilledKey("google.key"); } - private boolean hasFacebook() { + protected boolean hasFacebook() { return new AppConfig().hasFilledKey("facebook.key"); } @@ -106,11 +108,15 @@ public void routes() { before(this); addNotProtected("/logout"); - Action.get("/logout", new LogoutAction(rememberMe)); + Action.get("/logout", getLogoutAction(rememberMe)); feature.routes(); } } + + protected ActionBase getLogoutAction(RememberMeFeature rememberMe) { + return new LogoutAction(rememberMe, isDebugLogging()); + } public static String getUser(Session session) { return session.attribute(USER_ATTR); @@ -166,7 +172,7 @@ public String login(Request req, Response res, String name, String foreignId, St String longId = service + "#" + foreignId; setLoginData(true, name, longId, req.session()); rememberMe.rememberMe(rememberMeWanted, res, name, longId); - Logger.debug("Login: " + name + " (" + longId + ")"); + logLogin(name, longId); // Redirect zur ursprünglich angewählten Seite String uri = req.session().attribute("uri"); @@ -177,4 +183,18 @@ public String login(Request req, Response res, String name, String foreignId, St res.redirect(uri); return ""; } + + protected void logLogin(String name, String longId) { + if (isDebugLogging()) { + Logger.debug("Login: " + name + " (" + longId + ")"); + } + } + + public boolean isDebugLogging() { + return debugLogging; + } + + public void setDebugLogging(boolean debugLogging) { + this.debugLogging = debugLogging; + } } \ No newline at end of file diff --git a/maja-auth/src/main/java/de/mwvb/maja/auth/LogoutAction.java b/maja-auth/src/main/java/de/mwvb/maja/auth/LogoutAction.java index 9418619..f9e2ec1 100644 --- a/maja-auth/src/main/java/de/mwvb/maja/auth/LogoutAction.java +++ b/maja-auth/src/main/java/de/mwvb/maja/auth/LogoutAction.java @@ -8,16 +8,18 @@ public class LogoutAction extends ActionBase { private final RememberMeFeature rememberMe; - - public LogoutAction(RememberMeFeature rememberMe) { + private final boolean isDebugLogging; + + public LogoutAction(RememberMeFeature rememberMe, boolean isDebugLogging) { this.rememberMe = rememberMe; + this.isDebugLogging = isDebugLogging; } @Override public String run() { Session session = req.session(); String userId = AuthPlugin.getUserId(session); - if (userId != null) { + if (userId != null && isDebugLogging) { Logger.debug("Logout: " + AuthPlugin.getUser(session) + " (" + userId + ")"); } rememberMe.forget(res, userId); diff --git a/maja-auth/src/main/java/de/mwvb/maja/auth/OneUserAuthorization.java b/maja-auth/src/main/java/de/mwvb/maja/auth/OneUserAuthorization.java index 36d8430..7ee7dd0 100644 --- a/maja-auth/src/main/java/de/mwvb/maja/auth/OneUserAuthorization.java +++ b/maja-auth/src/main/java/de/mwvb/maja/auth/OneUserAuthorization.java @@ -7,6 +7,7 @@ import spark.Response; public class OneUserAuthorization implements Authorization { + public static boolean errorLogging = true; private final String userId; private final String service; @@ -29,7 +30,9 @@ public String check(Request req, Response res, String name, String foreignId, St } public static String notAuthorized(Response res, String name, String foreignId, String service) { - Logger.error("Not authorized: " + name + " (" + foreignId + "@" + service + ")"); + if (errorLogging) { + Logger.error("Not authorized: " + name + " (" + foreignId + "@" + service + ")"); + } res.status(HttpStatus.FORBIDDEN_403); throw new RuntimeException("You are not authorized to use this web application."); }