Мне кажется, что чтобы не зависеть от контейнера, есть два основных варианта:
1. Сделать всё самому. Например в бизнес-логику веб-сервиса добавить поля, которые нужны для авторизации (пользователь/пароль, например). Тупой и очень простой метод. Пожалуй, единственный его плюс — 100% контроль над процессом в вашей бизнес-логике, да и то, если этот контроль вам действительно нужен.
2. Использовать какой-либо распространенный стандарт, реализуемый всеми известными контейнерами. Т.е., независимость от контейнера при таком подходе подразумевает, что если стандарт реализован везде, то можно не беспокоится о том, что при смене контейнера будут сюрпризы. Например, WS-Security — распространенный, стабильный стандарт.
Кстати, смешение двух подходов тоже может иметь место. Я, например, использовал стандарт WS-Security, но в виду того, что мне нужны были дополнительные обработки, я отказался от реализации контейнера и написал свой обработчик.
Вообще, вариантов может быть немало, все зависит от имеющегося времени и желания искать и разбираться.