我想创建(由我自己实现的)验证机制,该机制将被插入到我的Java EE应用程序中,并将被 。Java EE 6/7应用程序中的自定义安全性机制
据我所知,我必须实现LoginModule并以某种方式将此实现与 容器机制连接起来。但问题是我不知道该怎么做。 也许你知道我在哪里可以找到有关它的示例代码或教程?
换句话说,我想强制容器调用我的类,只要方法: 认证,登录和注销被调用。
示例实现: HttpServletRequest.login方法将成功验证登录中只有偶数个字母的用户。
我想创建(由我自己实现的)验证机制,该机制将被插入到我的Java EE应用程序中,并将被 。Java EE 6/7应用程序中的自定义安全性机制
据我所知,我必须实现LoginModule并以某种方式将此实现与 容器机制连接起来。但问题是我不知道该怎么做。 也许你知道我在哪里可以找到有关它的示例代码或教程?
换句话说,我想强制容器调用我的类,只要方法: 认证,登录和注销被调用。
示例实现: HttpServletRequest.login方法将成功验证登录中只有偶数个字母的用户。
阅读后关于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(这是一个有点过时,但给人的主要思想)
您应该研究JAAS。
维基百科给出了一个很好的概述: http://en.m.wikipedia.org/wiki/Java_Authentication_and_Authorization_Service
这将提供所有的信息和教程,您需要: http://docs.oracle.com/javase/7/docs/technotes/guides/security/
教程与示例应用程序: http://download.java.net/jdk8/docs/technotes/guides/security/jaas/tutorials/GeneralAcnOnly.html
并检查了这一点,在SO : JAAS for human beings
我相信这样做的容器独立的方法是使用JASPIC (JSR 196)。不幸的是,它看起来并不简单,可靠,或者特别有据可查。以下是参考:http://arjan-tijms.blogspot.com/2012/11/implementing-container-authentication.html。
我在哪里可以读到它?它是否包含在Jboss(WildFly)教程中? – pWoz
我添加了一些链接到帖子。先查看一下dzone,应该给你一些关于需要什么的想法。不幸的是,在较新版本的JBoss中,配置可能会有所不同(确保模块属性的值)。 – mcmil
谢谢你的帮助。我调查了这个话题。我现在可以创建自己的登录模块,但我还有一个问题。你可以看看它吗? http://stackoverflow.com/questions/22026078/custom-login-module-and-httpservletrequest-authenticatehttpservletresponse-resp – pWoz