Webアプリケーションのユーザーは、ユーザーの詳細を変更できます。このページのURLは次のとおりです。Spring Security:ユーザーが自分の管理ページにアクセスできるようにする
springproject/usermanagement/edituserinfo/4
ここで、「4」はユーザーIDです。
私のセキュリティコンテキストは、次のようになります。
<security:http auto-config="true" use-expressions="true">
<security:intercept-url pattern="/usermanagement" access="isAuthenticated()" />
<security:intercept-url pattern="/usermanagement/new" access="hasRole('ROLE_ADMIN')" />
<security:intercept-url pattern="/usermanagement/edit/*" access="hasRole('ROLE_ADMIN')" />
<security:intercept-url pattern="/usermanagement/edituserinfo/*" access="isAuthenticated()" />
</security:http>
にはどうすればいいだけで、自分の「edituserinfo」ページにアクセスするユーザーを制限することができますか?例えば。ユーザID 1を持つユーザーのみがアクセスできます。@RequestMapping("/usermanagement/edituserinfo/{userid}")
とあなたのコードでは、ログインを検証するように "springproject/usermanagement/edituserinfo/1" ではなく "springproject/usermanagement/edituserinfo/4"
あなたは本当にURLにユーザーIDを渡す必要があります?理想的には、あなたのURLは 'springproject/usermanagement/edituserinfo'でなければなりません。 JavaコードのユーザーIDを 'SecurityContextHolder.getContext()。getAuthentication()。getPrincipal()'として取得し、それを使用してユーザーの詳細をロードする必要があります。これにより、ユーザーは自分の詳細しか表示できず、ほかの誰も見ることができなくなります。 – manish