Гость
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring Security WebSecurityConfigurerAdapter не срабатывает Order / 6 сообщений из 6, страница 1 из 1
18.01.2022, 10:37
    #40127379
_webdev_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring Security WebSecurityConfigurerAdapter не срабатывает Order
Здравствуйте, требуется небольшая подсказка от профи. ))

Хочу сконфигурировать Spring Security так чтоб на /api/** /api2/** была одна аутентификация, для всего другого другая, все другие Rest-ы закрыты.

Это должно регулироваться параметром @Order - так вот, у меня почему-то срабатывате только 1 Order - если меняю местами Order то работает или та или другая конфигурация в зависимости где стоит 1.

А мне нужно, чтоб применялось так как в Order. тоесть чтоб спринг проверял пути в соответствии с Order, и если не найдёт, то чтоб последний Order проводил автентификацию, такой себе default for all.

Что я упустил и почему у меня при данной конфигурации не срабатывает Order(2)? Зашищены только /api/** /api2/** - все другие Rest-ы открыты.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
@EnableWebSecurity(debug = true)
@Configuration
public class WebSecurityConfig {

    @Configuration
    @Order(1)
    static class DefaultWebSecurityConfig extends WebSecurityConfigurerAdapter {

        @Autowired
        private MyBasicAuthenticationEntryPoint authenticationEntryPoint;

        @Override
        protected void configure(HttpSecurity http) throws Exception {
            http.authorizeRequests()
                    .antMatchers("/api/**", "/api2/**").authenticated()
                    .and()
                    .httpBasic()
                    .authenticationEntryPoint(authenticationEntryPoint);
        }
    }

    @Configuration
    @Order(2)
    static class DefaultWebSecurityConfig2 extends WebSecurityConfigurerAdapter {

        @Autowired
        private MyAuthenticationProvider myAuthenticationProvider;


        @Override
        protected void configure(HttpSecurity http) throws Exception {
            http
                    .authorizeRequests()
                    .anyRequest().authenticated()
                    .and()
                    .addFilterBefore(new UserAuthenticationFilter(authenticationManager()), UsernamePasswordAuthenticationFilter.class)
                    .authenticationProvider(myAuthenticationProvider)
                    .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.NEVER)
                    .and()
                    .cors().and()
                    .csrf().disable()
                    .exceptionHandling().authenticationEntryPoint(unauthorizedEntryPoint());
        }

        @Override
        public void configure(WebSecurity web) {
            web.ignoring()
                    .antMatchers(HttpMethod.GET, "/", "/login", "/signup"); //,"/**"
        }


        @Bean
        public AuthenticationEntryPoint unauthorizedEntryPoint() {
            return (request, response, authException) -> response.sendError(HttpServletResponse.SC_UNAUTHORIZED);
        }
    }

}



Спасибо!
...
Рейтинг: 0 / 0
18.01.2022, 11:12
    #40127384
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring Security WebSecurityConfigurerAdapter не срабатывает Order
_webdev_,
Для веб приложения одна аутентификация.
А ты что захотел?
...
Рейтинг: 0 / 0
18.01.2022, 11:19
    #40127385
_webdev_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring Security WebSecurityConfigurerAdapter не срабатывает Order
PetroNotC Sharp
_webdev_,
Для веб приложения одна аутентификация.
А ты что захотел?
- Да, но возможна с разными настройками к отдельным Rest.
https://docs.spring.io/spring-security/site/docs/4.2.x/reference/htmlsingle/#multiple-httpsecurity
...
Рейтинг: 0 / 0
18.01.2022, 12:10
    #40127395
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring Security WebSecurityConfigurerAdapter не срабатывает Order
_webdev_,
Я так понял что по ссылке
my.ru/app/order/1223w2
my.ru/app/api/....
Сделай такие пути. Работает?
...
Рейтинг: 0 / 0
18.01.2022, 12:42
    #40127408
_webdev_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring Security WebSecurityConfigurerAdapter не срабатывает Order
PetroNotC Sharp
_webdev_,
Я так понял что по ссылке
my.ru/app/order/1223w2
my.ru/app/api/....
Сделай такие пути. Работает?


Хммм, если во второй конфигурации Order(2) меняю строчки на такие, то работает только для установленных паттернов, но не для остальных. Тоесть работатет автентификация и api и tasks.

Код: java
1.
2.
3.
4.
5.
6.
7.
            http
                    .antMatcher("/tasks/**")
                    .authorizeRequests()
//                    .authenticated()
                    .anyRequest().authenticated()
//                    .anonymous().and()
                    .and()
...
Рейтинг: 0 / 0
18.01.2022, 13:08
    #40127413
_webdev_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring Security WebSecurityConfigurerAdapter не срабатывает Order
Хммм, кажется решилось.
Если во втором Order(2)
Пишу так, то все другие реквесты идут через эту конфигурацию.

Код: java
1.
2.
3.
4.
            http
                    .antMatcher("/**")
                    .authorizeRequests()
                    .anyRequest().authenticated()



Добавляю Order(3) Также работате как надо. Кажется работает как надо.
Может знатоки подтвердят, что такая конфигурация корректная.
Спасибо.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring Security WebSecurityConfigurerAdapter не срабатывает Order / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]