Я попробовал ответ Дэна , но алгебра, используемая для определения границ, неверна. Ответ ryanve ближе, но проверяемый элемент должен находиться внутри области просмотра по крайней мере на 1 пиксель, поэтому попробуйте эту функцию:
function isElementInViewport(el) {
var rect = el.getBoundingClientRect();
return rect.bottom > 0 &&
rect.right > 0 &&
rect.left < (window.innerWidth || document.documentElement.clientWidth) /* or $(window).width() */ &&
rect.top < (window.innerHeight || document.documentElement.clientHeight) /* or $(window).height() */;
}
Ваш первый WebSecurityConfigurerAdapter
http
.authorizeRequests()
соответствует всем URL-адресам, ограничивает его только URL-адресами, начинающимися с /admin
, с помощью antMatcher
:
@Configuration
@Order(1)
public static class ProviderSecurity extends WebSecurityConfigurerAdapter{
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.antMatcher("/admin/**")
.authorizeRequests()
.antMatchers("/admin/login").permitAll()
.antMatchers("/admin/**").access("hasRole('BASE_USER')")
.and()
...