Spring Security从哪里获取其默认的http配置?

时间:2014-01-15 21:40:42

标签: java spring spring-security

我正在使用Spring Security 3.2.4并尝试确定从何处获取其默认配置。例如,使用以下配置时:

<http use-expressions="true">

    <intercept-url pattern="/secure/login" access="permitAll" />
    <intercept-url pattern="/secure/logout" access="permitAll" />
    <intercept-url pattern="/secure/denied" access="permitAll" />
    <session-management session-fixation-protection="migrateSession" session-authentication-error-url="/login.jsp?authFailed=true"> 
        <concurrency-control max-sessions="10" error-if-maximum-exceeded="true" expired-url="/login.html" session-registry-alias="sessionRegistry"/>
    </session-management>

    <intercept-url pattern="/**" access="isAuthenticated()" />
    <form-login login-page="/secure/login" default-target-url="/" authentication-failure-url="/secure/denied" />
    <logout logout-url="/secure/logout" logout-success-url="/" />
    <expression-handler ref="defaultWebSecurityExpressionHandler" />
</http>

Spring配置中的某些东西,告诉Spring实例化LoginUrlAuthenticationEntryPoint并将登录页面设置为“/ secure / login”等等。我意识到它是form-login标签正在为我做这个魔术,但是在Spring中,form-login标签被翻译为LoginUrlAuthenticationEntryPoint等?

同样,默认情况下,Spring将实例化一个名为org.springframework.security.filterChains的过滤器链,但无法找到该bean的定义位置。我认为它是在一个Spring Security jar中的xml配置文件中,但我无法在任何地方找到它。

所有这些默认配置在哪里?

1 个答案:

答案 0 :(得分:3)

查看SecurityNamespaceHandler,然后从那里开始。如您所见,它位于spring-security-config工件中,位于包org.springframework.security.config中。