夸克斯 + 钥匙套 – HTTP1.1 403 Forbidden(禁止)

我在尝试 夸克斯 安全集成与 大氅

以下是我的休息端点

@Path("/jwt")
@RequestScoped
public class JWTRestController {

    @Inject
    @Claim(standard = Claims.preferred_username)
    Optional<JsonString> currentUsername;

    @GET
    @Path("/user")
    @Produces(MediaType.TEXT_PLAIN)
    @RolesAllowed({"user"})
    public String userData() {
        return "data for user ";
    }

    @GET
    @Path("/admin")
    @Produces(MediaType.TEXT_PLAIN)
    @RolesAllowed({"admin"})
    public String adminData() {
        return "data for admin ";
    }

}

我的应用属性

# Configuration file
quarkus.http.port=8082

# MP-JWT Config
mp.jwt.verify.publickey.location=http://localhost:8180/auth/realms/demo/protocol/openid-connect/certs
mp.jwt.verify.issuer=http://localhost:8180/auth/realms/demo
quarkus.smallrye-jwt.auth-mechanism=MP-JWT
quarkus.smallrye-jwt.realmName=quarkus-keycloak-demo
quarkus.smallrye-jwt.enabled=true

我有一个运行中的实例 大氅 在我的本地开发机器上,在端口8180上,我已经完成了所有的keycloak的必要条件,并创建了领域、用户、角色。

我可以从钥匙套中获取令牌,如下所示——–。

export access_token=$(\
    curl -X POST http://localhost:8180/auth/realms/demo/protocol/openid-connect/token \
    --user demo-client:e0da2ad7-5f4c-49b3-ae54-dbd7a28d532a \
    -H 'content-type: application/x-www-form-urlencoded' \
    -d 'username=user&password=user&grant_type=password' | jq --raw-output '.access_token' \
 )

但在尝试访问休息点时,这里有一个问题。jwtuser

curl -v -H "Authorization: Bearer $access_token" http://localhost:8082/jwt/user

其结果是

< HTTP/1.1 403 Forbidden
< Content-Length: 9
< Content-Type: text/plain;charset=UTF-8
<
* Connection #0 to host localhost left intact
Forbidden* Closing connection 0

这里是token的详细信息(我用jwt.io调试器查看token内部的情况

enter image description here

衷心感谢

解决方案:

请使用quarkus-oidc,遵循 https:/quarkus.ioguidessecurity-openid-connect。 为接受不记名令牌的服务应用提供服务。

给TA打赏
共{{data.count}}人
人已打赏
未分类

Plot.ly dash-daq BooleanSwitch(布尔开关)

2022-9-8 3:07:43

未分类

用cplex输出一个二元变量数组。

2022-9-8 3:18:35

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索