У нас есть ресурc c:/x-files который должен быть доступен через браузер как http://myserver:8080/x-files и только пользователям Project Kaiser. Project Kaiser версии не ниже 22.0 при помощи программы установки поставлен в папку C:/Program Files/Triniforce/Project Kaiser и виден в сети как http://myserver:8080/pk.
Важно для понимания: при использовании стандартной программы установки устанавливается т.н. "сервер приложений" tomcat, под управлением которого и работает Project Kaiser. Нам нужно сообщить tomcat, что есть дополнительный ресуср x-files, кооторый нужно защитить, обращаясь к Project Kaiser для аутентификации пользователей.
Шаг 1. Скачиваем pk-realm-1.0.0.jar. Этот пакет обеспечивает связь между tomcat и PK.
Шаг 2. Копируем pk-realm.jar в папку C:/Program Files/Triniforce/Project Kaiser/server/lib, после этого tomcat "увидит" pk-realm.
Шаг 3. Создаем папку c:/x-files/WEB-INF
Шаг 4. Создаем файл c:/x-files/WEB-INF/web.xml следующего содержания:
<?xml version="1.0" encoding="UTF-8"?> <web-app> <display-name>X-Files</display-name> <description> X-Files which must be protected </description> <security-constraint> <web-resource-collection> <web-resource-name>X-Files</web-resource-name> <url-pattern>/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>pkuser</role-name> </auth-constraint> </security-constraint> <login-config> <auth-method>BASIC</auth-method> </login-config> </web-app>
Тем самым мы определяем правила защиты содержимого папки x-files.
Шаг 5. Самый сложный и ответственный шаг, надо сделать так, чтобы tomcat "увидел" папку x-files. Для этого нужно модифицировать файл C:/Program Files/Triniforce/Project Kaiser/conf/server.xml, добавив туда следующий фрагмент:
<Context path="/x-files" docBase="c:/x-files"> <Realm className="com.projectkaiser.realm.PKRealm" url="http://localhost:8080/pk"/> </Context>
Тем самым мы сообщили tomcat где лежит папка x-files и как ее защищать. Обратите внимание, что вместо myserver можно использовать localhost.
Файл будет выглядеть как-то так:
Вставляемый фрагмент должен быть расположен перед закрывающим тэгом </Host>. Отступы в данном случае не важны.