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

OSCHINA-MIRROR/zhiyubujian-common-starter

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 20 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 28.11.2024 13:41 63c361d

Текст запроса на русском языке:

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

@GetMapping("/code/image")
@ResponseBody
public Response<String> image(HttpServletRequest request, HttpServletResponse response){
  try {
    codeHolder.create(new ServletWebRequest(request, response),CodeType.IMAGE);
  } catch (ValidateException e) {
       return Response.error(e.getMessage());
  }
 return Response.suc();
}

После этого кода пользователь может получить графический код проверки подлинности через http://ip:port/code/image?image=唯一的随机值.

2.4 swagger-ui

Быстрый запуск В конфигурационном файле добавьте следующую конфигурацию, чтобы быстро активировать функцию swagger-ui:

yishuifengxiao.swagger.base-package= путь к коду контроллера, который нужно сканировать

После добавления этой конфигурации вы можете просматривать расширенную документацию swagger-ui через http://ip:port/doc.html.

Спасибо!

Эта функция использует функции из swagger-bootstrap-ui версии 1.9.x от KnifeBrother в интерфейсе doc.html. Мы выражаем особую благодарность KnifeBrother за его большую поддержку. Для получения более подробной информации о swagger-bootstrap-ui обратитесь к документации KnifeBrother по адресу swagger-bootstrap-ui. Если вам нужны более мощные функции swagger, используйте версию 2.0.x или выше от KnifeBrother.

2.5 Глобальная обработка исключений

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

yishuifengxiao.error.enable=false

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

yishuifengxiao.error.map.异常类=提示信息

Например:

yishuifengxiao.error.map.ConstraintViolationException=уже есть повторяющиеся данные

В этой конфигурации ConstraintViolationException — это имя класса исключения, например ConstraintViolationException, DataIntegrityViolationException и DuplicateKeyException. Для нескольких ошибок, требующих уведомления, настройте несколько строк, например:

yishuifengxiao.error.map.ConstraintViolationException=глобальный захват исключений обнаружил информацию об исключении
yishuifengxiao.error.map.DataIntegrityViolationException=глобальный захват исключений обнаружил информацию об исключении
yishfufengxiao.error.map.DuplicateKeyException=глобальный захват исключений обнаружил информацию об исключении

2.6 Глобальная проверка параметров

Глобальная проверка параметров в основном решает проблему дублирования кода при необходимости вручную проверять наличие исключений для параметров, которые требуют проверки. Она создаёт аспект (AOP), который автоматически проверяет параметры.

По умолчанию функция глобального вывода результатов проверки параметров включена. Чтобы отключить эту функцию, выполните следующую настройку:

yishuifengxiao.aop.enable=false

Чтобы эта функция работала, необходимо добавить параметр BindingResult в метод контроллера. Простой пример:

@AuthUser(required = true)
@ApiOperation(value = "обновление информации пользователя", notes = "обновить основную информацию пользователя по id")
@PostMapping("/updateUser")
@ResponseBody
public Response<Object> updateUser(HttpServletRequest request, HttpServletResponse response, 
@Validated @RequestBody AduitDto aduitDto, BindingResult errors) throws CustomException {

    aduitService.updateUser(aduitDto);
    return Response.suc();
}

Компонент Easy Water Tool в основном основан на настройке аспекта (AOP) с использованием @ResponseBody и BindingResult. Чтобы эта функция работала, эти две аннотации должны быть включены.

2.7 Функция oauth2

Для использования функции oauth2 сначала необходимо включить соответствующие функции spring security в соответствии с шагами в разделе «Управление безопасностью».

Быстрый старт

1 Добавьте зависимости, связанные с oauth, в проект:

<dependency>
    <groupId>org.springframework.security.oauth.boot</groupId>
    <artifactId>spring-security-oauth2-autoconfigure</artifactId>
    <version>2.2.0.RELEASE</version>
</dependency>
<dependency>
    <groupId>com.yishuifengxiao.common</groupId>
    <artifactId>common-spring-boot-starter</artifactId>
    <version>4.2.1</version>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>

2 Добавьте следующий код в проект:


@Configuration
public class CustomOauth2Config extends Oauth2Config{

}

3 Добавьте аннотации @EnableResourceServer и @EnableAuthorizationServer:

Полный пример кода:

@Configuration
@EnableWebSecurity
@EnableResourceServer
@EnableAuthorizationServer
public class SecurityConfig extends AbstractSecurityConfig {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        super.configure(http);
    }

    @Configuration
    public class CustomOauth2Config extends Oauth2Config{

    }

}

4 Реализуйте интерфейс ClientDetailsService и завершите собственную логику аутентификации.

После завершения пользовательской реализации внедрите экземпляр ClientDetailsService, названный customClientDetailsService, в spring.

[Примечание] Если пользователь не следует шагу (4) и не настраивает свою логику авторизации, компонент будет использовать реализацию по умолчанию. В этом случае любой пользователь с именем пользователя и паролем (12345678) может войти в систему.

2.8 Асинхронная шина сообщений

Пример использования этой асинхронной шины сообщений:

@Component
public class DemoEventBus {
 @Resource
 private EventBus asyncEventBus;
 
 @PostConstruct
 public void init() {
    asyncEventBus.register(this);
 }
}

Отправка сообщения:

asyncEventBus.post("необходимые данные для отправки");

Получение сообщения:

@Subscribe
 public void recieve(Object data) {
    // обратите внимание, что guava получает данные в зависимости от их типа
    // одни и те же данные могут быть получены несколькими получателями одновременно
 } 
``` **groupId**org.springframework.social
    **artifactId**spring-social-core
    **version**${spring-social.version}
**dependency**
    **groupId**org.springframework.social
    **artifactId**spring-social-config
    **version**${spring-social.version}
**dependency**
    **groupId**org.springframework.social
    **artifactId**spring-social-security
    **version**${spring-social.version}
**dependency**
    **groupId**org.springframework.social
    **artifactId**spring-social-web
    **version**${spring-social.version}

2. В проекте в любом `@Configuration` добавьте `@EnableSocial` аннотацию.
3. Внедрите экземпляр объекта `SpringSocialConfigurer` в spring security.
4. Добавьте соответствующую конфигурацию в файл свойств конфигурации.

Пример полного файла конфигурации:

**@Configuration**
**@EnableWebSecurity**
**@EnableSocial**
public class SecurityConfig extends AbstractSecurityConfig {

@Autowired
private SpringSocialConfigurer socialSecurityConfig;

@Override
protected void configure(HttpSecurity http) throws Exception {
// Вызов конфигурации по умолчанию из родительского класса
super.configure(http);

http.apply(socialSecurityConfig);
}
}

**QQ-логин**

Чтобы включить QQ-логин, сначала необходимо зарегистрировать аккаунт и пароль на QQ Interconnection.
Затем в файле конфигурации проекта добавьте следующую конфигурацию:

# spring social拦截器拦截的标志,默认为 /auth
yishuifengxiao.security.social.filter-processes-url=/callback
# QQ登录的appId
yishuifengxiao.security.social.qq.app-id=QQ互联上申请的appId
# QQ登录的appSecret
yishuifengxiao.security.social.qq.app-secret=QQ互联上申请的appId对应的appSecret
# QQ登录成功后跳转路径
yishuifengxiao.security.social.qq.register-url=/registerUrl
# QQ登录服务提供商标志,默认为qq
yishuifengxiao.security.social.qq.provider-id=qq

После выполнения вышеуказанной настройки вы можете выполнить QQ-логин через URL `http://ip:port/callback/qq`.
Обратите внимание, что URL `/callback/qq` состоит из частей `yishuifengxiao.social.filter-processes-url` и `yishuifengxiao.social.qq.provider-id`.

**WeChat-логин**

Для настройки WeChat-логина достаточно выполнить следующие шаги:

