私の問題を説明しましょう。次のようにアクセスされる AngularJS にサイトを実装しました。
http://localhost:8080/example/resources/#/
ここでは、ログイン ページなど、さまざまなページを呼び出すことができます。
http://localhost:8080/example/resources/#/login
管理ページ:
http://localhost:8080/example/resources/#/admin
ユーザーページ:
http://localhost:8080/example/resources/#/user
ここで、すべての呼び出しをキャッチし、ROLE_USER 権限があるかどうかを確認するために、例にスプリング セキュリティを実装しました。これまでのところ、Spring セキュリティ コンテキスト ファイルで次のように構成しました。
<security:http create-session="stateless" entry-point-ref="restAuthenticationEntryPoint"
authentication-manager-ref="authenticationManager">
<security:custom-filter ref="customRestFilter" position="BASIC_AUTH_FILTER" />
<security:intercept-url pattern="/**" access="ROLE_USER" />
</security:http>
この構成は、呼び出されたすべての URL をチェックし、ユーザーが適切な ROLES を持っていて、正常に機能し、401 Unauthorized ページをスローするかどうかを確認します。
私が抱えている問題は、ログインページを誰でもアクセスできるようにするときに、次のようにすることです。
<security:http create-session="stateless" entry-point-ref="restAuthenticationEntryPoint"
authentication-manager-ref="authenticationManager">
<security:custom-filter ref="customRestFilter" position="BASIC_AUTH_FILTER" />
<security:intercept-url pattern="/login**" access="ROLE_ANONYMOUS" />
<security:intercept-url pattern="/**" access="ROLE_USER" />
</security:http>
しかし、春のセキュリティがこの URL をキャッチしない理由がわかりません。おそらく、Angular は URL を別の方法で管理します。
最後に、を削除し<security:intercept-url pattern="/**" access="ROLE_USER" />
て /login** に ROLE_USER のみへのアクセスを許可しようとしましたが、このページは見つかりませんでした。ここで何が起こっているのか知っている人はいますか?
前もって感謝します!!!