мы в настоящее время используем регистрацию на основе сертификатов для нашего веб-приложения (работает на Jetty 7.4)
С помощью JSSLUtils я настроил пользовательский org.jsslutils.sslcontext.X509SSLContextFactory
, который в основном проверяет сертификат, проверяет его на бэкэнд и также проверяет,Пользователь, связанный с этим сертификатом, имеет право использовать определенный сервлет.
Это работает нормально, единственная проблема заключается в том, что если пользователь не авторизован или сертификат больше не действителен и т. д., все, что я могу сделать, это
throw new CertificateException("Not allowed to access ....");
Вопрос теперь в том, могу ли я перехватить эту ошибку где-нибудь / каким-либо образом на стороне сервера и отправить обратно удобную для пользователя страницу с текстом, указывающим, почему это не удалось?Все, что я сейчас получаю, это страница браузера по умолчанию для ошибок SSL, например, в Chrome
Ошибка 107 (net :: ERR_SSL_PROTOCOL_ERROR): ошибка протокола SSL.
Я попытался указать ErrorHandler
для нашего сервлетодержателя (в файле конфигурации Spring), но он не вызывается, поскольку кажется, что он «выше» стека.
Есть предложения?
Спасибо, Джои