0

AbstractUserStoreManager を拡張するクラスがあります。

私の問題は現在 getRoleListOfUser() メソッドにあります。ここで返されるリストは、UI の [割り当てられた役割] リストではなく、[割り当てられていない役割] リストに表示されます。つまり、メソッドは、ユーザーに割り当てられたロールではなく、考えられるすべてのロールを返すように動作しているように見えます。

このロール リストで設定する必要がある内部プロパティはありますか? これは既知のバグですか?

    @Override
public String[] getRoleListOfUser(String userName)
        throws UserStoreException {

    // check whether roles exist in cache
    try {
        String[] names = getRoleListOfUserFromCache(this.tenantId, userName);
        if (names != null) {
            return names;
        }
    } catch (Exception e) {
        // if not exist in cache, continue
    }

    List<String> roles = new ArrayList<String>();

    // **code removed ** - but, roles is populated by a web service.

    String [] roleList = (String[]) roles.toArray(new String[roles.size()]);

    addToUserRolesCache(this.tenantId, userName, roleList);

            // TODO: make roleList apply to assigned roles, rather than unassigned roles!

    return roleList;
}

jdbc を使用してユーザー ストアに対して直接クエリを実行する代わりに、Web サービス呼び出しを使用しているため、私の実装は既存の例とは異なります。

ただし、これはldap-user-store-not-working という問題に似てい ますが、LDAP の代わりに独自のクラスを使用しています。

任意の提案をいただければ幸いです。

4

1 に答える 1

0

4.1.1 リリースでは、AD および LDAP でロールがユーザーに正しく関連付けられます。このバージョンはまだリリースされていません。あと 3 週間ほどかかるかもしれません。しかし、私が実験しているアルファ リリースでは、役割とドメインの関連付けに関して多くの改善が行われています。

于 2013-03-29T15:51:18.140 に答える