【发布时间】:2016-03-04 16:47:25
【问题描述】:
我正在尝试将 ldap 身份验证与 grails 3 集成。基本上,这是我要做的:
当调用特定路径时,我想确保用户是目录中正确“组”的一部分。
为了解决这个问题,我所做的是配置 tomcat 的 server.xml 文件,以启用 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 directory studio 正在运行,我能够查询并返回结果。 (换句话说,到目前为止,上面的配置是正确的)
为了更进一步,我需要在 web.xml 文件中添加安全约束。但是,grails 3 不再支持使用 web.xml。 (我什至创建了一个 web.xml 文件,该文件被放置在 src/main/webapp/WEB-INF 目录中,作为以前版本的一些推荐,但是应用程序随后变得不可部署)这给我带来了一个问题,因为所有教程假设我们可以创建该文件。
我还查看了在 application.yml 文件中使用 ldap 的 grails 3 文档,但我在这里遇到的问题是需要连接参数。例如:ldap ip 字符串、用户名、密码等。虽然我知道本地环境的这些数据,但 war 文件将部署到许多客户端,我不知道他们的 IP。
所以我遇到的问题/问题是:
a) 由于 grails 3 没有 web.xml 文件,我如何以编程方式配置相同的属性?尽管这对服务器管理员来说很可怕,而且真的给我带来的好处很少。
b) 对于 application.yml 中的 ldap 配置,是否有替代静态类型 IP 的替代方案?
【问题讨论】:
-
您是否尝试过使用 Spring Security Core Plugin for Grails 和 LDAP Plugin?
-
从我到目前为止看到的文档中,这两个都需要提前知道connectionUrl。我不会知道的。我希望将 ldap 与 jndi 一起使用,以便客户轻松更改它