我在所有控制器上配置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. 从视图访问控制器属性
- 7. AngularJS指令属性访问控制器
- 8. Spring Boot安全性:访问新的PDF
- 9. 访问属性:方法
- 10. 访问Ember控制器属性在同一个控制器内
- 11. 基于this.store.find设置控制器属性的灰烬方式()
- 12. Spring 3属性文件每控制器
- 13. Spring | SPEL多个属性访问器
- 14. 基于ASP.NET角色的安全性是一个真正的基于角色的访问控制系统吗?
- 15. Spring引导Spring基于SOAP的Web服务的安全性
- 16. Rails中属性的基于角色的安全机制
- 17. 我无法访问控制器属性在我angular2观点
- 18. 无法访问控制器内部的角2属性
- 19. 使用基于角色的安全性ASP.NET目录访问
- 20. 安全和访问控制
- 21. Couchbase服务器的访问安全性
- 22. 基于XML的spring mvc与基于java配置的spring安全性的集成
- 23. 访问页面属性控制
- 24. 代码中的访问控制属性
- 25. 要访问定制控件的属性
- 26. 访问控制模板属性
- 27. Spring安全性能
- 28. Spring安全性userdetails:org.springframework.security.authentication.DisabledException
- 29. Spring安全性,jdbcAuthentication
- 30. Spring安全方法级别安全性注解不起作用
如何配置安全acroos所有的控制器?你在每种方法上使用注释吗?或者带有多个'intercpt-url'标签的xml配置? – 2013-03-20 09:01:16
我使用注释 – Manu 2013-03-20 11:53:12