You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为GeneXus中的WSDL服务添加身份认证

GeneXus 17U10 Web服务身份认证设置方法

GeneXus 17U10完全支持为Web服务添加身份认证,以下是几种常用的实现方式及操作步骤:

1. HTTP Basic认证

  • 打开目标Web服务对象(Procedure或专门的Web Service对象),进入属性面板。
  • 在Security分类下找到Authentication Mode,选择Basic。
  • 配置用户验证逻辑:可以关联GeneXus内置的用户管理系统,或者在Web服务的Before事件中自定义验证代码,示例如下:
    Event Before
        &AuthHeader = HttpRequest.Headers.Get("Authorization")
        &Credentials = &AuthHeader.Substring(6).DecodeBase64()
        &Username = &Credentials.Split(":")[1]
        &Password = &Credentials.Split(":")[2]
        
        If Not ValidateUser(&Username, &Password)
            HttpResponse.StatusCode = 401
            HttpResponse.StatusDescription = "Unauthorized"
            Return
        EndIf
    EndEvent
    
  • 保存并重新生成、发布Web服务后,调用方需在请求头中携带Authorization: Basic <base64编码的用户名:密码>。

2. JWT令牌认证

  • 通过GeneXus Marketplace安装官方JWT扩展(搜索“JWT”即可找到)。
  • 在Web服务的Before事件中添加Token验证逻辑:
    Event Before
        &AuthHeader = HttpRequest.Headers.Get("Authorization")
        If &AuthHeader.IsEmpty() Or Not &AuthHeader.StartsWith("Bearer ")
            HttpResponse.StatusCode = 401
            Return
        EndIf
        
        &Token = &AuthHeader.Substring(7)
        &JwtHandler = new()
        If Not &JwtHandler.ValidateToken(&Token, &SigningKey) Or &JwtHandler.Claims.Get("exp") < Now()
            HttpResponse.StatusCode = 401
            Return
        EndIf
        
        // 提取Token中的用户信息用于业务逻辑
        &CurrentUserId = &JwtHandler.Claims.Get("userId")
    EndEvent
    
  • 调用方需先获取有效JWT令牌,请求时携带Authorization: Bearer <令牌>。

3. 应用服务器级认证

  • 若Web服务部署在Tomcat、IIS等服务器上,可直接利用服务器自带的安全机制:
    • 以Tomcat为例,在web.xml中配置安全约束、用户角色及凭证;
    • 在GeneXus的Web服务属性中启用Use Server Authentication;
    • 服务器会在请求到达GeneXus服务前完成身份校验,未通过的请求直接返回401。

不同认证方式适配不同场景:Basic认证适合内部测试或低安全需求场景,JWT适合分布式系统的无状态认证,服务器级认证适合已有成熟安全体系的环境。

内容的提问来源于stack exchange,提问作者Nicola

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 10:01:21