2016-03-05 98 views
1

我是Spring Security中的新成員,並且在使用路徑變量或參數對特定URL進行身份驗證時遇到問題。在Spring Security中使用params訪問URL

比方說,我有一些URL:/messages/1其中1是用戶的ID。

我想要做的只是讓ID爲1的用戶訪問帶有此URL的頁面。

如果用戶通過身份驗證,Spring Security允​​許訪問某些內容,但是如何才能使身份驗證更窄?

+0

通過頁面您是指JSP?另外如果你想縮小訪問範圍,你最好使用角色ACL [這裏](http://www.mkyong.com/spring-security/spring-security-form-login-using-database/)就是一個很好的例子。 – dkanejs

+0

我使用Thymeleaf而不是JSP。 – user3541916

+0

我看到了這個例子,但它只是解釋瞭如何配置基於角色的認證。這不是我的問題點。 – user3541916

回答

1

假設你在UserDetailsid屬性:

@RequestMapping(value="/messages/{userId}", method=HttpMethod.GET) 
@PreAuthorize("#userId == authentication.principal.id") 
public List<Message> getMessages(@PathVariable String userId) { 
    // retrieve from DAO here 
} 

確保您已在安全配置啓用前/後註釋。

相關問題