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