JBoss Seam 结合使用 LDAP Indetity Store 和 JPA Identity Store

发布于 2024-08-16 10:55:11 字数 190 浏览 8 评论 0原文

我最近一直致力于 JBoss Seam 项目 (v2.1.1),我想在该项目中针对 LDAP/AD 进行身份验证并将权限存储在自定义数据库模式中。

文档指出这是可能的,我看到了一个教科书示例,但它对我不起作用,因为数据库模式是由 Hibernate 管理的。有没有人做过类似的事情?谁能提供一个很好的例子吗?

提前致谢。 --克托佩特

I've been recently working on a JBoss Seam project (v2.1.1) where I want to autheticate against LDAP/AD and store premissions in a custom DB schema.

The documentation states that this is possible and I saw a text-book example that doesn't work for me since the DB schema is managed by Hibernate. Has anyone out there done something similar? Can anyone provide a good example?

Thanks in advance.
--ctopete

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

無處可尋 2024-08-23 10:55:11

我个人开发了一个这样的解决方案。我使用 jCifs 通过 NTLM 对所有用户进行身份验证,然后使用用户名/域对从自定义数据库加载角色和权限。

jCifs 非常容易配置,只需在 web.xml 中设置这些过滤器: http:// /jcifs.samba.org/src/docs/ntlmhttpauth.html

然后在您的 Authenticator 类中,在authenticate() 方法中使用这些来读取用户名和域:

@Name("authenticator")
public class Authenticator {

    @In
    Context sessionContext;

    ...

    public boolean authenticate() {

        String username = ((NtlmPasswordAuthentication) sessionContext.get("NtlmHttpAuth")).getUsername();
        String domain = ((NtlmPasswordAuthentication) sessionContext.get("NtlmHttpAuth")).getDomain();

    ...

    }

I've personally developed a solution like this. I've used jCifs to authenticate all the users through NTLM, and then use the username/domain pair to load roles and permissions from a custom database.

jCifs is super easy to configure, just set these filters in your web.xml: http://jcifs.samba.org/src/docs/ntlmhttpauth.html

then in your Authenticator class, in the authenticate() method use these to read username and domain:

@Name("authenticator")
public class Authenticator {

    @In
    Context sessionContext;

    ...

    public boolean authenticate() {

        String username = ((NtlmPasswordAuthentication) sessionContext.get("NtlmHttpAuth")).getUsername();
        String domain = ((NtlmPasswordAuthentication) sessionContext.get("NtlmHttpAuth")).getDomain();

    ...

    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文