Glassfish 3.1.1:在 RESTful Web 服务中检索 HTTP 身份验证

发布于 2024-12-29 02:25:30 字数 297 浏览 0 评论 0原文

我正在使用基于我的客户表的 HTTP 身份验证。用户通过身份验证后,将调用静态 Web 服务。但是我如何在 Web 服务中访问 HTTP 身份验证(HttpRequest 的标头数据)? 我的代码如下所示:

@GET
@Path("{id}") 
@Produces({"application/xml"})
public ObjectList read(@PathParam("id") Integer id) {
... //how to get here the HTTP-Username and Password?
}

I´m using HTTP-Authentication based on my customer-table. After the user is authenticated a restful webservice is called. But how can I access in the webservice the HTTP-Authentication (the Header Data of the HttpRequest)?
My code looks like this:

@GET
@Path("{id}") 
@Produces({"application/xml"})
public ObjectList read(@PathParam("id") Integer id) {
... //how to get here the HTTP-Username and Password?
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

<逆流佳人身旁 2025-01-05 02:25:30

为了获取Principal及其角色,请在类主体或方法输入参数中注入@C​​ontext SecurityContext

import javax.ws.rs.core;
//
public ObjectList read(
    @PathParam("id") Integer id,
    @Context SecurityContext sc) {
    String principalUserName = sc.getUserPrincipal().getName();
    if (sc.isUserInRole("MyRole")) {
        return new MyRoleResource();
    } else {
        return new MyDefaultRoleResource();
    }
}

In order to get the Principal and its role, inject @Context SecurityContext in the class body or in the method input parameters.

import javax.ws.rs.core;
//
public ObjectList read(
    @PathParam("id") Integer id,
    @Context SecurityContext sc) {
    String principalUserName = sc.getUserPrincipal().getName();
    if (sc.isUserInRole("MyRole")) {
        return new MyRoleResource();
    } else {
        return new MyDefaultRoleResource();
    }
}
伤感在游骋 2025-01-05 02:25:30

向您的方法添加更多参数,如下所示:

import javax.ws.rs.HeaderParam;

// ...

public ObjectList read(
    @PathParam("id") Integer id,
    @HeaderParam("user-agent") String userAgent,
    @HeaderParam("X-auth-token") String authToken) ...

Add more parameters to your method like this:

import javax.ws.rs.HeaderParam;

// ...

public ObjectList read(
    @PathParam("id") Integer id,
    @HeaderParam("user-agent") String userAgent,
    @HeaderParam("X-auth-token") String authToken) ...
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文