【问题标题】:Spring security delegating filter proxy or Dispatcher servletSpring 安全委托过滤器代理或 Dispatcher servlet
【发布时间】:2015-01-14 02:55:43
【问题描述】:

我正在尝试了解 Spring MVC 和 Hibernate 的集成,为 Web 应用程序提供 Spring 安全性。

我的问题是如果我们在我们的应用程序中使用 Spring 安全性,那么流程是如何进行的,delegating 过滤器代理 servlet 将首先获取用户请求还是它的 spring 调度程序 servlet?

我真的很困惑流程是如何进行的。

Spring dispatcher servlet 到 delegating filter proxy ((((or)))) 它是 delegating filter proxy,然后是 dispatcher servlet。

【问题讨论】:

    标签: spring spring-mvc spring-security


    【解决方案1】:

    通常filter's 总是在servlets 之前调用。当您有多个过滤器和一个 servlet 匹配给定 URL patternall filters are executed first in the order of <filter-mapping> definitionsservlet is executed last

    filter chain 反映了过滤器的顺序

    更多具体细节,please read this

    【讨论】:

    • 如果身份验证管理器需要针对 (sql,oracle..etc) 之类的数据库对用户详细信息进行身份验证,流程是如何进行的,它会转到 applicationcontext 数据源 bean 与数据库建立连接,然后返回到 spring- security.xml 用于对给定用户名和密码进行的身份验证?????
    • @swethagiddaluru 每个帖子一个问题,请,否则帖子会说其他内容和内部其他内容。
    【解决方案2】:

    这部分告诉你,这个问题与我的问题Answer有关应用程序上下文和spring安全上下文的流程

    authentication-manager>
    <authentication-provider>
      <jdbc-user-service data-source-ref="securityDataSource"/>
    </authentication-provider>
    

    其中“securityDataSource”是应用程序上下文中DataSource bean的名称,指向包含标准Spring Security用户数据表的数据库。或者,您可以配置一个 Spring Security JdbcDaoImpl bean 并使用 user-service-ref 属性指向它:

    这是我在此链接中找到的..

    spring documentation

    所以现在我的问题是这里的流程再次改变(它从 spring-security.xml 返回到 applicationcontext.xml),然后再处理所有过滤器。

    【讨论】:

    • @ankur-singhal ...这是我混淆的确切问题,我得到了你的答案,就像过滤器总是在 servlet 之前调用一样。但是这里 spring-securtiy.xml 正在与基于应用程序 context.xml 中的数据源 bean 的数据库,如果流程在此来回移动是否可以(即,从 security.xml 到 application.xml,其中数据源 bean 与所有 bean 分开定义,然后再次回到 spring security 到执行剩余的过滤器,如 passcodeencoder。)
    猜你喜欢
    • 2012-05-02
    • 2015-09-06
    • 1970-01-01
    • 1970-01-01
    • 2012-11-23
    • 2015-04-01
    • 2013-04-09
    • 2013-05-25
    • 2016-05-07
    相关资源
    最近更新 更多