我在这里写了一个名为jCasbin的Java授权库:Merge
。我想为Vert.x编写一个自定义授权插件,以使用jCasbin作为授权后端(确定是否允许基于策略规则的请求)。但我不知道该怎么做。
我看到Vert.x的文档有这样一个页面:https://github.com/casbin/jcasbin。但是那里提供的所有实现(如MongoDB auth,Shiro auth)都包含身份验证和授权。我只想提供授权。有办法吗?什么是最好的步骤?
答案 0 :(得分:0)
要实施仅AuthZ
提供商,您应该查看JWT
提供商:https://github.com/vert-x3/vertx-auth/tree/master/vertx-auth-jwt
请记住,您应该忽略方法generateToken
,因为这些方法是帮助AuthN
。
所以基本上你需要实现以下方法:
@Override
public void authenticate(JsonObject authInfo,
Handler<AsyncResult<User>> resultHandler) {
...
}
authInfo
对象应包含您需要的令牌或任何有效负载,然后您将执行断言,如果它们是好的,则返回User
个对象。
User
对象将用于执行AuthZ
。您的对象应该实现:
@Override
public void doIsPermitted(String permission,
Handler<AsyncResult<Boolean>> handler) {
...
}