2014-02-05 43 views
3

我想创建(由我自己实现的)验证机制,该机制将被插入到我的Java EE应用程序中,并将被 。Java EE 6/7应用程序中的自定义安全性机制

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

换句话说,我想强制容器调用我的类,只要方法: 认证,登录和注销被调用。

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

回答

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(这是一个有点过时,但给人的主要思想)

+0

我在哪里可以读到它?它是否包含在Jboss(WildFly)教程中? – pWoz

+0

我添加了一些链接到帖子。先查看一下dzone,应该给你一些关于需要什么的想法。不幸的是,在较新版本的JBoss中,配置可能会有所不同(确保模块属性的值)。 – mcmil

+0

谢谢你的帮助。我调查了这个话题。我现在可以创建自己的登录模块,但我还有一个问题。你可以看看它吗? http://stackoverflow.com/questions/22026078/custom-login-module-and-httpservletrequest-authenticatehttpservletresponse-resp – pWoz