1 Star 0 Fork 338

s信志s / AG-Gate

forked from 江离 / AG-Gate 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

简介

AG-Gate 是一个基于spring cloud的用户资源授权、api管理授权的网关系统,以jwt交互的鉴权token来实施,支持基于Eureka注册中心下的服务鉴权和拦截,同时扩展Eureka下服务失效的通知扩展。 img img

功能列表

  • 用户管理
  • 角色管理
  • 菜单、动作管理
  • 操作日志
  • 客户端注册
  • 服务管理和授权
  • 网关黑白名单和IP限制(待完善)
  • 服务状态监控与提醒(待完善)
  • 服务追踪(待完善)

快速运行

部署指南

  • 运行ace-gate-way下db脚本
  • 启动一个redis
  • 修改ace-gate-way下的redis配置和数据库配置
  • jdk1.8
  • IDE插件一个,lombok插件,具体百度即可

启动指南

关于服务失效提醒

img 可以根据需要扩展不同的消息通知,也可以做钩子结合实效后自动重启服务。

关于服务拦截和feign鉴权

具体例子可以参考ace-gate-demo

服务提供端如何开启权限拦截

maven依赖,如果没有自行打包

<dependency>
    <groupId>com.github.wxiaoqi</groupId>
    <artifactId>ace-gate-agent</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>

配置引入

gate:
  client:
    # 地址为api-gate所在ip端口
    authHost: http://localhost:8765/api/authen
    # 鉴权头部标志,与客户端一致
    authHeader: access-token

配置启用

/**
 * Created by ace on 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);
    }
}

服务拦截启用,rest方法加上@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));
}

Feign客户端如何自动加上鉴权信息

maven依赖,如果没有自行打包

<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;

    @Bean
    public FeignInterceptor authenticationInterceptor() {
        return new FeignInterceptor(clientId, secret, authHeader, authHost, tokenHead);
    }

}

欢迎交流

img

空文件

简介

AG-Gate 是一个基于spring cloud的用户资源授权、api管理授权的网关系统,以jwt交互的鉴权token来实施,支持基于Eureka注册中心下的服务鉴权和拦截,同时扩展Eureka下服务失效的通知扩展。 展开 收起
Java
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/wwh/ace-gate.git
git@gitee.com:wwh/ace-gate.git
wwh
ace-gate
AG-Gate
master

搜索帮助