AG-Gate — это система шлюза, основанная на Spring Cloud, которая обеспечивает авторизацию пользовательских ресурсов и управление доступом к API с использованием токена аутентификации JWT. Она поддерживает авторизацию и фильтрацию сервисов, зарегистрированных в центре регистрации Eureka, и расширяет возможности уведомлений о недоступности сервисов.
AG-Gate主要用于服务间的JWT身份验证以及对外API的身份验证。通常我们的无��态API访问方式可以分为服务间相互调用和提供给外部系统的调用。 AG-Gate主要用于 служебной JWT-идентификации и аутентификации внешних API. Обычно наши бессостоятельные методы доступа к API можно разделить на взаимные вызовы между службами и предоставление доступа внешним системам.
Файл application.yml в ace-gate-way влияет на информацию, связанную с аутентификацией.
Файл application.yml в ace-gate-way влияет на информацию, связанную с аутентификацией.
Пример можно найти в ace-gate-demo Пример можно найти в ace-gate-demo
<dependency>
<groupId>com.github.wxiaoqi</groupId>
<artifactId>ace-gate-agent</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.github.wxiaoqi</groupId>
<artifactId>ace-gate-agent</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
gate:
client:
# Адрес ace-gate-way
authHost: http://localhost:8765/api/authen
# Заголовок для аутентификации, совпадает с клиентским
authHeader: access-token
gate:
client:
# Адрес ace-gate-way
authHost: http://localhost:8765/api/authen
# Заголовок для аутентификации, совпадает с клиентским
authHeader: access-token
```### Включение конфигурации
```java
/**
* Создано ace на 2017/7/6.
*/
@Configuration
public class ApiWebAppConfig extends WebMvcConfigurerAdapter {
@Value("${gate.client.authHost}")
private String authHost;
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new ApiInterceptor(authHost)).addPathPatterns("/**");
super.addInterceptors(registry);
}
}
@ApiGateSecurity
@ApiGateSecurity
@RequestMapping(value = "/user/un/{username}/system", method = RequestMethod.GET)
@ResponseBody
public String getSystemsByUsername(@PathVariable("username") String username){
int userId = userBiz.getUserByUsername(username).getId();
return JSONObject.toJSONString(menuBiz.getUserAuthoritySystemByUserId(userId));
}
<dependency>
<groupId>com.github.wxiaoqi</groupId>
<artifactId>ace-gate-agent</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
gate:
client:
# Клиентская информация, зарегистрированная на странице
clientId: admin-ui
secret: test
# Сохраняет согласованность с заголовком authHeader серверной части
authHeader: access-token
authHost: http://localhost:8765/api/authen
# Сохраняет согласованность с ace-gate-way gate.api.tokenHead
tokenHead: ApiGateToken
@Configuration
public class FeignApiConfig {
@Value("${gate.client.clientId}")
private String clientId;
@Value("${gate.client.secret}")
private String secret;
@Value("${gate.client.authHeader}")
private String authHeader;
@Value("${gate.client.authHost}")
private String authHost;
@Value("${gate.client.tokenHead}")
private String tokenHead;
}``````java
@Bean
public FeignInterceptor authenticationInterceptor() {
return new FeignInterceptor(clientId, secret, authHeader, authHost, tokenHead);
}
clientId
и secret
, одновременно предоставляется право доступа к службе)clientId
и секрета
{
"clientId": "gate-demo-client",
"secret": "test"
}
http://[сервер развертывания ace-gate-way]:[конфигурируемый порт]/api/authen/auth
Ниже приведены конфигурационные данные из файла application.yml
проекта ace-gate-way
.
[${gate.api.header}]:[${gate.api.tokenHead}] [пробел] [волшебный токен]
Пример по умолчанию:
access-token: ApiGateToken eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJnYXRlLWRlbW8tY2xpZW50IiwiY3JlYXRlZCI6MTQ5OTk0NzAzNzE1NCwiZXhwIjoxNDk5OTU0MjM3fQ.eL3Ucd2Oh166PDcmHLsKK2A0uJZ6QPxLqRac6enQacBEgQwc2I0qJtkui1V0WjB70VWHpRbHgmzps_dM9jKg0A
Реализация в процессе
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )