我正在開發使用Spring MVC + Spring Security的Web應用程序,和我有以下網址:如何使用Spring安全保護URL?
/*this URL should be accessible by any User, i.e. users should be able to see other users' profiles*/
/users/someUserId/profile
/* all the following URLs should be accessed only by the current authenticated user */
/users/someUserId/profile/edit
/users/someUserId/picture/edit
/users/someUserId/notifications
/users/someUserId/friends
,我需要如前所述它們固定。
我的配置方法去如下:
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/resources/**").permitAll()
.regexMatchers("https://stackoverflow.com/users/[\\w]+/profile").authenticated()
.antMatchers("https://stackoverflow.com/users/[\\w]/**").access("principal.name == regexGroupMatch")
.anyRequest().authenticated()
.and()
.jee().mappableRoles("Admin", "User");
}
我想知道是否有可能實現這樣的事情:
.antMatchers("/heroes/[\\w]/**").access("principal.name == regexGroupMatch")
通過這樣做,我願意只有用戶user1能夠訪問的網址:
/users/user1/profile/edit
/users/user1/picture/edit
/users/user1/notifications
所以,user2的必須不能訪問前面提到的網址,但必須能夠訪問: /用戶/用戶1 /型材/編輯 /用戶/用戶1 /圖片/編輯 /用戶/用戶1 /通知
除了:
/users/user1/profile
/users/user2/profile
/users/user3/profile
etc...
是否有可能實現,使用Spring Security的?
你是否閱讀過文檔? – chrylis
是@chrylis,我已閱讀文檔[此處](http://docs.spring.io/spring-security/site/docs/3.2.3.RELEASE/reference/htmlsingle/)。我相信我可以使用'.antMatcher(url)'實現,但我不知道如何使用哪種方法才能讓當前用戶看到他自己的配置文件。 – fvdalcin
順便說一句,你讀過[這個主題](http://meta.stackoverflow.com/questions/251758/why-is-stack-overflow-so-negative-of-late)? – fvdalcin