Вход в систему Spring Spring не отображается - PullRequest
0 голосов
/ 30 октября 2019

Я добавляю 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>

1 Ответ

0 голосов
/ 31 октября 2019

Я выяснил проблему с конфигурацией, которая не позволяла отобразить логин 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...