我正在编写一个 Swing 应用程序客户端(它通过 webstart 运行,我正在使用 glassfish)。在应用程序类中,我有:
@EJB private static MyBean myBean;
在MyBean
我有:
@Remote
public interface MyBean {
public int getRand();
}
@DeclareRoles(("admin"))
@Stateful(name="MyBean")
public class MyBeanImpl implements MyBean {
@RolesAllowed(("admin"))
public int getRand() {
return 9; // Guaranteed to be random
}
}
到目前为止,一切都很好。我使用启动应用程序javaws http://server/app/app-client
,它要求用户/通行证并正确验证(使用来自 glassfish 的 fileRealm)。
我有两个问题:
- 它似乎试图立即进行身份验证(当引用 bean 时)而不是当我尝试调用该方法时。我可以忍受这个。
- 我想使用我自己的登录对话框。部分是出于美观的原因,也是出于优雅的错误处理、重试等
所以我需要指定一个回调。使用new LoginContext("fileRealm", myCallback)
我收到有关 fileRealm 没有登录模块的错误。我已经尝试了来自网络的各种混合示例,但很少有专为应用程序客户端设计的。