Author: tdraier
Date: Thu Dec 27 19:34:37 2007
New Revision: 19427

URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D19427&repname=
=3Djahia
Log:
externalize jackrabbit servlets

Added:
    branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/server/src/ja=
va/org/apache/jackrabbit/j2ee/JahiaJCRWebdavServerServlet.java
    branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/server/src/ja=
va/org/apache/jackrabbit/j2ee/JahiaSessionCredentials.java
    branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/server/src/ja=
va/org/apache/jackrabbit/j2ee/JahiaWebdavServlet.java

Added: branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/server/src=
/java/org/apache/jackrabbit/j2ee/JahiaJCRWebdavServerServlet.java
URL: https://svndev.jahia.net/websvn/filedetails.php?path=3D/branches/JAHIA=
-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/server/src/java/org/apache/jack=
rabbit/j2ee/JahiaJCRWebdavServerServlet.java&rev=3D19427&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/server/src/ja=
va/org/apache/jackrabbit/j2ee/JahiaJCRWebdavServerServlet.java (added)
+++ branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/server/src/ja=
va/org/apache/jackrabbit/j2ee/JahiaJCRWebdavServerServlet.java Thu Dec 27 1=
9:34:37 2007
@@ -0,0 +1,69 @@
+package org.apache.jackrabbit.j2ee;
+
+import org.apache.jackrabbit.server.SessionProvider;
+import org.apache.jackrabbit.server.SessionProviderImpl;
+import org.apache.jackrabbit.server.BasicCredentialsProvider;
+import org.apache.jackrabbit.server.jcr.JCRWebdavServer;
+import org.apache.jackrabbit.webdav.*;
+import org.jahia.jaas.JahiaLoginModule;
+
+import javax.jcr.Repository;
+import javax.jcr.Credentials;
+import javax.jcr.LoginException;
+import javax.jcr.SimpleCredentials;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpServletRequest;
+import java.io.IOException;
+import java.security.Principal;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: toto
+ * Date: 27 d=C3=83=C2=A9c. 2007
+ * Time: 18:44:08
+ * To change this template use File | Settings | File Templates.
+ */
+public class JahiaJCRWebdavServerServlet extends JCRWebdavServerServlet {
+
+    /**
+     * the repository session provider
+     */
+    private SessionProvider sessionProvider;
+
+    private JCRWebdavServer server;
+
+    /**
+     * Returns the <code>DavSessionProvider</code>
+     *
+     * @return server
+     * @see org.apache.jackrabbit.server.AbstractWebdavServlet#getDavSessi=
onProvider()
+     */
+    public DavSessionProvider getDavSessionProvider() {
+        if (server =3D=3D null) {
+            Repository repository =3D RepositoryAccessServlet.getRepositor=
y(getServletContext());
+            server =3D new JCRWebdavServer(repository, getSessionProvider(=
));
+        }
+        return server;
+    }
+
+    public synchronized SessionProvider getSessionProvider() {
+        if (sessionProvider =3D=3D null) {
+            sessionProvider =3D new SessionProviderImpl(new JahiaSessionCr=
edentials(""));
+        }
+        return sessionProvider;
+    }
+
+    protected boolean execute(WebdavRequest request, WebdavResponse respon=
se,
+                              int method, DavResource resource)
+            throws ServletException, IOException, DavException {
+        if (method !=3D DavMethods.DAV_GET && Boolean.TRUE.equals(request.=
getAttribute("isGuest"))) {
+            throw new DavException(HttpServletResponse.SC_UNAUTHORIZED);
+        }
+
+        return super.execute(request, response, method, resource);
+    }
+
+
+
+}

