有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Spring Security从何处获得其默认http配置?

我正在使用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标记被翻译为loginurAuthenticationEntryPoint,等等

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

这些默认值都在哪里配置


共 (1) 个答案

  1. # 1 楼答案

    看看SecurityNamespaceHandler然后从那里往下走。如您所见,它位于spring security config工件中的包org.springframework.security.config