我正在使用Spring Security和自定义登录表单。我使用配置类自定义配置:
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
...
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.formLogin()
.loginPage("/signin")
.successForwardUrl("/landing")
.failureForwardUrl("/signinfailed");
}
...
}
由于代码段显示我的登录网址不是标准的。现在我必须将这些URL硬编码到我的应用程序中的许多地方:模板,一些具有自定义登录要求的控制器,集成测试。我觉得这种做法违反了不要重复自己校长一点点。有一天,如果我必须更改URL,我需要确保所有事件都被修改等等。
有没有办法访问Spring Security配置,或者至少以编程方式登录表单部分,以便我可以使用配置的值而无需在多个位置重复指定值?
我已经检查了HttpSecurity
类,似乎在类设计中没有读访问权限。一个可能的选择是在配置类中构建一个访问机制,但它有自己的问题(需要硬编码默认值,如果自定义项目数量增加,可读性差等)如果有直接的话会更方便访问配置的方法。