我在所有控制器上配置Spring Security。 我希望某些方法執行只在「我的系統已啓用」時啓動。這些信息可以通過一個特定的靜態方法從所有的控制器訪問(我可以使它非靜態)。 我的觀點是,我想避免在每個方法開始時對java代碼進行顯式檢查。 如何通過Spring Security來到那裏?Spring安全性 - 基於屬性訪問控制器方法
1
A
回答
1
一種方法是使用handler interceptor。
這是總體思路:
(1)要阻止配置URL模式:
<util:list id="sysEnableCheckUrlPatterns" value-type="java.lang.String">
<beans:value>/module1/**</beans:value>
<beans:value>/module2/**</beans:value>
</util:list>
(2)寫一個攔截器:
public class SysEnableCheckInterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
/*
If system enabled then return true. Otherwise return false (and optionally write something in response)
*/
}
}
(3)配置攔截器。在3.1你可以這樣做:
@Configuration
public class AppConfig extends WebMvcConfigurerAdapter {
@Resource(name="sysEnableCheckUrlPatterns")
/* or use @Autowired or @Inject if you like */
private String[] sysEnableCheckUrlPatterns;
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new SysEnableCheckInterceptor()).addPathPatterns(sysEnableCheckUrlPatterns);
}
}
0
您可以在安全註釋中使用SPEL(Spring表達式語言)。
見http://static.springsource.org/spring-security/site/docs/3.0.x/reference/el-access.html
+0
我需要使用過濾器嗎?我可以使用@PreAuthorize並檢查其他地方存儲的靜態變量(不是參數,也不是已註釋方法的類)中的布爾值? – Manu 2013-03-20 12:02:51
+0
我相信你可以,但我從來沒有嘗試過。試一試,讓我們知道:-) – GreyBeardedGeek 2013-03-21 03:30:17
相關問題
- 1. Spring 3.0安全性無法使用基於註釋的控制器
- 2. Spring安全性基於REST風格的角色控制
- 3. 基於會話屬性的Spring MVC安全性
- 4. Spring STOMP基於令牌的安全性
- 5. 如何正確地限制基於角色的API訪問Spring的安全性?
- 6. 從AuthorizeAttribute方法ASP.NET訪問控制器屬性
- 7. 從視圖訪問控制器屬性
- 8. AngularJS指令屬性訪問控制器
- 9. Spring Boot安全性:訪問新的PDF
- 10. 訪問屬性:方法
- 11. 訪問`contentWindow`屬性是否安全?
- 12. 從hmvc模塊訪問控制器公共控制器屬性
- 13. 訪問Ember控制器屬性在同一個控制器內
- 14. C# - 屬性與訪問器方法?
- 15. 使用控制器的屬性/方法
- 16. 是否有可能爲Spring @MVC控制器應用方法級安全性?
- 17. Spring MVC忽略給定控制器方法的Json屬性
- 18. 基於this.store.find設置控制器屬性的灰燼方式()
- 19. 訪問Spring屬性在JSP
- 20. Spring | SPEL多個屬性訪問器
- 21. 父控制器訪問子控制器屬性的最佳方式
- 22. Spring 3屬性文件每控制器
- 23. 基於屬性值的訪問節點
- 24. 訪問基於結構嵌套屬性
- 25. 彈簧安全:控制器訪問某些角色的方法
- 26. 基於ASP.NET角色的安全性是一個真正的基於角色的訪問控制系統嗎?
- 27. Spring引導Spring基於SOAP的Web服務的安全性
- 28. 在Spring控制器中映射Json屬性的階段屬性
- 29. 我無法訪問控制器屬性在我angular2觀點
- 30. 無法從控制器訪問$ rootScope屬性?
如何配置安全acroos所有的控制器?你在每種方法上使用註釋嗎?或者帶有多個'intercpt-url'標籤的xml配置? – 2013-03-20 09:01:16
我使用註釋 – Manu 2013-03-20 11:53:12