Используйте [ЗАМЕНЯЮТ] [1] (я использую X вместо Вашего T, поскольку T является истинным значением в Lisp):
(replace L (list X) :start1 N)
[1]: http://www.lispworks.com/documentation/HyperSpec/Body/f_replac.htm ЗАМЕНА
Если Tomcat не является жестким требованием, вы можете рассмотреть возможность развертывания вашего приложения на сервере Sun Glassfish. Glassfish - это эталонная реализация технологий Java EE, которая включает поддержку безопасности . Glassfish имеет солидную репутацию и отличается простотой применения.
Apache Shiro , ранее известный как Ki, а до этого JSecurity , «представляет собой мощную и гибкую среду безопасности с открытым исходным кодом, которая аккуратно обрабатывает аутентификацию, авторизацию, корпоративную управление сеансами и криптография ". Он существует некоторое время (первый публичный выпуск 18.04.2006) и в настоящее время находится в инкубаторе Apache. Просто подумал, что упомяну его как альтернативу Spring Security (хотя сам предпочитаю Spring Security).
Spring security, ранее называвшаяся acegi, является еще одним вариантом с открытым исходным кодом. Если вы используете Spring, это отличный вариант