From: Wolfgang M. M. <wol...@us...> - 2004-04-24 18:50:14
|
Update of /cvsroot/exist/eXist-1.0/src/org/exist/http/servlets In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27795/src/org/exist/http/servlets Modified Files: EXistServlet.java Log Message: Check if an XmldbPrincipal has been passed. Index: EXistServlet.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/http/servlets/EXistServlet.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** EXistServlet.java 15 Apr 2004 09:19:05 -0000 1.3 --- EXistServlet.java 24 Apr 2004 18:50:06 -0000 1.4 *************** *** 30,33 **** --- 30,34 ---- import java.io.Reader; import java.io.StringWriter; + import java.security.Principal; import java.util.Enumeration; import java.util.HashMap; *************** *** 51,54 **** --- 52,56 ---- import org.exist.security.SecurityManager; import org.exist.security.User; + import org.exist.security.XmldbPrincipal; import org.exist.storage.BrokerPool; import org.exist.storage.DBBroker; *************** *** 287,290 **** --- 289,313 ---- private User authenticate(HttpServletRequest request) { + // First try to validate the principial if passed from the servlet engine + Principal principal = request.getUserPrincipal(); + + if(principal instanceof XmldbPrincipal){ + String username = ((XmldbPrincipal)principal).getName(); + String password = ((XmldbPrincipal)principal).getPassword(); + + this.log("Validating Principle: " + principal.getName()); + User user = pool.getSecurityManager().getUser(username); + + if (user != null){ + if (password.equalsIgnoreCase(user.getPassword())){ + this.log("Valid User: " + user.getName()); + return user; + }else{ + this.log( "Password invalid for user: " + username ); + } + this.log("User not found: " + principal.getName()); + } + } + String auth = request.getHeader("Authorization"); if(auth == null) |