# 微信登录的appId
yishuifengxiao.security.social.weixin.app-id=微信开发平台上申请的appId
# 微信登录的appSecret
yishuifengxiao.security.social.weixin.app-secret=微信开发平台申请的appId对应的appSecret
# 微信登录成功后的跳转路径
yishuifengxiao.security.social.weixin.register-url=/registerUrl
# 微信登录服务提供商标志,默认为weixin
yishuifengxiao.security.social.weixin.provider-id=weixin

После завершения настройки вы можете войти через WeChat, используя URL `http://ip:port/callback/weixin`.

### Три компонента функции

Компоненты Yishui Fengxiao включают в себя следующие функции:

- swagger-ui документация
> - Быстрое включение/отключение функции swagger-ui
> - Поддержка пользовательских параметров запуска swagger-ui
> - Поддержка создания автономных документов
- Глобальная поддержка CORS
> - Быстрое включение/отключение поддержки CORS
> - Поддержка настройки свойств CORS
- Глобальный захват исключений
> - Включает различные основные сведения об исключениях
> - Поддерживает настраиваемые сообщения об ошибках
- Общие вспомогательные инструменты
> - По умолчанию поддерживает различные методы обработки символов, такие как удаление пустых строк и удаление недопустимых символов
> - Быстрый доступ к контексту Spring
> - Быстрый доступ к экземплярам объектов Spring
- Функция проверки подлинности
> - По умолчанию поддерживается графическая проверка подлинности, SMS-проверка подлинности и электронная почта
> - Поддержка использования проверки подлинности в условиях разделения передней и задней части
> - Поддержка настраиваемой стратегии генерации проверки подлинности
> - Поддержка настраиваемых стратегий хранения проверки подлинности
> - Поддержка распределённых и кластерных функций
- Spring Security
> - Большое количество разнообразных и гибких конфигурационных атрибутов
> - Поддержка автоматического продления токенов
> - Поддержка функции проверки подлинности, быстрое применение различных типов проверки подлинности к любым ресурсам
> - Простой и понятный способ управления ресурсами приложения, позволяющий легко управлять ресурсами приложений в системе
> - Поддержка входа с помощью SMS
> - Поддержка изменения параметров формы входа
> - Поддержка настраиваемого процесса входа
> - Поддержка настраиваемых политик разрешений
> - Поддержка одновременного входа нескольких пользователей
> - Поддержка запоминания учётной записи
> - Защита от атак методом перебора паролей
> - Встроенные различные временные метки, позволяющие быстро воспринимать различные действия
- OAuth2
> - Поддержка настраиваемой политики генерации токенов
> - Поддержка настраиваемой политики хранения токенов
> - Поддержка автоматического продления токенов
> - Встроенная глобальная функция исключений
> - Встроенный токен анализа, который может анализировать информацию о пользователе на основе определённого алгоритма из токена
> - Встроенное множество способов извлечения токенов, поддерживающих извлечение токенов из URL, заголовков запросов и сеансов
> - Поддержка управления несколькими сеансами одного пользователя в режиме OAuth2
- Сторонний вход
> - По умолчанию поддержка входа через QQ
> - По умолчанию поддержка входа через WeChat
> - Поддержка других сторонних сервисов входа

<br/>

### Четыре ресурса

