Spring MVC uygulamasında expired-url
'u yapılandırmam gerekiyor. İşte benim çaba, ancak hiçbir etkisi yoktur:Yay güvenliği - expiredUrl çalışmıyor
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.addFilterBefore(adminAuthenticationFilter(), UsernamePasswordAuthenticationFilter.class)
.addFilterBefore(customerAuthenticationFilter(), UsernamePasswordAuthenticationFilter.class)
.csrf()
.disable()
.authorizeRequests()
.antMatchers("...", "...", "...").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/admin/login")
.and()
.logout()
.addLogoutHandler(customLogoutHandler())
.logoutSuccessHandler(customLogoutSuccessHandler())
.logoutUrl("/logout")
.deleteCookies("remove")
.invalidateHttpSession(true)
.permitAll()
.and()
.sessionManagement()
.maximumSessions(1)
.expiredUrl("/expired");
}
Bu herhangi bir etkisi ve ne zaman kullanıcının oturum zaman aşımına, bahar /expired
url onu yönlendirmez yok ve sadece /admin/login
url onu yönlendirir.
Güncelleme: Denedim
görüş ve cevap çözümler önermiş, ancak herhangi bir etkisi görmedim. Ayrıca, yöntemin başında addLogoutHandler()
, logoutSuccessHandler()
ve iki addFilterBefore()
kaldırdım, ancak çalışmaz.
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.addFilterBefore(sessionManagementFilter(), SessionManagementFilter.class)
.csrf()
.disable()
.authorizeRequests()
.antMatchers("...", "...", "...").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/admin/login")
.and()
.logout()
.logoutUrl("/logout")
.deleteCookies("remove")
.invalidateHttpSession(true)
.permitAll();
}
@Bean
public SessionManagementFilter sessionManagementFilter() {
SessionManagementFilter sessionManagementFilter = new SessionManagementFilter(httpSessionSecurityContextRepository());
sessionManagementFilter.setInvalidSessionStrategy(simpleRedirectInvalidSessionStrategy());
return sessionManagementFilter;
}
@Bean
public SimpleRedirectInvalidSessionStrategy simpleRedirectInvalidSessionStrategy() {
SimpleRedirectInvalidSessionStrategy simpleRedirectInvalidSessionStrategy = new SimpleRedirectInvalidSessionStrategy("/expired");
return simpleRedirectInvalidSessionStrategy;
}
@Bean
public HttpSessionSecurityContextRepository httpSessionSecurityContextRepository(){
HttpSessionSecurityContextRepository httpSessionSecurityContextRepository = new HttpSessionSecurityContextRepository();
return httpSessionSecurityContextRepository;
}
kimse bana bu sorunu çözmek için yardımcı olabilir misiniz:
Ayrıca ben bu şekilde başka bir çözüm çalıştı?
@hamed, Tamam .. Sana '/ expired' url (Bu Geçmesinden için bir URL olduğundan bu tuhaf olduğunu biliyorum erişmek için gerekli izniniz yok sanırım! işleme), bahar zaman aşımına uğrayan sayfaya erişmek için bile giriş sayfasına yönlendirir .. Denemede acı yoktur .. Sadece ekleyin.antMatchers ("/ expired", "...", ...).() 'yi tıklayın ve şimdi zaman aşımına uğramış sayfaya veya yine de giriş sayfasına başarıyla yönlendirilip yönlendirilmediğinizi kontrol edin. Çalışmıyorsa bana bildirin .. –