在我的Web應用程序中,用戶可以更改他們的用戶詳細信息。該頁面的URL是:Spring Security:只允許用戶訪問他們自己的管理頁面
springproject/usermanagement/edituserinfo/4
其中「4」是用戶標識。
我的安全上下文的樣子:
<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只能訪問: 「springproject/usermanagement/edituserinfo/1」,而不是 「springproject/usermanagement/edituserinfo/4」
你真的需要通過用戶ID的URL ?理想情況下,您的網址應該是'springproject/usermanagement/edituserinfo'。您應該在Java代碼中檢索用戶標識爲SecurityContextHolder.getContext()。getAuthentication()。getPrincipal()'並使用它來加載用戶詳細信息。這將確保用戶只能看到和編輯他們自己的細節,而不能看到和編輯他們自己的細節。 – manish