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

标签 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”等。我意识到它是 表单-login 标签对我来说很神奇,但是 Spring 中的 form-login 标签被翻译为 LoginUrlAuthenticationEntryPoint 等?

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

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

最佳答案

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

关于java - Spring Security 从哪里获取默认的 http 配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21148804/

相关文章:

java - 消息摘要哈希MD5

java - 在 SPARQL 中组合多组行

java spring ws : webServiceTemplate. marshalSendAndReceive 在发送之前签署文档

java - Ant TaskDef 在 ClassLoader 中失败

spring - 带有 Java9 的 Swagger UI(spring boot 2.0)

java - Spring RestTemplate 动态 JSON 属性名称

java - Spring Security 和 Web 服务 session

java - 来自自定义表的 Spring Security 身份验证

java - 什么是默认 javac 源模式(断言为标识符编译)?

java - 如何将Apach AVRO IDL编译成java?