1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/DSLZC-springboot-security-oauth2-jwt

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

springboot-security-oauth2-jwt

Есть ли у вас какие-либо вопросы? Пожалуйста, напишите мне или создайте issue.

Проектная структура

security

  • Простой демонстрационный проект на основе spring security reference, не представляет ценности для использования, можно пропустить.

security-ajax

  • Отказ от стандартного способа входа в систему и использование входа через AJAX. В связи с этим были созданы пользовательские классы AuthenticationSuccessHandler и AuthenticationFailureHandler для возврата пользовательских JSON.
/**
 * @author dongsilin
 * @version 2018/4/8.
 *          Обработка после успешного входа
 */
@Slf4j
@Component
public final class CustomAuthenticationSuccessHandler extends SimpleUrlAuthenticationSuccessHandler {

    @Override
    public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws ServletException, IOException {
        log.info("*******************AuthenticationSuccessHandler");
        WebUtil.output(response, RestResponse.buildSuccess(), WebUtil.ResponseOutputType.JSON);
    }

}
/**
 * @author dongsilin
 * @version 2018/4/8.
 *          Обработка при неудачном входе
 */
@Slf4j
@Component
public final class CustomAuthenticationFailureHandler extends SimpleUrlAuthenticationFailureHandler {

    @Override
    public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, AuthenticationException e) throws IOException, ServletException {
        log.info("*******************AuthenticationFailureHandler");
        if (e instanceof CaptchaAuthenticationException) {
            WebUtil.output(response, RestResponse.buildFail(e.getMessage()), WebUtil.ResponseOutputType.JSON);
        } else if (e instanceof UsernameNotFoundException) {
            WebUtil.output(response, RestResponse.buildFail("用户名不存在"), WebUtil.ResponseOutputType.JSON);
        } else if (e instanceof BadCredentialsException) {
            WebUtil.output(response, RestResponse.buildFail("密码错误"), WebUtil.ResponseOutputType.JSON);
        } else {
            WebUtil.output(response, RestResponse.buildFail("操作失败"), WebUtil.ResponseOutputType.JSON);
        }
    }

}
  • По умолчанию DaoAuthenticationProvider игнорирует UsernameNotFoundException (ошибка имени пользователя), поскольку его параметр hideUserNotFoundExceptions = true. Поэтому был создан собственный класс AuthenticationProvider, который наследуется от DaoAuthenticationProvider и устанавливает hideUserNotFoundExceptions в false.
//org.springframework.security.authentication.dao.AbstractUserDetailsAuthenticationProvider  第62行
try {
    user = this.retrieveUser(username, (UsernamePasswordAuthenticationToken)authentication);
} catch (UsernameNotFoundException var6) {
    this.logger.debug("User \'" + username + "\' not found");
    if(this.hideUserNotFoundExceptions) {
        throw new BadCredentialsException(this.messages.getMessage("AbstractUserDetailsAuthenticationProvider.badCredentials", "Bad credentials"));
    }
    throw var6;
}
@Slf4j
@Component
public final class CustomAuthenticationProvider extends DaoAuthenticationProvider {

    @Autowired
    private UserDetailsService userDetailsService;

    @PostConstruct
    public void init() {
        setUserDetailsService(userDetailsService);
        setPasswordEncoder(new BCryptPasswordEncoder(8));
        setHideUserNotFoundExceptions(false);
    }
}
  • Добавлен фильтр проверки подлинности Captcha: CustomCaptchaVerifyFilter, см. код проекта.

security-ajax-rememberme

  • В security-ajax добавлена функция запоминания.
  • Предоставлены bean-компоненты RememberMeAuthenticationFilter и RememberMeAuthenticationProvider.
  • В CustomCaptchaVerifyFilter установлен rememberMeServices: setRememberMeServices(rememberMeServices).
  • Для получения подробной информации о коде клонируйте проект и изучите его.

oauth2

  • Требует доработки.

oauth2-sso-server

  • Требует доработки.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://gitlife.ru/oschina-mirror/DSLZC-springboot-security-oauth2-jwt.git
git@gitlife.ru:oschina-mirror/DSLZC-springboot-security-oauth2-jwt.git
oschina-mirror
DSLZC-springboot-security-oauth2-jwt
DSLZC-springboot-security-oauth2-jwt
master