こんにちは、春のセキュリティと LDAP を使用して j2ee を実装しています。
ここに私のLDAP構造があります:
DIT
|
|--Root DSE
|
|--dc=apacheLDAP
| |
| |--ou=roles
| | |
| | |--role=1
| | |--role=2
| | |--role=3
| |
| |--ou=users
| | |
| | |--user=ali
| | |--user=john
| | |--user=bettyboop
|
|--ou=system
|
|uid=admin
これが私の春のセキュリティの内容です:
<security:authentication-manager>
<security:ldap-authentication-provider
user-search-filter="uid={0}"
user-search-base="ou=user,dc=apacheLDAP"
group-search-filter="description={0}"
group-search-base="ou=roles,dc=apacheLDAP"
group-role-attribute="role"
role-prefix="ROLE_"
/>
</security:authentication-manager>
<security:ldap-server url="ldap://192.168.1.100:10389"
manager-dn="uid=admin,ou=system"
manager-password="secret"
/>
役割ごとに、ユーザー検索フィルターの値を持つ説明属性があります。したがって、ユーザー ali がログインすると、ユーザー検索フィルターは uid=ali,ou=users,dc=apacheLDAP になります。この値は、役割の説明属性で検索されます。これはうまくいきます。
ただし、ロール属性をユーザー スキーマに挿入して、スキーマを変更する必要があります。そのため、代わりに use スキーマでユーザー ロールのチェックが行われます。たとえば、ali がロール 1 とロール 2 を持っている場合、彼のユーザー スキーマは次のようになります。
uid | ali
role | 1
role | 2
権限のチェックがロールスキーマではなくユーザースキーマで行われるように、Spring-Security を変更するにはどうすればよいですか?