问题标签 [jsr196]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
6847 浏览

java - 如何覆盖 glassfish 中的 j_security_check?

我目前FORM在 glassfish v2.1 中使用基于身份验证来登录用户,它工作正常。我想切换到ProgrammaticLogin并且我希望能够获取最初请求的 URL(即在重定向到登录页面之前)并在我的编程登录代码中使用它,以便在身份验证后将用户重定向回请求的页面。

我已经看到了源代码j_security_check——在我的例子中是FormAuthenticator(catalina 代码库),它将初始请求保存在会话中的一个SavedRequest对象中,但该会话是一个StandardSession而不是HttpSession所以没有直接的方法来访问它。

还是我应该将身份验证机制从FORM其他东西更改?

谢谢!

0 投票
3 回答
1057 浏览

java - 如何将 OpenID 集成到 GlassFish 中?

我想将 OpenID 作为身份验证机制集成到 GlassFish 3.1(预览版)中。开发指南JSR 196可用于实现自定义身份验证机制,如 OpenID。

是否已有符合 JSR 196 的 GlassFish OpenID 身份验证器?或者是否有教程如何编写(在博客圈的某个地方)?

0 投票
2 回答
2028 浏览

java - 如何在 GlassFish 中通过 JSR 196 身份验证获得角色?

我想在 GlassFish 3 中使用符合JSR 196的自定义身份验证模块。接口 javax.security.auth.message.ServerAuth 具有以下方法:

AuthStatus 可以是几个常量之一,例如 FAILURE 或 SUCCESS。

问题是:如何使用 JSR 196 从“角色数据库”中获取角色?

示例:服务器接收带有 SSO 令牌(例如 CAS 令牌)的请求,检查令牌是否有效,使用通过 JDBC 从数据库或通过 http 从 REST 服务获取的角色填充远程用户对象。

角色获取是否在 JSR 196 的范围内?这怎么可能实施?

我是否必须将 JSR 196 与JSR 115一起使用才能使用自定义身份验证和自定义角色源?

0 投票
1 回答
5105 浏览

weblogic - 使用 Jaspic/JSR196 模块的 weblogic 中的会话失效

我们开发了一个 jsf web 应用程序,其中包含一个由 webapp 以编程方式注册的 Jaspic/JSR196 模块。

我们按照以下博客中的说明来实现这一点: http: //arjan-tijms.blogspot.pt/

该解决方案适用于验证用户:我们有一个接收用户名和密码并调用 request.authenticate 方法的 bean。该请求在服务器身份验证模块 (SAM) 中得到验证,并且用户通过了身份验证。

问题是,在 webapp 中导航时,会话似乎经常失效,这使得用户被重定向到登录页面。当 request.getUserPrincipal 在访问受保护的资源时返回 null 时,SAM 模块实现将用户重定向到登录页面。我们没有找到这种行为的模式。

在分析日志时,我们发现了一些抛出的异常:(有时这些异常会显示在网页中。)

HttpSession 无效

会话失效正在使用不同的线程进行

响应已提交

以下日志条目显示未找到有效会话,因此用户被重定向到登录页面:

似乎容器使 Http Sessions 无效。但我们无法理解为什么。有什么帮助吗?

0 投票
1 回答
334 浏览

java - Glassfish 中的服务器身份验证模块转发

我找到了为 Glassfish 开发自己的服务器身份验证模块 (SAM) 的指南:http: //docs.oracle.com/cd/E18930_01/html/821-2418/gizel.html

验证某些凭据(例如在 HTTP Auth 标头中)似乎很简单,但我的问题是:

我可以开发我的 SAM 以在用户未登录的情况下将其转发到特定页面吗?

这是指南中的示例:

0 投票
3 回答
1739 浏览

jakarta-ee - Jaspic 模块未将主体传播到 JBoss 7.4 中的本地 EJB

我有一个自定义的 JSR-196 模块,它基本上委托给一个服务,该服务将角色委托给 OAuth“授权”调用。

它确实可以从 servlet 工作(request.getUserPrincipal() 工作正常)。

它不会传播到 EJB 调用,其中 SessionContext.getCallerPrincipal() 返回具有“匿名”而不是预期用户名/角色的 SimplePrincipal。

MycompanyPrincipal 是一个简单的类,具有简单的 getName() 和一些自定义属性。

似乎 SubjectInfo.getAuthenticatedSubject() 没有主体。

我设法为此做出了一个丑陋的解决方法,请参阅下面的“// WORKAROUND”。

尽管如此,我还是想以正确的方式来做(如果可能的话,甚至是标准/便携式)。

这是我在standalone.xml 中定义我的安全域的地方:

这是我的 jboss-web.xml:

该模块本身是我的应用程序的一部分(我的战争中的一个罐子)。EJB 在其他 JAR 中定义,也最终在 WEB-INF/lib 中。

这是我的模块(将 ejb 调用更改为静态方法调用):

0 投票
1 回答
969 浏览

java - 如何在 JASPIC 中保存经过身份验证的用户?

我开发了一个安全认证模块 (SAM) 并实现了该validateRequest方法。我还有一个简单的 webapp 配置为使用这个 SAM。

在我的validateRequest方法中,我检查了 clientSubject 并设置了CallerPrincipalCallback一个硬编码的用户名和一个GroupPrincipalCallback硬编码的组名:

我注意到每次在我的 web 应用程序中刷新 servlet 时,客户端主题都是空白的,logger.debug("Client: {}", clientSubject);

是否可以以某种方式“保存”一个主题,以便将该主题附加到会话中,并且我每次都可以简单地跳过登录同一个用户?

编辑我想我找到了一种方法,方法是手动将其存储在HttpSessionreq.getSession().setAttribute("subject", user);不漂亮,但它有效。

0 投票
2 回答
237 浏览

java - 是否可以在 glassfish 中以编程方式识别服务器身份验证模块的存在

我在 Glassfish 中启用了服务器身份验证模块 (JSR196)。该模块按预期工作,但是我需要以编程方式确定 servlet 中是否存在身份验证模块。

有什么方法可以使用 java 检查身份验证模块的存在吗?