Author: michiel
Date: 2010-02-03 20:05:58 +0100 (Wed, 03 Feb 2010)
New Revision: 40848
Added:
didactor/trunk/components/core/src/main/config/log/console.xml
didactor/trunk/components/core/src/main/resources/nl/
didactor/trunk/components/core/src/main/resources/nl/didactor/
didactor/trunk/components/core/src/main/resources/nl/didactor/security.properties
didactor/trunk/components/core/src/main/resources/nl/didactor/security_nl.properties
Modified:
didactor/trunk/components/core/src/main/java/nl/didactor/security/Authentication.java
didactor/trunk/components/core/src/main/java/nl/didactor/security/plain/PlainSecurityComponent.java
Log:
using MMB-1924
Added: didactor/trunk/components/core/src/main/config/log/console.xml
===================================================================
--- didactor/trunk/components/core/src/main/config/log/console.xml
(rev 0)
+++ didactor/trunk/components/core/src/main/config/log/console.xml
2010-02-03 19:05:58 UTC (rev 40848)
@@ -0,0 +1,108 @@
+<?xml version="1.0" ?>
+<!--
+
+-->
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"
+ [
+ <!ENTITY mmlevel "org.mmbase.util.logging.log4j.Log4jLevel" >
+]>
+
+<!--
+
+
+-->
+
+<log4j:configuration debug="false"
xmlns:log4j="http://jakarta.apache.org/log4j/"
+ >
+
+ <!--
+ The appenders of the default log4j configuration are writing to
+ STDOUT on default.
+ This is problably not what you want, but at least it works always.
+ See in the other examples how to configure a log file.
+ -->
+
+ <appender name="logfile" class="org.apache.log4j.ConsoleAppender" >
+ <param name="Target" value="System.out" />
+ <param name="Encoding" value="UTF-8" />
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d{ISO8601} %-7p %c{4} - %m%n" />
+ </layout>
+ <!-- for debugging, logging memory use, method and line-number is
+ often useful
+ <layout class="org.mmbase.util.logging.log4j.MMPatternLayout">
+ <param name="ConversionPattern" value="%d{ABSOLUTE} %q %k kb %c{4} %M.%L
- %m%n" />
+ </layout>
+ -->
+ </appender>
+
+ <!--
+ A different appender for 'page' logging. This is writing to stdout now too,
but probably you want
+ this to go to another file.
+ -->
+ <appender name="pagedebug" class="org.apache.log4j.ConsoleAppender" >
+ <param name="Target" value="System.out" />
+ <param name="Encoding" value="UTF-8" />
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d{MM-dd HH:mm:ss} PAGE %-7p
%c{2} %L - %m%n" />
+ </layout>
+ </appender>
+
+
+ <!--
+ Another example: The sqllog appender can be used for
+ 'org.mmbase.QUERIES' (see below), to achieve logging of every SQL
+ query, which is handy during debugging
+ See also config/utils/querylogging.xml for how to configure the relation
between query duration and logging level.
+ -->
+ <!--
+ <appender name="sqllog" class="org.apache.log4j.FileAppender" >
+ <param name="File" value="/tmp/mmbase-sql.log" />
+ <param name="Encoding" value="UTF-8" />
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d{MM-dd HH:mm:ss} %m%n" />
+ </layout>
+ </appender>
+ -->
+ <!-- categories -->
+
+ <!-- 'page logging' goes to a different appender -->
+ <logger name="org.mmbase.PAGE" additivity="false">
+ <level class="&mmlevel;" value ="info" />
+ <appender-ref ref="pagedebug" />
+ </logger>
+
+ <!--
+ If you switch logging on org.mmbase.SERVLETS on debug to on, then
MMBaseSerlvet keep track of
+ ref-counts, and someimes log that. That way you can keep track off how
many are running, and
+ whether that is much.
+ -->
+ <!--
+ <logger name="org.mmbase.SERVLETS">
+ <level class="&mmlevel;" value ="debug" />
+ </logger>
+ -->
+
+ <!-- SQL logging -->
+ <!--
+ <logger name="org.mmbase.QUERIES" additivity="false">
+ <level class="&mmlevel;" value ="debug" />
+ <appender-ref ref="sqllog" />
+ </logger>
+ <logger name="org.mmbase.STACK.QUERIES" additivity="false">
+ <level class="&mmlevel;" value ="info" />
+ <appender-ref ref="sqllog" />
+ </logger>
+ -->
+
+
+ <logger name="STDERR">
+ <level class="&mmlevel;" value ="fatal" />
+ </logger>
+
+ <root>
+ <level class="&mmlevel;" value ="info" />
+ <appender-ref ref="logfile" />
+ </root>
+
+</log4j:configuration>
Modified:
didactor/trunk/components/core/src/main/java/nl/didactor/security/Authentication.java
===================================================================
---
didactor/trunk/components/core/src/main/java/nl/didactor/security/Authentication.java
2010-02-03 19:05:11 UTC (rev 40847)
+++
didactor/trunk/components/core/src/main/java/nl/didactor/security/Authentication.java
2010-02-03 19:05:58 UTC (rev 40848)
@@ -94,19 +94,13 @@
* @since Didactor-2.3
*/
protected org.mmbase.security.UserContext
request(org.mmbase.security.UserContext uc, HttpServletRequest req) {
- Node n =
getUserNode(ContextProvider.getDefaultCloudContext().getCloud("mmbase"),
uc.getIdentifier());
- req.setAttribute("user", n == null ? "0" : n.getNumber());
- log.debug("Found user " + (n == null ? "NULL" : n.getNumber()) + " "
+ uc);
- Object education = req.getAttribute("education");
- if (education != null && n != null) {
- Function fun = n.getFunction("class");
- Parameters params = fun.createParameters();
- params.set("education", Casting.toInt(education));
- Node claz = (Node) fun.getFunctionValue(params);
- req.setAttribute("class", claz);
+ try {
+
req.getSession().setAttribute(nl.didactor.filter.ProviderFilter.getSessionName(),
(LocalContext.getCloudContext().getCloud("mmbase", uc)));
+ nl.didactor.filter.ProviderFilter.decorateRequest(req, null);
+ return uc;
+ } catch (java.io.IOException io) {
+ throw new RuntimeException(io);
}
-
- return uc;
}
/**
* @since Didactor-2.3
@@ -289,7 +283,11 @@
}
} catch (SecurityException se) {
HttpSession session = request.getSession(true);
- session.setAttribute(REASON_KEY, se.getMessage());
+ Locale locale = (Locale) request.getAttribute("locale");
+ if (locale == null) {
+ locale =
ContextProvider.getDefaultCloudContext().getDefaultLocale();
+ }
+ session.setAttribute(REASON_KEY, se.getMessage(locale));
log.service("For ac " + se.getMessage());
}
}
@@ -404,7 +402,8 @@
return getUserNode(cloud, cloud.getUser().getIdentifier());
}
- @Override public int getNode(org.mmbase.security.UserContext userContext)
throws SecurityException {
+ @Override
+ public int getNode(org.mmbase.security.UserContext userContext) throws
SecurityException {
if (userContext == null) return -1;
String id = userContext.getIdentifier();
Node n =
getUserNode(ContextProvider.getDefaultCloudContext().getCloud("mmbase",
"class", null), id);
Modified:
didactor/trunk/components/core/src/main/java/nl/didactor/security/plain/PlainSecurityComponent.java
===================================================================
---
didactor/trunk/components/core/src/main/java/nl/didactor/security/plain/PlainSecurityComponent.java
2010-02-03 19:05:11 UTC (rev 40847)
+++
didactor/trunk/components/core/src/main/java/nl/didactor/security/plain/PlainSecurityComponent.java
2010-02-03 19:05:58 UTC (rev 40848)
@@ -99,14 +99,14 @@
log.debug("No user found for " + login);
user = users.getUser(login);
if (user == null) {
- throw new SecurityException("No such user '" + login + "'");
+ throw new SecurityException("nl.didactor.security",
"nosuchuser", login);
} else {
- throw new SecurityException("Wrong password");
+ throw new SecurityException("nl.didactor.security",
"wrongpassword");
}
}
if ("".equals(user.getStringValue("password"))) {
- throw new SecurityException("User '" + login + "' has an empty
password");
+ throw new SecurityException("nl.didactor.security",
"emptypassword", login);
}
log.debug("Found matching credentials, so user is now logged in.");
@@ -116,7 +116,7 @@
UserContext uc = new UserContext(user, application);
if (! uc.getRank().equals(Rank.ADMIN)) {
if (! user.getBooleanValue("person_status")) {
- throw new SecurityException("User '" + login + "' is
disabled");
+ throw new SecurityException("nl.didactor.security",
"disabled", login);
}
}
return uc;
Added:
didactor/trunk/components/core/src/main/resources/nl/didactor/security.properties
===================================================================
---
didactor/trunk/components/core/src/main/resources/nl/didactor/security.properties
(rev 0)
+++
didactor/trunk/components/core/src/main/resources/nl/didactor/security.properties
2010-02-03 19:05:58 UTC (rev 40848)
@@ -0,0 +1,4 @@
+wrongpassword=Wrong password
+nosuchuser=No such user '{0}'
+emptypassword=User '{0}' has an empty password
+disabled=User '{0}' is disabled
\ No newline at end of file
Added:
didactor/trunk/components/core/src/main/resources/nl/didactor/security_nl.properties
===================================================================
---
didactor/trunk/components/core/src/main/resources/nl/didactor/security_nl.properties
(rev 0)
+++
didactor/trunk/components/core/src/main/resources/nl/didactor/security_nl.properties
2010-02-03 19:05:58 UTC (rev 40848)
@@ -0,0 +1,4 @@
+wrongpassword=Verkeerd wachtwoord
+nosuchuser=Er is geen gebruiker '{0}'
+emptypassword=De gebruiker '{0}' heeft een leeg wachtwoord
+disabled=De gebruiker '{0}' is niet actief
\ No newline at end of file
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs