0

Я создаю веб-сервис, который использует весенний mvc 4 в качестве рамки. Мой веб-сервис имеет apis, который имеет подпись/api/v1/apinameПоставщик весны безопасности для входа в систему и безопасности api

Мои услуги вызываются внешними службами и которые должны быть аутентифицированы. Я предпочитаю использовать предварительно авторизированный токен для службы, которую я могу читать и выполнять авторизацию.

В случае, если на моем веб-сайте, который размещен на той же службе, используется sso для подписки, в которой в основном используются файлы cookie для аутентификации пользователя.

Я разработал частичный код, который поддерживает логин с использованием маркера заголовка и единого входа. Но мне нужно убедиться, что все api должны вернуть мне 401, если они не аутентифицированы, а доступ к веб-странице должен перенаправляться на внешнюю службу аутентификации sso.

http.anonymous().disable() 
       .authorizeRequests() 
       .antMatchers("/login").permitAll() 
       .antMatchers("/resources/protected**").denyAll() 
       .antMatchers("/**").fullyAuthenticated() 
       .and() 
       .csrf().disable() 
       .logout().logoutUrl("/logout").logoutSuccessUrl("/") 
       .and() 
       .addFilterBefore(new TokenAuthenticationFilter(authenticationManager()), BasicAuthenticationFilter.class) 
       .addFilterBefore(new CookieAuthenticationFilter(authenticationManager()), BasicAuthenticationFilter.class); 

Здесь CookieAuthenticationFilter будет делать проверку подлинности на основе печенья ... Моя проблема здесь есть, упаковывают все просьбы апи должны вернуть 401 как статус и все другие запросы должны перенаправлять на внешний сервис упаковывают ООН несанкционированного доступа. Как я могу это достичь.

ответ

0

Он должен быть очень похож на ответ для this question. Вам нужно будет настроить несколько объектов HttpSecurity, и вы можете настроить разные действия для каждого. У достойного примера Spring documentation here.

Смежные вопросы