Как выполнить проверку аутентификации на стороне клиента с помощью внешнего интерфейса React и внутреннего интерфейса безопасности Spring Boot?

У меня настроена зависимость безопасности весенней загрузки

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>

Я также ограничил некоторые страницы в моем WebSecurityConfigAdapter, например.

  http
        .authorizeRequests()                 
        .antMatchers("/").permitAll()
        .antMatchers("/admin/**").hasRole("ADMIN")

(Я также выполнил различные другие шаблонные настройки UsersDetailsService и т. д.)

В традиционном интерфейсе, где я использую html/thymeleaf, я могу просто сделать что-то подобное, чтобы отобразить ссылку для выхода, если пользователь вошел в систему.

 <form sec:authorize="isAuthenticated()" id="frmlogout" th:action="@{/logout}" method="post" class="form-inline">
        <a href="javascript:{}" onclick="document.getElementById('frmlogout').submit(); return false;">Logout</a>
 </form>

Вопрос в том, как я могу выполнить аналогичную проверку «isAuthenticated()» (а также проверку роли) из моих классов реагирования .js? Это вообще возможно?

Желаемый результат заключается в том, чтобы я мог затем добавить кнопку выхода из системы на панель навигации, которая определена в моих классах .js.


person anon    schedule 02.09.2017    source источник
comment
Проверьте этот вопрос - stackoverflow.com/questions/43164554/   -  person Taras Yaremkiv    schedule 02.09.2017


Ответы (1)


В этом сообщении на React.js + Spring Security показан подход к использованию cookie сеанса, который является традиционным способом защиты связи в Spring MVC.

Или вы можете использовать Basic Auth для своего API и реализовать логику входа в React. Если вызов API приводит к HTTP 401 Unauthenticated, попросите пользователя предоставить учетные данные и использовать реакцию для вызова API.

person Pär Nilsson    schedule 02.09.2017