如何在Tomcat上为Guvnor进行身份验证?

时间:2013-05-31 17:30:43

标签: authentication tomcat drools drools-guvnor

我在Tomcat 6.0服务器上运行Drools Guvnor,但我遇到了认证工作正常的最糟糕时间。这适用于一家小公司,因此我不需要很多用户,并且LDAP会造成大量的过度杀伤(据报道,这是一个巨大的痛苦)。我的第一个想法是将它与JAAS联系起来,它有一些工具。不幸的是,我无法对在Tomcat上使用JAAS的指令做出正面或反面的说明。从我的阅读中,第一步是“编写自己的JAAS实现”,这显然是疯了。 (我真的对Tomcat一无所知,对一般的服务器管理也不了解,这可能没有帮助。)

所以,螺丝JAAS,我说,我将只使用Tomcat的内置基本身份验证,忘记给不同用户提供不同的权限。当然,基本的HTTP身份验证通常是一个糟糕的想法,但服务器位于防火墙后面,无论如何都会阻止来自办公室外的访问,因此它应该足够了。所以我向tomcat-users.xml添加了一些用户,然后破解了开放web.xml并添加了这个:

<security-role>
    <role-name>manager</role-name>
</security-role>
<security-role>
    <role-name>guvnor</role-name>
</security-role>

<login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>Guvnor web app</realm-name>
</login-config>

<security-constraint>
    <web-resource-collection>
        <web-resource-name>Whole Guvnor app</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>manager</role-name>
        <role-name>guvnor</role-name>
    </auth-constraint>
</security-constraint>

它花了一些试验和错误,但似乎工作正常。转到网络应用程序带来了用户名/密码挑战,登录工作,一切都很好。但是有一个大问题:我的规则引擎实现中的KnowledgeAgent在尝试下拉打包规则时开始遇到401错误。当然,我将ChangeSet.xml我使用的用户名和密码更改为有效的用户名和密码,但它仍然无效。

据我所知,当我使用Tomcat喜欢的用户名/密码时,Guvnor的DemoAuthenticator会查看它们,注意到用户名和密码不一样,并拒绝访问。 beans.xml中有一行似乎正在加载DemoAuthenticator,但是将其评论出来似乎没有做任何事情。 (我不知道为什么这不会发生在网络应用中。)我提出的另一种可能性是,既没有设置basicAuthenticationusernamepassword也没有将用户名和密码添加到URL是以Tomcat识别为基本HTTP身份验证的格式发送身份验证。我不确定如何区分它们。在这一点上,我不知道我做错了什么,我不知道如何弄清楚我做错了什么。有没有人有任何建议?

0 个答案:

没有答案