当前位置: 首页 > 知识库问答 >
问题:

保护EJB3。1-Webservice(在JBoss Wildfly 8.2中)

汲灿
2023-03-14

我有一个几乎完成的EJB3网络项目。1在Wildfly 8.2中作为战争部署。它由一个带有表单身份验证(auth-method-form)的自编JAAS域保护。

现在我想添加一个EJB-Webservice,它基本上被定义

@Stateless
@WebService
public class ProductImportWebservice {
    @Resource 
    WebServiceContext wsContext;

    [...]

    @WebMethod
    public Product createOrFind(String name) {
       [...]
    }
}

webservice按预期工作,但现在我有一个问题,我想通过用户名/密码保护对webservice的访问。所以我用

@RolesAllowed("ADMIN")

这是JAAS身份验证中的有效角色。效果:SOAP客户端获得Answare“Requeust not allowed/not authenticated”(请求不允许/未验证),但没有获得任何验证请求,并且忽略了使用基本验证的尝试。如果我将web服务的URL添加到web中的安全约束中。xml我收到一个身份验证请求。。。但现在的问题是,它是基于表单的身份验证——正如浏览器用户所期望的那样。这对于“普通”SOAP客户端是不可用的:-(

现在的具体问题是:有没有一种方法既可以对Web服务进行基本身份验证,也可以对应用程序的其余部分进行基于表单的身份验证?

我认为唯一的其他方法是将WAR包拆分为EAR包,并在不同的网络上下文中部署网络服务。

共有1个答案

姬捷
2023-03-14

现在的具体问题是:有没有一种方法既可以对Web服务进行基本身份验证,也可以对应用程序的其余部分进行基于表单的身份验证?

不能对同一web应用程序同时使用表单基本身份验证。

如果需要这样做,请使用共享的代码库创建两个独立的应用程序。

参考:

https://docs.oracle.com/javaee/7/tutorial/security-webtier002.htm#JEETT01227

auth method子元素配置web应用程序的身份验证机制。元素内容必须是NONE、BASIC、DIGEST、FORM或CLIENT-CERT。

 类似资料:
  • 我遇到此错误,不知道如何修复: 这是: @无状态的公共类AlertFacade扩展了AbstractFacade{@PeristextContext(unitName="flams_pu")私有EntityManager em; 我在JSF托管bean中使用。 EJB应该是可序列化的吗?我不明白。请帮帮忙

  • 我正在JBoss-AS7下开发一个RESTeasy JSON API。 null 现在我想保护这两个人;RESTeasy API和Web服务器。 让我说说我的结构: 我用用户名-密码将用户保存在数据库中。目前只有这些用户。 我有一个登录页面来验证我的用户(我不想弹出http basic auth和任何解决方案) REST API的客户机是浏览器(而不是web服务器)。加载静态页面,然后通过REST

  • 问题内容: 我正在使用基于Node.js的https服务器,该服务器使用HTTP Basic进行身份验证(这很好,因为数据是通过SSL加密连接发送的)。 现在我想提供一个Socket.io连接 加密和 仅适用于经过身份验证的用户。 问题是如何做到这一点。我已经发现在连接到套接字时需要在客户端JavaScript代码中指定,但是如何在服务器端强制套接字连接只能在SSL上运行,并且仅适用于经过身份验证

  • 问题内容: JKS(Java密钥存储)文件是否已加密?它们是否为加密密钥提供全面保护,还是我仅需要依赖访问控制? 有没有办法确保密钥受到保护? 我对详细的细节感兴趣,包括算法,密钥管理等。这些可配置的任何一个吗? 问题答案: 它们已加密。 该算法取决于提供者。提供者将根据密码返回密钥/证书。如果需要强安全性,请找到使用强加密的密钥库提供程序。

  • 简介 Laravel 可以轻松地保护应用程序免受 跨站点请求伪造 (CSRF) 攻击,跨站点请求伪造是一种恶意攻击,它凭借已通过身份验证的用户身份来运行未经过授权的命令。 Laravel 会自动为每个活跃用户的会话生成一个 CSRF「令牌」。该令牌用于验证经过身份验证的用户是否是向应用程序发出请求的用户。 无论何时,当您在应用程序中定义HTML表单时,都应该在表单中包含一个隐藏的CSRF标记字段,

  • 问题内容: 我正在使用Golang来构建API Rest。我有一个包含很多字段的结构(超过100个),因此我使用了来自客户端的值来分配给该结构,效果很好。 现在,我要避免用户在任何字符串字段中插入Javascript代码,在结构中我定义了bool,strings,byte []和int值。因此,现在我想知道验证这一点的最佳方法是什么。 我正在考虑仅在字符串字段中对结构进行interate并进行如下