【问题标题】:Custom Security mechanism in Java EE 6/7 applicationJava EE 6/7 应用程序中的自定义安全机制
【发布时间】:2014-03-02 13:37:51
【问题描述】:

我想创建(由我自己实现)身份验证机制,它将是 插入我的 Java EE 应用程序。

据我所知,我必须实现 LoginModule 并将此实现与 不知何故的容器机制。但问题是我不知道该怎么做。 也许你知道我在哪里可以找到有关它的示例代码或教程?

换句话说,我想强制容器在任何时候调用我的类: 会调用身份验证、登录和注销。

示例实现: HttpServletRequest.login 方法将成功验证登录时只有偶数个字母的用户。

【问题讨论】:

    标签: security jboss7.x java-ee-6 java-ee-7 wildfly


    【解决方案1】:

    我相信独立于容器的方法是使用 JASPIC (JSR 196)。不幸的是,它看起来并不简单、健壮或记录得特别好。这是一个参考:http://arjan-tijms.blogspot.com/2012/11/implementing-container-authentication.html

    【讨论】:

      【解决方案2】:

      在阅读了 JAAS 之后,您应该基于 org.jboss.security.auth.spi.AbstractServerLoginModule(来自 org.picketbox/picketbox maven artifact )。然后将模块部署到您的应用中,并在 WildFly 的standalone.xml 中创建适当的安全域和领域,如下所示:

      <security-domain name="myDomain" cache-type="default">
        <authentication>
          <login-module code="com.example.TestLoginModule" flag="required" 
      module="deployment.sample.jar"/>
        </authentication>
      </security-domain>
      

      ...

      <security-realm name="MyRealm">
       <authentication>
         <jaas name="myDomain"/>
       </authentication>
      </security-realm>
      

      注意不同 JBoss AS 版本上的不同行为。 7.1.1 不允许您部署登录模块,您必须创建一个单独的 jboss 模块并将其与 org.picketbox 和 jboss.security 模块绑定。

      补充阅读: https://docs.jboss.org/author/display/WFLY8/Security+subsystem+configuration

      https://docs.jboss.org/author/display/WFLY8/Security+Realms

      http://java.dzone.com/articles/creating-custom-login-modules(有点过时,但给出了主要思想)

      【讨论】:

      • 我在哪里可以阅读到它?是否包含在 Jboss (WildFly) 教程中?
      • 我在帖子中添加了一些链接。首先查看 dzone ,应该可以让您了解需要什么。不幸的是,配置在新版本的 JBoss 中可能会有所不同(请确保模块属性的值)。
      • 感谢您的帮助。我调查过这个话题。我现在可以创建自己的登录模块,但我还有一个问题。你能看看吗? stackoverflow.com/questions/22026078/…
      【解决方案3】:

      【讨论】:

        猜你喜欢
        • 2013-08-21
        • 1970-01-01
        • 2013-02-19
        • 1970-01-01
        • 2013-06-15
        • 1970-01-01
        • 2015-12-02
        • 1970-01-01
        相关资源
        最近更新 更多