Что бы вы ни делали, не пытайтесь писать свою собственную библиотеку, если у вас нет опыта в области криптографии, использования браузеров, файлов cookie и управления сеансами. (Если у вас были знания по этим предметам, вы, вероятно, не задавали бы этот вопрос, поэтому я постараюсь дать вам еще несколько полезных советов.)
Для Java доступны две большие библиотеки безопасности: Spring Security или Apache Shiro:
Spring Security чрезвычайно зрелый, но сверхгибкий. Он почти слишком для простых приложений, но если вы уже используете Spring, имеет смысл использовать Spring Security. Он полон функций и может делать удивительные вещи, если вам нужна высокая степень безопасности. Он интегрирован с CAS (сервером SSO) и может проходить аутентификацию на LDAP, JDBC и многих других. Spring Security является «декларативным»; он использует аннотации и АОП времени выполнения для внедрения контрольных точек авторизации в ваше приложение.
Apache Shiro намного проще: фильтр сервлетов и файл .ini - и все готово. У него действительно простой SSO и помните, что функции, которые гораздо проще реализовать, чем Spring Security. API носит программный, а не декларативный характер; что, я думаю, проще, но делает ваш код тесно связанным с библиотекой Shiro.
Любой маршрут потребует от вас придерживаться общепринятых шаблонов Java и хороших методов программирования. Плохое программирование в другом месте, где сводит на нет любые рамки безопасности.