Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在基于Spring的web应用程序中控制运行时对服务/屏幕访问的访问的最佳实践_Java_Spring_Servlets_Servlet Filters - Fatal编程技术网

Java 在基于Spring的web应用程序中控制运行时对服务/屏幕访问的访问的最佳实践

Java 在基于Spring的web应用程序中控制运行时对服务/屏幕访问的访问的最佳实践,java,spring,servlets,servlet-filters,Java,Spring,Servlets,Servlet Filters,我很少管理基于spring的web应用程序。例如,如果我的客户机是一个具有许多模块/屏幕的flex应用程序。对屏幕、页面甚至spring服务的访问由spring security根据用户角色进行控制 在某些时候,我们可能希望完全阻止对该屏幕或服务的访问,而不考虑角色授予的访问权限。可能是我们想要取下一个特定的页面/屏幕或一个维护服务。并在一定时间后启用它。实现这一目标的最佳实践是什么。我不想重新启动应用程序 我考虑使用一些过滤器,因此每个请求都将通过过滤器,并且如果当前操作或视图被允许或禁用,该

我很少管理基于spring的web应用程序。例如,如果我的客户机是一个具有许多模块/屏幕的flex应用程序。对屏幕、页面甚至spring服务的访问由spring security根据用户角色进行控制

在某些时候,我们可能希望完全阻止对该屏幕或服务的访问,而不考虑角色授予的访问权限。可能是我们想要取下一个特定的页面/屏幕或一个维护服务。并在一定时间后启用它。实现这一目标的最佳实践是什么。我不想重新启动应用程序

我考虑使用一些过滤器,因此每个请求都将通过过滤器,并且如果当前操作或视图被允许或禁用,该过滤器将具有要检查的逻辑。 这是更好的处理方法吗。或者还有其他解决办法吗。
最佳实践是什么

Servlet过滤器是一个很好的选择,如果您想阻止URL已知的页面。这个解决方案简单明了

如果要阻止服务,Spring方面会更好。只需包装您想要阻止的类,并在调用它之前执行检查。抛出可以在表示层中处理的特定异常


我们在基于REST的应用程序中实现了一次类似的功能。全局筛选器/方面会阻止所有非GET方法有效地将应用程序切换到只读模式。

如果要阻止URL已知的页面,Servlet筛选器是一个不错的选择。这个解决方案简单明了

如果要阻止服务,Spring方面会更好。只需包装您想要阻止的类,并在调用它之前执行检查。抛出可以在表示层中处理的特定异常


我们在基于REST的应用程序中实现了一次类似的功能。全局筛选器/方面会阻止所有非GET方法有效地将应用程序切换到只读模式。

您始终可以使用apache httpd(或其他反向代理web前端)前置应用程序,并控制对其中各个URL模式的访问。这还为您带来了一个额外的好处,即在您取下整个应用程序时,您实际上可以打开一个漂亮的维护页面。

您可以始终使用apache httpd(或其他反向代理web前端)前置您的应用程序,并在那里控制对单个URL模式的访问。这还为您带来了一个额外的好处,即在关闭整个应用程序时,您实际上可以打开一个漂亮的维护页面。

正如您所说,过滤器不会与您的业务代码混合。所以它是干净的。其中as方面需要大量注释。我还没有学习SpringAOP,但我认为必须在应用程序启动之前定义方面。是否可以在运行时控制特定的方法/服务访问,而无需重新启动/更新应用程序。你能给我一些关于如何做的指针或链接吗?@user1057094你不需要从头开始做。只需定制安全拦截器。对于web资源,它应该是FilterSecurity Interceptor。对于服务,请检查MethodSecurityInterceptor或AspectJMethodSecurityInterceptor.hi此拦截器仅适用于spring mvc客户端?或者任何类型的客户?(我读了这篇文章过滤器与拦截器)如果我的应用程序有多个DispatcherServlets一个用于spring MVC另一个用于flex客户端(blazeds)FilterSecurityInterceptor会工作吗?正如你所说,过滤器不会与你的业务代码混合。所以它是干净的。其中as方面需要大量注释。我还没有学习SpringAOP,但我认为必须在应用程序启动之前定义方面。是否可以在运行时控制特定的方法/服务访问,而无需重新启动/更新应用程序。你能给我一些关于如何做的指针或链接吗?@user1057094你不需要从头开始做。只需定制安全拦截器。对于web资源,它应该是FilterSecurity Interceptor。对于服务,请检查MethodSecurityInterceptor或AspectJMethodSecurityInterceptor.hi此拦截器仅适用于spring mvc客户端?或者任何类型的客户?(我读了这篇文章过滤器与拦截器)如果我的应用程序有多个DispatcherServlets一个用于spring MVC另一个用于flex客户端(blazeds)FilterSecurityInterceptor会工作吗?apache是一个不错的选择,但我希望在应用程序中有一个基于java/spring的解决方案。apache是一个不错的选择,但我希望在应用程序中有一个基于java/spring的解决方案。