Issue Details (XML | Word | Printable)

Key: GALAXY-287
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Critical Critical
Assignee: Dan Diephouse
Reporter: Mark Griffin
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Galaxy

System usernames must be unique

Created: 03/Jun/08 04:00 PM   Updated: 04/Jun/08 11:27 AM
Component/s: Core
Affects Version/s: None
Fix Version/s: 1.0-RC

Time Tracking:
Not Specified

Issue Links:
Related
 

Labels:
User impact: High


 Description  « Hide
Right now it's possible to create N users with the same username.

 All   Comments   Work Log   Change History   Transitions   FishEye      Sort Order: Ascending order - Click to sort in descending order
Andrew Perepelytsya added a comment - 04/Jun/08 10:45 AM
Reopening, the issue hasn't been fixed. Moreover, attempting to delete a duplicate user now fail:

[06-04 11:44:23] WARN GWTRPCServiceExporter [btpool0-4]: java.lang.reflect.InvocationTargetException
[06-04 11:44:23] ERROR /galaxy [btpool0-4]: Exception while dispatching incoming RPC call
java.lang.RuntimeException: com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract void org.mule.galaxy.web.rpc.SecurityService.deleteUser(java.lang.String)' threw an unexpected exception: org.springmodules.jcr.JcrSystemException: Repository access exception; nested exception is javax.jcr.RepositoryException: failed to resolve path null relative to /activeUsers: empty path: empty path
at org.gwtwidgets.server.spring.GWTRPCServiceExporter.processCall(GWTRPCServiceExporter.java:150)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost(RemoteServiceServlet.java:187)
at org.gwtwidgets.server.spring.GWTRPCServiceExporter.handleRequest(GWTRPCServiceExporter.java:168)
at org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter.handle(HttpRequestHandlerAdapter.java:49)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:476)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:441)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
at org.mule.galaxy.web.ContextPathSaverFilter.doFilter(ContextPathSaverFilter.java:49)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.springmodules.jcr.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:93)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:124)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.ui.switchuser.SwitchUserProcessingFilter.doFilter(SwitchUserProcessingFilter.java:341)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:174)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:722)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:404)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
at org.mortbay.jetty.Server.handle(Server.java:324)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:842)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:648)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:205)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)
Caused by: com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract void org.mule.galaxy.web.rpc.SecurityService.deleteUser(java.lang.String)' threw an unexpected exception: org.springmodules.jcr.JcrSystemException: Repository access exception; nested exception is javax.jcr.RepositoryException: failed to resolve path null relative to /activeUsers: empty path: empty path
at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:361)
at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:320)
at org.gwtwidgets.server.spring.GWTRPCServiceExporter.processCall(GWTRPCServiceExporter.java:143)
... 55 more
Caused by: org.springmodules.jcr.JcrSystemException: Repository access exception; nested exception is javax.jcr.RepositoryException: failed to resolve path null relative to /activeUsers: empty path: empty path
at org.springmodules.jcr.SessionFactoryUtils.translateException(SessionFactoryUtils.java:233)
at org.springmodules.jcr.JcrAccessor.convertJcrAccessException(JcrAccessor.java:58)
at org.springmodules.jcr.JcrTemplate.execute(JcrTemplate.java:82)
at org.springmodules.jcr.JcrTemplate.execute(JcrTemplate.java:108)
at org.mule.galaxy.impl.jcr.onm.AbstractDao.delete(AbstractDao.java:97)
at org.mule.galaxy.impl.jcr.onm.AbstractDao$$FastClassByCGLIB$$c1dd0328.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:700)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:635)
at org.mule.galaxy.impl.jcr.UserManagerImpl$$EnhancerByCGLIB$$eed05d53.delete(<generated>)
at org.mule.galaxy.web.server.SecurityServiceImpl.deleteUser(SecurityServiceImpl.java:173)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.gwtwidgets.server.spring.GWTRPCServiceExporter.processCall(GWTRPCServiceExporter.java:127)
... 55 more
Caused by: javax.jcr.RepositoryException: failed to resolve path null relative to /activeUsers: empty path: empty path
at org.apache.jackrabbit.core.NodeImpl.resolveRelativeNodePath(NodeImpl.java:237)
at org.apache.jackrabbit.core.NodeImpl.getNode(NodeImpl.java:2468)
at org.mule.galaxy.impl.jcr.UserManagerImpl.doDelete(UserManagerImpl.java:220)
at org.mule.galaxy.impl.jcr.onm.AbstractDao$3.doInJcr(AbstractDao.java:99)
at org.springmodules.jcr.JcrTemplate.execute(JcrTemplate.java:76)
... 71 more
Caused by: org.apache.jackrabbit.spi.commons.conversion.MalformedPathException: empty path
at org.apache.jackrabbit.spi.commons.conversion.PathParser.parse(PathParser.java:90)
at org.apache.jackrabbit.spi.commons.conversion.PathParser.parse(PathParser.java:57)
at org.apache.jackrabbit.spi.commons.conversion.ParsingPathResolver.getQPath(ParsingPathResolver.java:60)
at org.apache.jackrabbit.spi.commons.conversion.CachingPathResolver.getQPath(CachingPathResolver.java:77)
at org.apache.jackrabbit.spi.commons.conversion.DefaultNamePathResolver.getQPath(DefaultNamePathResolver.java:69)
at org.apache.jackrabbit.core.SessionImpl.getQPath(SessionImpl.java:649)
at org.apache.jackrabbit.core.NodeImpl.resolveRelativeNodePath(NodeImpl.java:209)
... 75 more


Dan Diephouse added a comment - 04/Jun/08 11:18 AM
Andrew - did you clear out your galaxy-data? It looks like you didn't. This requires a fresh DB.

Andrew Perepelytsya added a comment - 04/Jun/08 11:27 AM
After deleting the repo things work fine, closing