[英]JBoss Wildfly 10: xnio ClassCastException when calling EJB3.1 on JBoss 7
[英]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应用程序,不能同时使用FORM
和BASIC
身份验证。
如果需要执行此操作,请创建两个具有共享代码库的独立应用程序。
参考:
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.