繁体   English   中英

安全的EJB3.1-Webservice(在JBoss Wildfly 8.2中)

[英]Secure EJB3.1-Webservice (in JBoss Wildfly 8.2)

我有一个即将完成的Web项目,其中EJB3.1被部署为Wildfly 8.2中的WAR。 它由具有表单身份验证(auth-method FORM)的自写JAAS领域保护。

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

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

    [...]

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

Web服务可以按预期工作,但是现在我有一个问题,我想通过用户名/密码保护对Web服务的访问。 所以我用注释了webservice或@WebMethod

@RolesAllowed("ADMIN")

这是JAAS身份验证中的有效角色。 效果:SOAP客户端获得“不允许/未经身份验证的请求”的答案-但未获得身份验证请求,并且使用BASIC身份验证的尝试将被忽略。 如果将Web服务的URL添加到web.xml中的安全性约束中,则会收到身份验证请求...,但是现在的问题是,这是基于表单的身份验证-使用浏览器的用户会期望它。 这对于“正常”的SOAP客户端不可用:-(

现在的具体问题是:是否可以同时使用-针对Web服务的BASIC身份验证针对其余应用程序的基于FORM的身份验证?

我看到的唯一另一种方法是将WAR包拆分为EAR包,然后在不同的Web上下文中部署Web服务。

现在的具体问题是:是否可以同时使用-针对Web服务的BASIC身份验证和针对其余应用程序的基于FORM的身份验证?

对于同一Web应用程序,不能同时使用FORMBASIC身份验证。

如果需要执行此操作,请创建两个具有共享代码库的独立应用程序。

参考:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM