Если вы знаете каталог, куда tomcat помещает все развернутые приложения, вы можете использовать относительные пути (потому что они разрешены по отношению к catalina.base env.variable, то есть к домашней странице tomcat).
Например, если вы развертываете с использованием eclipse IDE, обычно приложения развертываются в wtpwebapps, поэтому вы можете использовать:
<Realm className="org.apache.catalina.realm.MemoryRealm"
pathname="wtpwebapps/YOUR_APP_NAME/WEB-INF/users.xml"/>
Пока не идеально, но, по крайней мере, вы не используете полные пути.
Альтернативой может быть реализация собственной Realm, которая расширяет MemoryRealm и предварительно обрабатывает путь перед вызовом super.setPathname ();
Вы также можете выбрать DataSourceRealm, у которого нет этой проблемы и который подходит для производства.
Для подхода, независимого от контейнера сервлетов, вы можете использовать структуру безопасности, основанную на фильтрах (например, Spring security, ...)