Я пытаюсь интегрировать аутентификацию LDAP с Граалей 3. По существу, вот что я должен сделать:Grails 3 и LDAP Authentication
Когда конкретный путь вызывается, я хочу, чтобы убедиться, что пользователь является частью правой «группы» в каталоге.
Чтобы это сделать, я сконфигурировал файл server.xml tomcat, чтобы включить область jndi.
<Realm className="org.apache.catalina.realm.JNDIRealm" debug="99"
connectionName="cn=angryIp,ou=People,o=cools,dc=mains,dc=com"
connectionPassword="angryIp"
connectionURL="ldap://localhost:10389"
userPattern="cn={0},ou=People,o=cools,dc=mains,dc=com"
roleBase="ou=Groups,o=cools,dc=mains,dc=com"
roleName="cn"
roleSearch="uniqueMember={1}"
/>
У меня есть настроенная версия студия каталогов apache, и я могу запросить и вернуть результаты. (Другими словами, приведенная выше конфигурация до сих пор верна)
Чтобы это сделать, мне нужно добавить ограничения безопасности в файле web.xml. Тем не менее, grails 3 больше не поддерживает использование web.xml. (Я даже создал файл web.xml, который был помещен в директорию src/main/webapp/WEB-INF, так как некоторые рекомендуются для предыдущих версий, но приложение становится undeployable). Это создает для меня проблему, так как все Учебники предполагают, что мы можем создать этот файл.
Я также рассмотрел документацию grails 3 для использования ldap в файле application.yml, но проблема, которую я здесь имею, заключается в том, что требуются параметры соединения. Пример: строка ldap ip, имя пользователя, пароль и т. Д. Хотя я знаю эти данные для своего локального env, файл войны будет развернут для многих клиентов, и я не знаю их IP.
Таким образом, проблема/вопрос у меня есть, что:
а) Поскольку Grails 3 не имеет файл web.xml, как я могу настроить те же атрибуты программно? Хотя это и ужасно для администраторов сервера, и на самом деле дает мне небольшую выгоду.
b) Есть ли альтернатива статически типизированным IP-адресам для конфигурации ldap в application.yml?
Вы пробовали использовать Spring Security Core Plugin для Grails и LDAP Plugin? –
из документации, которую я видел до сих пор, обе из них требуют, чтобы connectionUrl был известен заранее. Я этого не знаю. Я надеялся использовать ldap с jndi, чтобы он мог легко меняться клиентом. – angryip