如何使用HTTP通过应用服务器域/安全域使用发布为@WebService的会话Bean进行身份验证
在一个网络项目中,可以使用web.xml将角色映射到组中,但我不知道如何在EJB项目中这样做。我认为用ejb-jar.xml是做不到的。
示例代码,它在没有角色注释的情况下运行良好:
@Stateless
@WebService(portName="RestrictedServicePort")
@DeclareRoles(value = "Administrators")
public class RestrictedServiceBean {
@RolesAllowed(value = "Administrators")
public String restrictedOperation() {
return "Secret information";
}
}错误:
<faultstring>[EJB:010160]Security Violation: User: '<anonymous>' has insufficient permission to access EJB: type=<ejb>基本凭据标题:
Authorization: Basic d2VibG9naWM6d2VsY29tZTE=
我怀疑它必须通过特定供应商的配置来完成。我使用的是WebLogic 10.3.6,Java 5/EJB3.0。
发布于 2015-03-19 19:40:41
解决了在任何web模块中添加角色映射的问题,但使用了专有的weblogic-ejb-jar.xml,如下所示:
<wls:security-role-assignment>
<wls:role-name>Administrators</wls:role-name>
<wls:principal-name>myweblogicgroup</wls:principal-name>
</wls:security-role-assignment>"myweblogicgroup“是在WebLogic安全领域中创建的组,用于对web服务进行身份验证的系统用户与该组相关联。
这个链接帮了我。
发布于 2015-01-01 16:23:27
Basic Auth通过策略
来自v10文档
Web服务可以有与其关联的零或多个WS-策略文件。WS-策略文件遵循WS-策略规范的指导原则。WebLogic服务器使用WS-策略文件来指定消息级安全性(数字签名和加密)和可靠消息传递功能的详细信息。可以将WS-Policy文件附加到Web服务端点,这意味着策略断言适用于Web服务端点的所有操作。还可以将WS-Policy文件附加到操作,这意味着策略断言仅适用于特定操作。此外,还可以将WS-Policy文件附加到入站或出站SOAP消息,或者两者都附加。
您似乎可以附加基本政策到您的服务:
<sp:TransportToken>
<wsp:Policy>
<sp:HttpBasicAuthentication/>
</wsp:Policy>
</sp:TransportToken>您可以通过管理控制台通过概述的这里步骤应用此自定义策略,也可以考虑引用Oracle-预配置策略之一。
将角色映射到组
WebLogic (v12) 文档在讨论EJB中@RolesAllowed的使用时提到了以下几点:
如果在类或类的方法上使用@RolesAllowed注释,还可以使用注释显式声明角色。 使用管理控制台在WebLogic服务器中创建安全角色。有关详细信息,请参阅Oracle WebLogic服务器管理控制台帮助中的“WebLogic”。
管理安全角色部分继续讨论scoped roles.
然后,您可以为包含高度敏感的业务逻辑的特定EJB创建作用域。在为EJB创建策略时,可以指定只有作用域角色才能访问EJB。
有关管理作用域角色的更多信息是这里。
https://stackoverflow.com/questions/27711748
复制相似问题