ClassNotFoundException для Tomcat org.apache.catalina.Authenticator - PullRequest
0 голосов
/ 19 декабря 2018

Я пытаюсь использовать клапан от IBM для аутентификации на основе ролей в Tomcat 9 с использованием заголовков HTML, переданных из IBM Secure Access Manager (Tivoli Access Manager).Я настроил клапан в блоке цилиндров, как показано ниже:

<Engine name="Catalina" defaultHost="localhost" >
    <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase" />
    </Realm>

    <!-- Here is my valve declaration -->
    <Valve className="com.ibm.tivoli.integration.am.catalina.valves.AMTomcatValve"
           debugTrace="true" addRoles="myrolename" groupsHeader="iv-groups" />

    <Host name="localhost" appBase="/path/to/WARs" unpackWARs="true" autoDeploy="true" >
        <Valve classname="org.apache.catalina.valves.AccessLogValve" 
               directory="logs" prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b />
    </Host>
</Engine>

Однако это приводит к тому, что Tomcat не запускается.Вот Stacktrace:

Server start FAILED
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:306)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:491)
Caused by: java.lang.ClassNotFoundException: org.apache.catalina.Authenticator
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 35 more

Я не уверен, что вызывает эту ошибку, поскольку класс org.apache.catalina.Authenticator явно существует в моем catalina.jar, расположенном в моем каталоге $CATALINA_HOME/lib.Я поместил свой AMTomcatValve.jar в $ CATALINA_HOME / lib и добавил его в путь к классам, который дается команде java, запускающей tomcat.

Также изображение Tomcat запускается при удалении метки клапана.Он также запускается, когда клапан перемещается за пределы блока двигателя (однако это удаляет его из контекста), но я сталкиваюсь с «Неожиданной ошибкой аутентификации» при попытке войти в мое приложение с помощью IBM Security Access Manger WebSeal.

Есть какие-нибудь предложения о том, как заставить Tomcat найти этот класс?Я действительно хотел бы избежать написания пользовательского логина / аутентификационного клапана

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...