Added: branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/server/src=
/java/org/apache/jackrabbit/j2ee/JahiaSessionCredentials.java
URL: https://svndev.jahia.net/websvn/filedetails.php?path=3D/branches/JAHIA=
-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/server/src/java/org/apache/jack=
rabbit/j2ee/JahiaSessionCredentials.java&rev=3D19427&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/server/src/ja=
va/org/apache/jackrabbit/j2ee/JahiaSessionCredentials.java (added)
+++ branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/server/src/ja=
va/org/apache/jackrabbit/j2ee/JahiaSessionCredentials.java Thu Dec 27 19:34=
:37 2007
@@ -0,0 +1,49 @@
+package org.apache.jackrabbit.j2ee;
+
+import org.apache.jackrabbit.server.BasicCredentialsProvider;
+import org.jahia.jaas.JahiaLoginModule;
+
+import javax.jcr.Credentials;
+import javax.jcr.LoginException;
+import javax.jcr.SimpleCredentials;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import java.security.Principal;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: toto
+ * Date: 27 d=C3=83=C2=A9c. 2007
+ * Time: 19:30:31
+ * To change this template use File | Settings | File Templates.
+ */
+public class JahiaSessionCredentials extends BasicCredentialsProvider {
+    public JahiaSessionCredentials(String s) {
+        super(s);
+    }
+
+    public Credentials getCredentials(HttpServletRequest request) throws L=
oginException, ServletException {
+        SimpleCredentials c =3D (SimpleCredentials) super.getCredentials(r=
equest);
+
+        if (c !=3D null) {
+            return c;
+        }
+
+        Principal jahiaUser =3D (Principal) request.getSession(true).getAt=
tribute("org.jahia.usermanager.jahiauser");
+        if (jahiaUser !=3D null) {
+            String n =3D jahiaUser.getName();
+            // principal.getName should return username, but returns userk=
ey now
+            if (n.startsWith("{")) {
+                n =3D n.substring(n.indexOf('}')+1);
+            } else if (n.contains(":")) {
+                n =3D n.substring(0, n.indexOf(':'));
+            }
+            request.setAttribute("isGuest", Boolean.FALSE);
+            return JahiaLoginModule.getCredentials(n);
+        }
+        request.setAttribute("isGuest", Boolean.TRUE);
+        return null;
+
+    }
+
+}

Added: branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/server/src=
/java/org/apache/jackrabbit/j2ee/JahiaWebdavServlet.java
URL: https://svndev.jahia.net/websvn/filedetails.php?path=3D/branches/JAHIA=
-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/server/src/java/org/apache/jack=
rabbit/j2ee/JahiaWebdavServlet.java&rev=3D19427&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/server/src/ja=
va/org/apache/jackrabbit/j2ee/JahiaWebdavServlet.java (added)
+++ branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/server/src/ja=
va/org/apache/jackrabbit/j2ee/JahiaWebdavServlet.java Thu Dec 27 19:34:37 2=
007
@@ -0,0 +1,49 @@
+package org.apache.jackrabbit.j2ee;
+
+import org.apache.jackrabbit.server.BasicCredentialsProvider;
+import org.apache.jackrabbit.server.SessionProvider;
+import org.apache.jackrabbit.server.SessionProviderImpl;
+import org.apache.jackrabbit.webdav.*;
+import org.jahia.jaas.JahiaLoginModule;
+
+import javax.jcr.Credentials;
+import javax.jcr.LoginException;
+import javax.jcr.SimpleCredentials;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.security.Principal;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: toto
+ * Date: 27 d=C3=83=C2=A9c. 2007
+ * Time: 18:44:34
+ * To change this template use File | Settings | File Templates.
+ */
+public class JahiaWebdavServlet extends SimpleWebdavServlet {
+    /**
+     * the repository session provider
+     */
+    private SessionProvider sessionProvider;
+
+    public synchronized SessionProvider getSessionProvider() {
+        if (sessionProvider =3D=3D null) {
+            sessionProvider =3D new SessionProviderImpl(new JahiaSessionCr=
edentials(""));
+        }
+        return sessionProvider;
+    }
+
+    protected boolean execute(WebdavRequest request, WebdavResponse respon=
se,
+                              int method, DavResource resource)
+            throws ServletException, IOException, DavException {
+        if (method !=3D DavMethods.DAV_GET && Boolean.TRUE.equals(request.=
getAttribute("isGuest"))) {
+            throw new DavException(HttpServletResponse.SC_UNAUTHORIZED);
+        }
+
+        return super.execute(request, response, method, resource);
+    }
+
+
+}

_______________________________________________
cvs_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/cvs_list

Reply via email to