Nothing out of the ordinary. Here take a look.


package gov.ca.bdo.modeling.dsm2.map.server;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.google.appengine.api.users.User;
import com.google.appengine.api.users.UserService;
import com.google.appengine.api.users.UserServiceFactory;

public class RoleFilter implements Filter {

        private UserService userService;

        public void destroy() {
                // TODO Auto-generated method stub

        }

        public void doFilter(ServletRequest request, ServletResponse
response,
                        FilterChain chain) throws IOException, ServletException 
{
                if (userService.isUserLoggedIn()) {
                        User currentUser = userService.getCurrentUser();
                        if (isAllowed(currentUser)) {
                                chain.doFilter(request, response);
                        } else {
                                PrintWriter writer = response.getWriter();
                                writer.println("<h3>Access denied</h3>");
                                writer
                                                .println("<p>Please see admin 
for access to this app</p>");
                        }
                } else {
                        HttpServletRequest httpServletRequest = 
(HttpServletRequest)
request;
                        HttpServletResponse httpServletResponse = 
(HttpServletResponse)
response;
                        String requestURI = httpServletRequest.getRequestURI();
                        if (requestURI.contains("/login")) {
                                chain.doFilter(request, response);
                        } else {
                                httpServletResponse.sendRedirect(userService
                                                .createLoginURL(requestURI));
                        }
                }
        }

        private boolean isAllowed(User currentUser) {
                if (userService.isUserAdmin()) {
                        return true;
                }
                if (currentUser == null) {
                        return false;
                }
                if (currentUser.getEmail().equals("[email protected]")) {
                        return true;
                } else {
                        return false;
                }
        }

        public void init(FilterConfig filterConfig) throws ServletException {
                userService = UserServiceFactory.getUserService();

        }

}


On Dec 1, 2:21 pm, "Ikai L (Google)" <[email protected]> wrote:
> Nicky,
>
> What are you doing in RoleFilter? Is it something that would use this
> library?
>
> When deploying an App Engine application, you will need to place required
> external libraries under WEB-INF/lib so that they are also deployed
> correctly. The reverse of this is also true: you will need to add JAR files
> under WEB-INF/lib to your classpath when you run the development server.
>
>
>
> On Sun, Nov 29, 2009 at 7:15 PM, Nicky <[email protected]> wrote:
> > On deploying a version of my app, the log shows this failure
> > <html><head><title>waterschematics : uncaught application failure</
> > title><body><pre>
> > Uncaught exception from servlet
> > java.lang.NoClassDefFoundError: org/apache/tools/ant/filters/
> > StringInputStream
> >        at java.lang.Class.getDeclaredConstructors0(Native Method)
> >        at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
> >        at java.lang.Class.getConstructor0(Unknown Source)
> >        at java.lang.Class.newInstance0(Unknown Source)
> >        at java.lang.Class.newInstance(Unknown Source)
> >        at org.mortbay.jetty.servlet.Holder.newInstance(Holder.java:153)
> >        at org.mortbay.jetty.servlet.ServletHolder.getServlet
> > (ServletHolder.java:339)
> >        at
> > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:
> > 463)
> >        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
> > (ServletHandler.java:1093)
> >        at gov.ca.bdo.modeling.dsm2.map.server.RoleFilter.doFilter
> > (RoleFilter.java:33)
>
> > However when running the local instance it works and I see the class
> > in question being loaded as follows
> > ...
> > [Loaded
> > com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException from
> > file:/Users/nsandhu/dev/wk-3.5/dsm2-grid-map/war/WEB-INF/lib/gwt-
> > servlet.jar]
> > [Loaded java.text.ParseException from /System/Library/Frameworks/
> > JavaVM.framework/Versions/1.5.0/Classes/classes.jar]
> > [Loaded org.apache.tools.ant.util.ReaderInputStream from file:/Users/
> > nsandhu/dev/appengine-java-sdk-1.2.6/lib/shared/jsp/repackaged-
> > appengine-ant-1.6.5.jar]
> > [Loaded org.apache.tools.ant.filters.StringInputStream from file:/
> > Users/nsandhu/dev/appengine-java-sdk-1.2.6/lib/shared/jsp/repackaged-
> > appengine-ant-1.6.5.jar]
> > [Loaded com.google.gwt.user.server.rpc.RPCServletUtils from file:/
> > Users/nsandhu/dev/wk-3.5/dsm2-grid-map/war/WEB-INF/lib/gwt-
> > servlet.jar]
> > [Loaded com.google.gwt.user.server.rpc.RPC from file:/Users/nsandhu/
> > dev/wk-3.5/dsm2-grid-map/war/WEB-INF/lib/gwt-servlet.jar]
> > [Loaded com.google.gwt.user.server.rpc.UnexpectedException from file:/
> > Users/nsandhu/dev/wk-3.5/dsm2-grid-map/war/WEB-INF/lib/gwt-
> > servlet.jar]
> > [Loaded com.google.gwt.user.client.rpc.SerializationException from
> > file:/Users/nsandhu/dev/wk-3.5/dsm2-grid-map/war/WEB-INF/lib/gwt-
> > servlet.jar]
> > [Loaded com.google.gwt.user.server.rpc.SerializationPolicy from file:/
> > Users/nsandhu/dev/wk-3.5/dsm2-grid-map/war/WEB-INF/lib/gwt-
> > servlet.jar]
> > ...
>
> > Using the appengine 1.2.6 with eclipse 3.5 on a mac
>
> > --
>
> > You received this message because you are subscribed to the Google Groups
> > "Google App Engine for Java" group.
> > To post to this group, send email to
> > [email protected].
> > To unsubscribe from this group, send email to
> > [email protected]<google-appengine-java%[email protected]>
> > .
> > For more options, visit this group at
> >http://groups.google.com/group/google-appengine-java?hl=en.
>
> --
> Ikai Lan
> Developer Programs Engineer, Google App Engine

--

You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.


Reply via email to