Hi guys, We have an Axis2 1.4.1 runtime, which has addressing and rampart modules deployed. However, only addressing is engaged globally, Rampart is not.
We have two services, one is secured (has Rampart engaged), the other one is not. When Rampart is engaged on the unsecured service and subsequently disengaged, it happens that the Rampart handler is removed from the security phase. This practically disables access to the other secured service, since secured service requests are not handled by Rampart anymore (no handler in security phase) and Axis2 throws a mustUnderstand check failed for the security header. We examined the module disengage logic, and it seems that the handler removal takes place in AxisOperation#onDisengage(AxisModule module). The code there would remove module's handlers from global chains if the module is not engaged on service nor on gloabal level. What is the reason for this, and what if the module is engaged on another service (as in our case)? I'm not sure whether this is the reason for the problem, since this is pretty old code and nobody else seem to complain about it, if the above logic is valid could someone please explain the reason behind it? Regards, Detelin