我找不到任何与我想要实现的目标相关的东西
我有一个使用 Spring Secuirty 3.1 的 Web 系统,需要从 Active Directory 链接用户。对于我的开发,我只是将它们存储在 spring-security.xml 文件中。这很好,但对于生产,我需要从 Active Directory 链接用户。我现在可以正常工作,因此我可以登录等,所以这不是问题。我遇到的问题是,在我的本地开发工作中,我有用户和“组”,即 ROLE_USER 和 ROLE_ADMIN。
在 Active Directory 中,有两个组映射到这些名称。我需要根据这些角色类型执行 URL 拦截 URL,但我不知道如何针对 Active Directory 执行此操作。
这是我的本地开发版本,它对身份验证提供程序中的用户进行了硬编码。这需要用于活动目录:
<http auto-config="true" disable-url-rewriting="true">
<intercept-url pattern="/test/*" access="ROLE_USER, ROLE_ADMIN" />
<intercept-url pattern="/admin" access="ROLE_ADMIN" />
<intercept-url pattern="/list*" access="ROLE_USER, ROLE_ADMIN" />
<form-login login-page="/login"
default-target-url="/home"
authentication-failure-url="/loginfailed" />
<logout invalidate-session="true" logout-success-url="/logout" />
<session-management invalid-session-url="/login">
<concurrency-control max-sessions="1" error-if-maximum-exceeded="true"/>
</session-management>
</http>
<authentication-manager>
<authentication-provider>
<user-service>
<user name="test" password="test" authorities="ROLE_USER" />
<user name="admin" password="admin" authorities="ROLE_ADMIN" />
</user-service>
</authentication-provider>
</authentication-manager>
但是,我需要做的是用基于活动目录的身份验证管理器替换它。
<authentication-manager>
<authentication-provider ref="ldapActiveDirectoryAuthProvider"/>
</authentication-manager>
我知道用户位于 AD 的这个目录中:
OU=用户,OU=Z3,DC=i1,DC=z12,DC=r1,DC=net
并且各组位于:
OU=群组,OU=Z3,DC=i1,DC=z12,DC=r1,DC=net
Active Directory 中用于登录的关键属性是“SAM-Account-Name”
请帮忙。
答案1
看看 Spring Security 参考!