我正在使用 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/