Java EJB身份验证

Java EJB身份验证,java,ejb,jaas,Java,Ejb,Jaas,下面是我试图做的:我有一个身份验证EJB,它可以通过验证用户名和密码向用户授予一对密钥和令牌。客户端应该在每次调用时将票据传递给远程EJB,这样的票据应该能够通过EJB方法获取,或者interceptor和EJB/或interceptor应该验证票据并确定调用是否有效 我不想将ticket作为参数添加到每个需要身份验证的函数中,我相信应该有一种方法来实现这一点。我已经阅读了几篇关于JAAS自定义登录模块的文章,但仍然找不到一种非特定于供应商的方法来实现这一点。我试图避免特定于供应商的实现 如

下面是我试图做的:我有一个身份验证EJB,它可以通过验证用户名和密码向用户授予一对密钥和令牌。客户端应该在每次调用时将票据传递给远程EJB,这样的票据应该能够通过EJB方法获取,或者interceptor和EJB/或interceptor应该验证票据并确定调用是否有效

我不想将ticket作为参数添加到每个需要身份验证的函数中,我相信应该有一种方法来实现这一点。我已经阅读了几篇关于JAAS自定义登录模块的文章,但仍然找不到一种非特定于供应商的方法来实现这一点。我试图避免特定于供应商的实现


如果JAAS不能完成这项工作,EJB中是否有类似于header的内容?

您不能只使用角色来执行此授权吗?与其将票证授予用户,不如为其分配一个角色


然后,只需使用内置的功能来检查用户是否在角色中。

尽管我同意@EdH,即使用@RunAs,但您可以通过向EJB上下文添加令牌来完成您想要的任务

Red Hat通过使用界面做了类似的事情。 通过查看实现EJBClient接收器的代码,您可以了解如何在客户端修改EJB上下文并添加令牌:

context.setReceiverInvocationContextnew ejbReceiverInvocationContext、receiverContext

context.sendRequest