加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

在版本3.0.x中禁用Spring方法安全性

发布时间:2020-12-15 01:23:56 所属栏目:大数据 来源:网络整理
导读:我有一个配置了spring security的Web应用程序,用于限制对URL和方法的访问.我想在默认情况下完全禁用它,并允许我的客户在需要时轻松打开它们(他们只能访问“spring-security.xml”). 我设法关闭URL拦截,但我的方法安全性仍然启用 任何线索? (我不想让客户更

我有一个配置了spring security的Web应用程序,用于限制对URL和方法的访问.我想在默认情况下完全禁用它,并允许我的客户在需要时轻松打开它们(他们只能访问“spring-security.xml”).

我设法关闭URL拦截,但我的方法安全性仍然启用…

任何线索?

(我不想让客户更改我的web.xml,所以不幸的是每次修改“global-method-security”设置都不是一个选项……)

这是我更新的spring-security.xml配置:


我已经覆盖了DelegatingFilterProxy.doFilter方法,如下所示:

public void doFilter(ServletRequest request,ServletResponse response,FilterChain filterChain)
            throws ServletException,IOException {
    final String springSecured = System.getProperty("springSecured");

    if (StringUtils.isNotBlank(springSecured) && springSecured.equalsIgnoreCase("true")) {
        // Call the delegate
        super.doFilter(request,response,filterChain);
    } else {
        // Ignore the DelegatingProxyFilter delegate
        filterChain.doFilter(request,response);
    }
}

这是我拥有的方法安全性的一个例子:

@RequestMapping(
        value = "applications/{applicationName}/timeout/{timeout}",method = RequestMethod.POST)
public
@ResponseBody
@PreAuthorize("isFullyAuthenticated() and hasPermission(#authGroups,'deploy')")
Object deployApplication() {
    // ...
}
最佳答案
如果我是你,我不会使用自定义过滤器链实现,只是开箱即用.您可以使用嵌套元素启用和禁用bean配置的部分(自Spring 3.0起),因此这样的方法可能很方便:

您的应用程序现在不受默认配置文件(以及除“安全”配置文件之外的任何其他配置文件)的保护.您可以通过提供系统属性spring.profiles.active = secure或通过在上下文或servlet初始化程序中显式设置来启用安全配置文件.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读