Ранее я задавал приведенный ниже вопрос, который был удален, поскольку он не был сфокусирован, поэтому попросил его ответить на него сам, потому что я чувствую, что он может быть полезен и другим.
{ ссылка }
Для миграции безопасности Spring на версии 3 и выше вы можете просто расширить WebSecurityConfigurerAdapter и переопределить методы, использующие шаблон компоновщика для конфигурации JAVA, которая является более простой, детальной и простой,
- Первый, который добавляет шаблоны URL с ролями, провайдерами аутентификации, обработчиками аутентификации (успех / сбой), выходом из системы, обработчиками выхода, конфигурацией управления сеансом, набором фильтров с определенными позициями и т. Д. c.
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/istore/link.jsp").hasAnyAuthority("UU", "SSS")
.antMatchers("/istore/**/*.jsp").hasAuthority("RESTRICT")
.antMatchers("/mstore/**/*.jsp").hasAuthority("RESTRICT")
.antMatchers("/istore/card*").hasAuthority("UU")
.antMatchers("/istore/history*").hasAuthority("UU")
.antMatchers("/istore/orders*").hasAuthority("UU")
.antMatchers("/istore/consumer_goods*").hasAuthority("UU")
.antMatchers("/istore/electronics*").hasAuthority("UU")
.antMatchers("/istore/reward_redemption*").hasAuthority("UU")
.antMatchers("/istore/accessories*").hasAuthority("UU")
.antMatchers("/istore/privelege_card*").hasAuthority("UU")
.antMatchers("/istore/profile*").hasAuthority("UU")
.antMatchers("/istore/reward_redemption*").hasAuthority("UU")
.antMatchers("/istore/addresses*").hasAuthority("UU")
.antMatchers("/istore/**").hasAuthority("UU")
.and()
.formLogin()
.loginPage("/login.hm")
.failureUrl("/login.hm?err=1")
.loginProcessingUrl("/istore_check.hm")
.and()
.authenticationProvider(authProvider)
.logout()
.and()
.csrf().disable()
.addFilterBefore(iStoreFilter, ChannelProcessingFilter.class)
.addFilterAfter(loginFilter, BasicAuthenticationFilter.class)
.addFilterAt(logoutFilter, org.springframework.security.web.authentication.logout.LogoutFilter.class)
.addFilterAt(authenticationProcessingFilter, UsernamePasswordAuthenticationFilter.class)
.sessionManagement().sessionFixation().migrateSession();
}
Второй, который игнорирует фильтры безопасности в цепочке фильтров безопасности Spring для определенных c шаблонов URL.
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers("/services/**")
.antMatchers(HttpMethod.GET,"/monitor/health")
.antMatchers(HttpMethod.GET,"/widget/**")
.antMatchers(HttpMethod.GET,"/login.hm*")
.antMatchers(HttpMethod.GET,"/istore/login.jsp")
.antMatchers(HttpMethod.GET,"/istore/logout.jsp")
.antMatchers(HttpMethod.GET,"/registration.hm*")
.antMatchers(HttpMethod.GET,"/tnc.hm*")
.antMatchers(HttpMethod.GET,"/istore/clicktochat/**")
.antMatchers(HttpMethod.GET,"/logout.hm")
.antMatchers(HttpMethod.GET,"/istore/theme/**")
.antMatchers(HttpMethod.GET,"/mstore/theme/**")
.antMatchers(HttpMethod.GET,"/js/**")
.antMatchers(HttpMethod.GET,"/breeze/**")
.antMatchers(HttpMethod.GET,"/resources/**")
.antMatchers(HttpMethod.GET,"/crossdomain.xml")
}
Третий - сделать компонент управления аутентификацией, который ранее был доступен как
_authenticationManager , но теперь он должен быть объявлен как компонент следующим образом для внедрения в вашу реализацию AbstractAuthenticationProcessingFilter, которая ранее была AbstractProcessingFilter .
@Override
@Bean (name ="authenticationManagerBean")
public AuthenticationManager authenticationManagerBean() throws Exception {
return super.authenticationManagerBean();
}
PS Пожалуйста, помните, что при переходах от 3 и ниже, имеющих конфигурацию на основе xml, просмотрите свой веб-сайт. xml, поскольку регистрация сервлетов и фильтров является важной частью и если это не сделано так точно, вы обнаружите, что отлаживаете в другом месте, и если HDIV используется, удалите его и перенесите его параллельно, а не вместе.