[Официальный документ Yishui Common Components](http://doc.yishuifengxiao.com):http://doc.yishuifengxiao.com

[Адрес исходного кода Yishui Common Components](https://gitee.com/zhiyubujian/common-starter):https://gitee.com/zhiyubujian/common-starter

[Личный блог Yishui Fengxiao](http://www.yishuifengxiao.com): http://www.yishuifengxiao.com


<br/><br/>





### Пять связанных блогов

1. [Быстрый старт с Swagger UI](http://www.yishuifengxiao.com/2019/10/31/swagger-ui%E5%BF%AB%E9%80%9F%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B/)

2. [Глобальный захват исключений на основе компонентов Yishui](http://www.yishuifengxiao.com/2019/10/31/%E5%9F%BA%E4%BA%8E%E6%98%93%E6%B0%B4%E5%85%AC%E5%85%B1%E7%BB%84%E4%BB%B6%E7%9A%84%E5%85%A8%E5%B1%80%E5%BC%82%E5%B8%B8%E6%8D%95%E8%8E%B7/)

3. [Быстрое начало работы с функцией проверки подлинности на основе компонентов Yishui](http://www.yishuifengxiao.com/2019/10/31/%E5%9F%BA%E4%BA%8E%E6%98%93%E6%B0%B4%E5%85%AC%E5%85%B1%E7%BB%84%E4%BB%B6%E7%9A%84%E9%AA%8C%E8%AF%81%E7%A0%81%E5%BF%AB%E9%80%9F%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B/) **OAuth2: быстрое введение в курс дела**

[Ссылка](http://www.yishuifengxiao.com/2019/11/01/oauth2%E5%BF%AB%E9%80%9F%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B/)

**Интеграция однократного входа SSO в Springboot**

[Ссылка](http://www.yishuifengxiao.com/2019/10/25/springboot%E6%95%B4%E5%90%88%E5%8D%95%E7%82%B9%E7%99%BB%E5%BD%95sso/)

**Создание сервера ресурсов на основе общедоступных компонентов Easy Water**

[Ссылка](http://www.yishuifengxiao.com/2019/10/30/%E6%90%AD%E5%BB%BA%E5%9F%BA%E4%BA%8E%E6%98%93%E6%B0%B4%E5%85%AC%E5%85%B1%E7%BB%84%E4%BB%B6%E7%9A%84%E8%B5%84%E6%BA%90%E6%9C%8D%E5%8A%A1%E5%99%A8/)

**Spring Security: получение информации о текущем пользователе**

[Ссылка](http://www.yishuifengxiao.com/2019/10/15/spring-security%E4%B9%8B%E8%8E%B7%E5%8F%96%E5%BD%93%E5%89%8D%E7%94%A8%E6%88%B7%E4%BF%A1%E6%81%AF/)

**Система управления правами на основе общедоступных компонентов Easy Water**

[Ссылка](http://www.yishuifengxiao.com/2019/10/31/%E5%BF%AB%E9%80%9F%E6%90%AD%E5%BB%BA%E5%9F%BA%E4%BA%8E%E6%98%93%E6%B0%B4%E5%85%AC%E5%85%B1%E7%BB%84%E4%BB%B6%E7%9A%84%E6%9D%83%E9%99%90%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F/)

*Логин:*

![Логин](https://images.gitee.com/uploads/images/2019/1113/090913_bbe000a5_400404.png "login.png")

*Управление пользователями:*

![Управление пользователями](https://images.gitee.com/uploads/images/2019/1113/090958_0d4c4c09_400404.png "user.png")

*Управление терминалами:*

![Управление терминалами](https://images.gitee.com/uploads/images/2019/1113/091049_4442a7eb_400404.png "client.png")

*Онлайн-управление пользователями:*

![Онлайн-управление пользователями](https://images.gitee.com/uploads/images/2019/1113/091145_f5415447_400404.png "online.png")

*Журнал входа:*

![Журнал входа](https://images.gitee.com/uploads/images/2019/1113/091209_a4c911fb_400404.png "record.png")

*Документация:*

![Документация](https://images.gitee.com/uploads/images/2019/1113/091240_2bac1057_400404.png "swagger.png")

*Режим OAuth2 с паролем:*

![Режим OAuth2 с паролем](https://images.gitee.com/uploads/images/2019/1113/092322_8e7b4af4_400404.png "oauth2-password.png")

Опубликовать ( 0 )

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

1
https://api.gitlife.ru/oschina-mirror/zhiyubujian-common-starter.git
git@api.gitlife.ru:oschina-mirror/zhiyubujian-common-starter.git
oschina-mirror
zhiyubujian-common-starter
zhiyubujian-common-starter
master