我在所有控制器上配置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