Текст запроса на русском языке:
После внедрения инструмента для проверки подлинности с помощью кода, можно быстро создать графический код проверки с помощью следующего кода:
@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=唯一的随机值
.
Быстрый запуск В конфигурационном файле добавьте следующую конфигурацию, чтобы быстро активировать функцию 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.
По умолчанию глобальная обработка исключений включена. Если вы хотите отключить эту функцию, вы можете сделать это с помощью следующей конфигурации:
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=глобальный захват исключений обнаружил информацию об исключении
Глобальная проверка параметров в основном решает проблему дублирования кода при необходимости вручную проверять наличие исключений для параметров, которые требуют проверки. Она создаёт аспект (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
. Чтобы эта функция работала, эти две аннотации должны быть включены.
Для использования функции 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) может войти в систему.
Пример использования этой асинхронной шины сообщений:
@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/)
*Логин:*

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

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

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

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

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

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

Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )