Реализация аутентификации пользователя в Spring MVC rest api - PullRequest
0 голосов
/ 19 декабря 2018

Я построил базовый API-интерфейс Crud Spring Mvc Rest и хотел бы добавить базовую аутентификацию для проверки пользователя и добавления имени пользователя и выхода из системы.Я нашел учебник, который охватывает Spring MVC.

Я попытался реализовать базовую аутентификацию, и код выглядит следующим образом:

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
    UserBuilder users = User.withDefaultPasswordEncoder();

    auth.inMemoryAuthentication()
    .withUser(users.username("marie").password("yourmarie").roles("USER"));
}

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

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

Также хотелось бы добавить функцию выхода из системы.

Пожалуйста, руководство.Заранее спасибо!

1 Ответ

0 голосов
/ 19 декабря 2018

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

catch (Exception ae) {throw new AuthenticationException ("Недействительные учетные данные");}

Для выхода из системы необходимо удалить токен из хранилища (памяти). Вы можете проверить токен в запросе, как показано ниже, если

(StringUtils.hasText (httpServletRequest.getHeader)(«Авторизация»))) {String access_token = request.getHeader («Авторизация»);}

https://www.baeldung.com/java-config-spring-security

...