Update of
/var/cvs/applications/cloudcontext/src/org/mmbase/security/implementation/cloudcontext
In directory james.mmbase.org:/tmp/cvs-serv29267
Modified Files:
Tag: MMBase-1_8
Authenticate.java User.java
Log Message:
MMB-1749
See also:
http://cvs.mmbase.org/viewcvs/applications/cloudcontext/src/org/mmbase/security/implementation/cloudcontext
See also: http://www.mmbase.org/jira/browse/MMB-1749
Index: Authenticate.java
===================================================================
RCS file:
/var/cvs/applications/cloudcontext/src/org/mmbase/security/implementation/cloudcontext/Authenticate.java,v
retrieving revision 1.17
retrieving revision 1.17.2.1
diff -u -b -r1.17 -r1.17.2.1
--- Authenticate.java 20 Feb 2006 18:34:16 -0000 1.17
+++ Authenticate.java 8 Dec 2008 16:31:46 -0000 1.17.2.1
@@ -31,7 +31,7 @@
* @author Eduard Witteveen
* @author Pierre van Rooden
* @author Michiel Meeuwissen
- * @version $Id: Authenticate.java,v 1.17 2006/02/20 18:34:16 michiel Exp $
+ * @version $Id: Authenticate.java,v 1.17.2.1 2008/12/08 16:31:46 michiel Exp $
*/
public class Authenticate extends Authentication {
private static final Logger log =
Logging.getLoggerInstance(Authenticate.class);
@@ -60,10 +60,18 @@
}
}
+ public final static Authenticate getInstance() {
+ return (Authenticate)
MMBase.getMMBase().getMMBaseCop().getAuthentication();
+ }
+
+ public Provider getUserProvider() {
+ return Users.getBuilder();
+ }
+
// javadoc inherited
protected void load() throws SecurityException {
- Users users = Users.getBuilder();
+ Provider users = getUserProvider();
if (users == null) {
String msg = "builders for security not installed, if you are
trying to install the application belonging to this security, please restart
the application after all data has been imported)";
log.fatal(msg);
@@ -88,21 +96,30 @@
}
+ private boolean warnedNoAnonymousUser = false;
+
// javadoc inherited
public UserContext login(String s, Map map, Object aobj[]) throws
SecurityException {
if (log.isDebugEnabled()) {
log.trace("login-module: '" + s + "'");
}
MMObjectNode node = null;
- Users users = Users.getBuilder();
+ Provider users = getUserProvider();
if (users == null) {
String msg = "builders for security not installed, if you are
trying to install the application belonging to this security, please restart
the application after all data has been imported)";
log.fatal(msg);
throw new SecurityException(msg);
}
- allowEncodedPassword =
org.mmbase.util.Casting.toBoolean(users.getInitParameter("allowencodedpassword"));
+ allowEncodedPassword = users.allowEncodedPassword();
if ("anonymous".equals(s)) {
node = users.getAnonymousUser();
+ if (node == null) {
+ if (! warnedNoAnonymousUser) {
+ log.warn("No user node for anonymous found");
+ warnedNoAnonymousUser = true;
+ }
+ return new LocalAdmin("anonymous", s,
Rank.getRank("anonymous"));
+ }
} else if ("name/password".equals(s)) {
String userName = (String)map.get("username");
String password = (String)map.get("password");
@@ -117,7 +134,7 @@
return user;
}
}
- node = users.getUser(userName, password);
+ node = users.getUser(userName, password, true);
if (node != null && ! users.isValid(node)) {
throw new SecurityException("Logged in an invalid user");
}
@@ -153,12 +170,18 @@
return user;
} else {
if (userName != null) {
+ try {
node = users.getUser(userName);
- if (rank != null) {
+ } catch (SecurityException se) {
+ log.service(se);
+ return new LocalAdmin(userName, s, rank == null ?
Rank.ADMIN : Rank.getRank(rank));
}
} else if (rank != null) {
node = users.getUserByRank(rank, userName);
log.debug("Class authentication to rank " + rank + " found
node " + node);
+ if (node == null) {
+ return new LocalAdmin(rank, s, Rank.getRank(rank));
+ }
}
}
} else {
@@ -240,14 +263,19 @@
private String userName;
private long l;
+ private Rank r = Rank.ADMIN;
LocalAdmin(String user, String app) {
super(new AdminVirtualNode(), Authenticate.this.getKey(), app);
l = extraAdminsUniqueNumber;
userName = user;
}
+ LocalAdmin(String user, String app, Rank r) {
+ this(user, app);
+ this.r = r;
+ }
public String getIdentifier() { return userName; }
public String getOwnerField() { return userName; }
- public Rank getRank() throws SecurityException { return Rank.ADMIN; }
+ public Rank getRank() throws SecurityException { return r; }
public boolean isValidNode() { return l == extraAdminsUniqueNumber; }
private void readObject(java.io.ObjectInputStream in) throws
java.io.IOException, ClassNotFoundException {
userName = in.readUTF();
@@ -279,7 +307,7 @@
}
public class AdminVirtualNode extends VirtualNode {
AdminVirtualNode() {
- super(Users.getBuilder());
+ super(Authenticate.this.getUserProvider().getUserBuilder());
}
}
Index: User.java
===================================================================
RCS file:
/var/cvs/applications/cloudcontext/src/org/mmbase/security/implementation/cloudcontext/User.java,v
retrieving revision 1.22.2.3
retrieving revision 1.22.2.4
diff -u -b -r1.22.2.3 -r1.22.2.4
--- User.java 22 Jul 2008 12:03:37 -0000 1.22.2.3
+++ User.java 8 Dec 2008 16:31:47 -0000 1.22.2.4
@@ -27,7 +27,7 @@
* @author Eduard Witteveen
* @author Pierre van Rooden
* @author Michiel Meeuwissen
- * @version $Id: User.java,v 1.22.2.3 2008/07/22 12:03:37 michiel Exp $
+ * @version $Id: User.java,v 1.22.2.4 2008/12/08 16:31:47 michiel Exp $
* @see org.mmbase.security.implementation.cloudcontext.builders.Users
*/
public class User extends BasicUser implements WeakNodeEventListener {
@@ -73,7 +73,7 @@
if (node == null) {
return Rank.ANONYMOUS;
} else {
- return Users.getBuilder().getRank(node);
+ return Authenticate.getInstance().getUserProvider().getRank(node);
}
}
@@ -82,7 +82,7 @@
if (node == null) {
return "system";
} else {
- return Users.getBuilder().getDefaultContext(node);
+ return
Authenticate.getInstance().getUserProvider().getDefaultContext(node);
}
}
@@ -100,7 +100,7 @@
* @javadoc
*/
public boolean isValidNode() {
- return (node == null) || Users.getBuilder().isValid(node);
+ return (node == null) ||
Authenticate.getInstance().getUserProvider().isValid(node);
}
@@ -125,7 +125,8 @@
log.service("Node was invalidated!");
node = null; // invalidate
} else if (ne.getType() == Event.TYPE_CHANGE) {
- node = Users.getBuilder().getNode(ne.getNodeNumber());
+ MMObjectBuilder users =
Authenticate.getInstance().getUserProvider().getUserBuilder();
+ node = users.getNode(ne.getNodeNumber());
}
}
}
@@ -140,7 +141,8 @@
org.mmbase.util.ThreadPools.jobsExecutor.execute(new Runnable() {
public void run() {
org.mmbase.bridge.LocalContext.getCloudContext().assertUp();
- node = Users.getBuilder().getNode(number);
+ MMObjectBuilder users =
Authenticate.getInstance().getUserProvider().getUserBuilder();
+ node = users.getNode(number);
}
});
}
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs