Most G-Reg permission tests got failed in 4.5.3 build, and after analysing
the failures found that following steps casing it.
1. Add a new user and assign him to admin role. Lets refer this user as
newAdminUser.
2. Create a new role and grant all permissions in tree.
3. Add another two users and assign to newly created role.
4. Now login as newAdminUser and go to role list.
5. Select the new role and try to remove one user from that role.
You will not be able to do the step 5 as there is a UI issue [1]. But when
I run the integration test and invoke admin service directly below
exception was thrown.
Below code segment in UserRealmProxy.java seems to casing this problem. I
just need to know is this the expected behavior. IMO Having
"/permission/admin/" permission doesn't mean role is a admin role. Because
carbon has separate admin role. In G-Reg, even though you grant all
permission to a role, that role doesn't have privilege to do
certain registry browser operations directly without granting
some permissions explicitly. But users belongs to admin roles allows to do
any operation on registry browser.
if(!isRoleHasAdminPermission){
isRoleHasAdminPermission = realm.getAuthorizationManager().
isRoleAuthorized(roleName, "/permission/admin/",
UserMgtConstants.EXECUTE_ACTION);
}
Exception
=========
[2012-11-22 13:03:09,019] INFO
{org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} -
org.wso2.carbon.user.core.UserStoreException: Can not add or remove user
from Admin permission role
[2012-11-22 13:03:09,019] INFO
{org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} - at
org.wso2.carbon.user.mgt.UserRealmProxy.updateUsersOfRole(UserRealmProxy.java:475)
[2012-11-22 13:03:09,019] INFO
{org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} - at
org.wso2.carbon.user.mgt.UserAdmin.updateUsersOfRole(UserAdmin.java:242)
[2012-11-22 13:03:09,020] INFO
{org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} - at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[2012-11-22 13:03:09,020] INFO
{org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} - at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[2012-11-22 13:03:09,020] INFO
{org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} - at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[2012-11-22 13:03:09,020] INFO
{org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} - at
java.lang.reflect.Method.invoke(Method.java:597)
[2012-11-22 13:03:09,021] INFO
{org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} - at
org.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass(RPCUtil.java:212)
[2012-11-22 13:03:09,021] INFO
{org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} - at
org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:117)
[2012-11-22 13:03:09,021] INFO
{org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} - at
org.wso2.carbon.server.admin.privilegedaction.PrivilegedActionMessageReceiver.invokeBusinessLogic(PrivilegedActionMessageReceiver.java:85)
[2012-11-22 13:03:09,021] INFO
{org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} - at
org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
[2012-11-22 13:03:09,022] INFO
{org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} - at
org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:110)
[2012-11-22 13:03:09,022] INFO
{org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} - at
org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:181)
[2012-11-22 13:03:09,022] INFO
{org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} - at
org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:172)
[2012-11-22 13:03:09,022] INFO
{org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} - at
org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:146)
[2012-11-22 13:03:09,023] INFO
{org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} - at
org.wso2.carbon.core.transports.CarbonServlet.doPost(CarbonServlet.java:231)
[2012-11-22 13:03:09,023] INFO
{org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} - at
javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
[2012-11-22 13:03:09,023] INFO
{org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} - at
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
[2012-11-22 13:03:09,023] INFO
{org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} - at
org.eclipse.equinox.http.servlet.internal.ServletRegistration.handleRequest(ServletRegistration.java:90)
[2012-11-22 13:03:09,024] INFO
{org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} - at
org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:111)
[2012-11-22 13:03:09,025] INFO
{org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} - at
org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:67)
[2012-11-22 13:03:09,025] INFO
{org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} - at
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
[2012-11-22 13:03:09,025] INFO
{org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} - at
org.wso2.carbon.tomcat.ext.servlet.DelegationServlet.service(DelegationServlet.java:68)
[2012-11-22 13:03:09,026] INFO
{org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} - at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
[2012-11-22 13:03:09,026] INFO
{org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} - at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
[2012-11-22 13:03:09,026] INFO
{org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} - at
org.wso2.carbon.tomcat.ext.filter.CharacterSetFilter.doFilter(CharacterSetFilter.java:61)
[2012-11-22 13:03:09,027] INFO
{org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} - at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
[2012-11-22 13:03:09,027] INFO
{org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} - at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
[2012-11-22 13:03:09,027] INFO
{org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} - at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
[2012-11-22 13:03:09,028] INFO
{org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} - at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
[2012-11-22 13:03:09,028] INFO
{org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} - at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
[2012-11-22 13:03:09,028] INFO
{org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} - at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
[2012-11-22 13:03:09,028] INFO
{org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} - at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
[2012-11-22 13:03:09,028] INFO
{org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} - at
org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:172)
[2012-11-22 13:03:09,029] INFO
{org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} - at
org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:156)
[2012-11-22 13:03:09,029] INFO
{org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} - at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
[2012-11-22 13:03:09,029] INFO
{org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} - at
org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:52)
[2012-11-22 13:03:09,029] INFO
{org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} - at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
[2012-11-22 13:03:09,029] INFO
{org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} - at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
[2012-11-22 13:03:09,030] INFO
{org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} - at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1001)
[2012-11-22 13:03:09,030] INFO
{org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} - at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
[2012-11-22 13:03:09,030] INFO
{org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} - at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1653)
[2012-11-22 13:03:09,030] INFO
{org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} - at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
[2012-11-22 13:03:09,030] INFO
{org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} - at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
[2012-11-22 13:03:09,031] INFO
{org.wso2.carbon.automation.core.utils.coreutils.InputStreamHandler} - at
java.lang.Thread.run(Thread.java:662)
[2012-11-22 13:03:09,136] ERROR
{org.wso2.carbon.automation.api.clients.user.mgt.UserManagementClient} -
Failed to update role
Thanks,
Krishantha.
[1]https://wso2.org/jira/browse/CARBON-14005
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev