Я добавляю Spring Security в приложение Spring MVC;однако, когда я запускаю приложение, логин Spring Security по умолчанию не отображается (даже когда я просматриваю ссылку, которая должна быть "защищенной").
Класс конфигурации (простите за отступ):
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class SecurityConf extends WebSecurityConfigurerAdapter {
@Autowired
private UserService userDetailsService;
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable();
http.authorizeRequests()
.antMatchers("**/secured/**").authenticated()
.anyRequest().permitAll()
.and()
.formLogin().permitAll();
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService).passwordEncoder(getPasswordEncoder());
}
private PasswordEncoder getPasswordEncoder() {
return new PasswordEncoder() {
@Override
public boolean matches(CharSequence rawPassword, String encodedPassword) {
return encode(rawPassword).equals(encodedPassword);
}
@Override
public String encode(CharSequence rawPassword) {
return rawPassword.toString();
}
};
} }
Я также попытался добавить пользовательский логин, но, похоже, он не находит страницу (которая в других случаях достижима):
http.authorizeRequests()
.antMatchers("**/secured/**").authenticated()
.anyRequest().permitAll()
.and()
.formLogin().loginPage('/login').permitAll();
Подводя итог, мне нужен Spring по умолчаниюСначала необходимо отобразить страницу входа в систему безопасности, чтобы я мог проверить аутентификацию, а затем я должен иметь возможность добавить новую форму входа для отображения вместо нее. Что мне делать?
РЕДАКТИРОВАТЬ: я выяснил, проблема конфигурации, которая препятствовала отображению входа в Spring. Следующие теги необходимо добавить в файл web.xml для интеграции Spring Security с Spring MVC. Теперь логин успешно отображается.
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy
</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>