关于2个问题,我想咨询你。
背景:我编写了一个测试,Java EE应用程序并添加了声明性安全性。该应用程序部署在Glassfish 3.1上。对于单元测试,我将JUnit与嵌入式容器一起用于具有本地接口的所有bean。对于appliaction的入口点,SessionFacde bean有唯一的远程接口,我写了一个简单的客户端来获取对SessionFace bean的引用。我仅为SessionFacade bean应用的安全注释。
(问题1:建议使用安全性的单元测试策略是什么?如果我将一个简单的应用程序客户端用于sessionFacade,它可以吗?(其他(本地)bean不受影响那里没有应用安全注释。))
问题2:我应该如何从appliaction客户端访问SessionFacde?如果您可以在这里复制application-client.xml的一些代码示例并获取对JNDI服务的引用,我真的很高兴。这样可以省去很多时间。这个问题类似于Java EE 6 Application Client login下的那个问题,但我发现了一个解释(http://docs.oracle.com/cd/E18930_01/html/821-2418/beacm.html)并没有真正推荐它,因为它将安全负担加载回开发人员而不是框架。见下文:
“[...]程序化登录允许应用程序开发人员绕过 GlassFish Server支持的身份验证机制和提要 认证数据直接到安全服务。虽然灵活, 如果没有一些理解,就不应该使用这种能力 安全问题。
由于此机制绕过了容器管理的身份验证 过程和顺序,应用程序开发人员必须非常小心 确保在访问任何身份验证之前建立身份验证 限制资源或方法。它也是应用程序 开发人员有责任验证登录尝试的状态 并相应地改变应用程序的行为。
程序化登录状态不一定会在会话中持续存在 或参与单点登录。[...]“
谢谢你到目前为止已阅读过它。 亲切的问候, 塔马斯
备注:由于我在撰写原帖后没有回复,我想说回答第二个问题就足够了。这会帮助我继续下去。谢谢,Tamas