Laut Apache Tomcat 1.7-Dokumentation:
Schreiben Sie Ihre eigenen LoginModule-, Benutzer- und Rollenklassen basierend auf JAAS (siehe das JAAS Authentication Tutorial und das JAAS Login Module Entwicklerhandbuch), die vom JAAS Login Context (javax.security.auth.login.LoginContext) verwaltet werden Ihr LoginModule, beachten Sie, dass der eingebaute CallbackHandler von JAASRealm nur den NameCallback und PasswordCallback zur Zeit erkennt.
Es unterstützt nur NameCallback und PasswordCallback. Ich möchte zusätzliche Parameter an das JAAS-Login-Modul übergeben, konnte aber aufgrund dieser Einschränkung nicht.
Wie gebe ich zusätzliche Parameter an das JAAS Login Modul?
Schreiben Sie Ihren eigenen CallbackHandler. Weitere Informationen finden Sie unter Ссылка
Beispielsweise könnte ein MyCallbackHandler ein zusätzliches TextOutputCallback
unterstützen %Vor% Der übliche Weg, dies zu erreichen, besteht darin, Ihre Gruppen contractor
und customer
auf Rollen zuzuordnen.
Die Verwendung des spezifikationsbasierten Ansatzes hat den zusätzlichen Vorteil, dass Ihre Lösung portierbar ist, sollten Sie sich in Zukunft für eine vollständige Java EE-Lösung (wie JBossAS / WildFly, Glassfish, WebSphere usw.) entscheiden.
Außerdem können Sie, wenn Sie zu Tomcat 8 migrieren können, auf die zusätzlichen Authentifizierungsfunktionen zugreifen, die in der Servlet 3.1-Spezifikation hinzugefügt wurden.