是否有人使用BlazeDS RemoteObject能够通过JBoss DatabaseLoginModule登录策略检索经过身份验证的用户角色?BlazeDS 3.2.0和JBoss 5.1 DatabaseServerLoginModule
我正在使用BlazeDS 3.2.0和JBoss 5.1。我可以成功进行身份验证,但我,拥有未经授权角色的用户仍然可以登录。我在默认/ jbossweb.sar/server.xml中“严”改变了境界,如下图所示:
<Realm className="org.jboss.web.tomcat.security.JaccAuthorizationRealm" certificatePrincipal="org.jboss.security.auth.certs.SubjectDNMapping" allRolesMode="strict" />
相同的登录模块在其他Web应用程序中使用,它工作得很好。在默认情况下/ conf目录/登录-config.xaml我:
<application-policy name="MyPolicy">
<authentication>
<login-module code = "org.jboss.security.auth.spi.DatabaseServerLoginModule" flag="required">
<module-option name = "dsJndiName">java:/DefaultDS</module-option>
<module-option name = "principalsQuery">SELECT PASSWD FROM USERS WHERE USER_ID=?</module-option>
<module-option name = "rolesQuery">SELECT ROLE_ID, 'Role' FROM ROLES WHERE USER_ID=?</module-option>
<module-option name= "hashUserPassword">true</module-option>
<module-option name= "hashAlgorithm">SHA-256</module-option>
<module-option name= "hashEncoding">base64</module-option>
</login-module>
</authentication>
</application-policy>
其他详情: - WEB-INF /的jboss-web.xml中
<jboss-web>
<security-domain flushOnSessionInvalidation="false">java:/jaas/MyPolicy</security-domain>
</jboss-web>
WEB-INF/context.xml的
<Context>
<Valve className="flex.messaging.security.TomcatValve" />
</Context>
WEB-INF /柔性/ services-config.xml中
<security>
<login-command class="flex.messaging.security.TomcatLoginCommand" server="JBoss">
<per-client-authentication>false</per-client-authentication>
</login-command>
<security-constraint id="custom-admin-access">
<auth-method>Custom</auth-method>
<roles>
<role>ADMIN</role>
</roles>
</security-constraint>
</security>
WEB-INF /flex/remoting-config.xml
<destination id="MyRemoteService">
<properties>
<source>test.blazeds.MyRemoteService</source>
<scope>session</scope>
</properties>
<security>
<security-constraint ref="custom-admin-access" />
</security>
</destination>
我知道我可以尝试实现自己的基于JDBC Tomcat的境界,但是这件事情就像我想避免因为Jboss还提供其它登录模块,如LDAP,我可能会在未来使用。
感谢, B.