<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<body link="#355491" alink="#4262a1" vlink="#355491" style="background: #e2e2e2; margin: 0; padding: 20px;">

<div>
        <table cellpadding="0" bgcolor="#FFFFFF" border="0" cellspacing="0" style="border: 1px solid #dadada; margin-bottom: 30px; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                <tbody>
                        <tr>

                                <td>

                                        <table border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" style="border: solid 2px #ccc; background: #dadada; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                                                <tbody>
                                                        <tr>
                                                                <td bgcolor="#000000" valign="middle" height="58px" style="border-bottom: 1px solid #ccc; padding: 20px; -moz-border-radius-topleft: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 5px; -webkit-border-top-left-radius: 5px;">
                                                                        <h1 style="color: #333333; font: bold 22px Arial, Helvetica, sans-serif; margin: 0; display: block !important;">
                                                                        <!-- To have a header image/logo replace the name below with your img tag -->
                                                                        <!-- Email clients will render the images when the message is read so any image -->
                                                                        <!-- must be made available on a public server, so that all recipients can load the image. -->
                                                                        <a href="http://community.jboss.org/index.jspa" style="text-decoration: none; color: #E1E1E1">JBoss Community</a></h1>
                                                                </td>

                                                        </tr>
                                                        <tr>
                                                                <td bgcolor="#FFFFFF" style="font: normal 12px Arial, Helvetica, sans-serif; color:#333333; padding: 20px;  -moz-border-radius-bottomleft: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 5px; -webkit-border-bottom-left-radius: 5px;"><h3 style="margin: 10px 0 5px; font-size: 17px; font-weight: normal;">
    Authorization issue while implementing login module with DatabaseServerLoginModule
</h3>
<span style="margin-bottom: 10px;">
    created by <a href="http://community.jboss.org/people/c-ddhesh">sidd deo</a> in <i>JBoss Web Development</i> - <a href="http://community.jboss.org/message/586633#586633">View the full discussion</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">

<div class="jive-rendered-content"><p><span class="postbody">Hi all<br/> I am new to jboss. I am trying to implement form based authentication using DatabaseServerLoginModule using <a class="jive-link-external-small" href="http://www.coderanch.com/forums/f-63/JBoss" target="_new">jboss</a> 6.0<br/> By referring guides and several tutorials I implemented and configured it. My application is working till authentication phase.<br/> Authorization fails giving following errors in logs. Here are my logs</span></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>11:18:53,240 TRACE [org.jboss.security.auth.spi.DatabaseServerLoginModule] Obtained user password</p><p>11:18:53,240 TRACE [org.jboss.security.auth.spi.DatabaseServerLoginModule] resumeAnyTransaction</p><p>11:18:53,240 TRACE [org.jboss.security.auth.spi.DatabaseServerLoginModule] User'sidd' authenticated, loginOk=true</p><p>11:18:53,240 TRACE [org.jboss.security.auth.spi.DatabaseServerLoginModule] commit, loginOk=true</p><p>11:18:53,240 TRACE [org.jboss.security.auth.spi.DatabaseServerLoginModule] getRoleSets </p><p>using rolesQuery: SELECT Role, RoleGroup FROM Roles WHERE PrincipalID=?,username: sidd</p><p>11:18:53,256 TRACE [org.jboss.security.auth.spi.DatabaseServerLoginModule] suspendAnyTransaction</p><p>11:18:53,256 TRACE [org.jboss.security.auth.spi.DatabaseServerLoginModule] Excuting query: </p><p>SELECT Role, RoleGroup FROM Roles WHERE PrincipalID=?, with username: sidd</p><p>11:18:53,256 TRACE [org.jboss.security.auth.spi.DatabaseServerLoginModule] Assign user to role WebAppUser</p><p>11:18:53,256 TRACE [org.jboss.security.auth.spi.DatabaseServerLoginModule] resumeAnyTransaction</p><p>11:18:53,256 TRACE [org.jboss.security.plugins.auth.JaasSecurityManagerBase.my-web] defaultLogin, </p><p>lc=javax.security.auth.login.LoginContext@1b7a59c, subject=Sub</p><p>ject(21185284).principals=org.jboss.security.SimplePrincipal@15004845(sidd)org.j</p><p>boss.security.SimpleGroup@24878804(WebAppUser(members:WebAppUser))</p><p>11:18:53,256 TRACE [org.jboss.security.plugins.auth.JaasSecurityManagerBase.my-w</p><p>eb] updateCache, inputSubject=Subject(21185284).principals=org.jboss.security.Si</p><p>mplePrincipal@15004845(sidd)org.jboss.security.SimpleGroup@24878804(WebAppUser(m</p><p>embers:WebAppUser)), cacheSubject=Subject(16292112).principals=org.jboss.securit</p><p>y.SimplePrincipal@15004845(sidd)org.jboss.security.SimpleGroup@24878804(WebAppUs</p><p>er(members:WebAppUser))</p><p>11:18:53,256 TRACE [org.jboss.security.plugins.auth.JaasSecurityManagerBase.my-w</p><p>eb] Inserted cache info: org.jboss.security.plugins.auth.JaasSecurityManagerBase</p><p>$DomainInfo@10908b5[Subject(16292112).principals=org.jboss.security.SimplePrinci</p><p>pal@15004845(sidd)org.jboss.security.SimpleGroup@24878804(WebAppUser(members:Web</p><p>AppUser)),credential.class=java.lang.String@13809944,expirationTime=129731868574</p><p>1]</p><p>11:18:53,256 TRACE [org.jboss.security.plugins.auth.JaasSecurityManagerBase.my-w</p><p>eb] End isValid, true</p><p>11:18:53,256 TRACE [org.jboss.security.plugins.auth.JaasSecurityManagerBase.my-w</p><p>eb] getPrincipal, cache info: org.jboss.security.plugins.auth.JaasSecurityManage</p><p>rBase$DomainInfo@10908b5[Subject(16292112).principals=org.jboss.security.SimpleP</p><p>rincipal@15004845(sidd)org.jboss.security.SimpleGroup@24878804(WebAppUser(member</p><p>s:WebAppUser)),credential.class=java.lang.String@13809944,expirationTime=1297318</p><p>685741]</p><p>11:18:53,272 TRACE [org.jboss.security.SecurityRolesAssociation] Setting threadl</p><p>ocal:null</p><p>11:18:53,272 TRACE [org.jboss.security.SecurityRolesAssociation] Setting threadl</p><p>ocal:{}</p><p>11:18:53,272 TRACE [org.jboss.security.plugins.authorization.JBossAuthorizationC</p><p>ontext] Control flag for entry:org.jboss.security.authorization.config.Authoriza</p><p>tionModuleEntry{org.jboss.security.authorization.modules.DelegatingAuthorization</p><p>Module:{}REQUIRED}is:[REQUIRED]</p><p>11:18:53,287 TRACE [org.jboss.security.SecurityRolesAssociation] Setting threadl</p><p>ocal:null</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><span class="postbody">Here is my Databse called book having following structure</span></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>&#160; CREATE TABLE IF NOT EXISTS Principals (</p><p>&#160;&#160;&#160; PrincipalID varchar(30) NOT NULL PRIMARY KEY,</p><p>&#160;&#160;&#160; Password varchar(50) NOT NULL</p><p>&#160; ) ENGINE=INNODB;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>&#160; CREATE TABLE IF NOT EXISTS Roles (</p><p>&#160;&#160;&#160; PrincipalID varchar(30) NOT NULL,</p><p>&#160;&#160;&#160; INDEX (PrincipalID),</p><p>&#160;&#160;&#160; Role varchar(50) NOT NULL,</p><p>&#160;&#160;&#160; RoleGroup varchar(50) NULL,</p><p>&#160;&#160;&#160; PRIMARY KEY(PrincipalID, Role),</p><p>&#160;&#160;&#160; CONSTRAINT Roles_Principal_FK FOREIGN KEY (PrincipalID)</p><p>&#160;&#160;&#160;&#160;&#160; REFERENCES Principals (PrincipalID) ON DELETE CASCADE</p><p>&#160; ) ENGINE=INNODB;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><span class="postbody">values of "PrincipalID" and "Password" are&#160; "sidd"&#160; and "pass".<br/> values "PrincipalID"&#160; "Role"&#160; "RoleGroup" are "sidd" "WebAppUser" "WebAppUser"<br/> <br/> My web.xml is as follows</span></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>&lt;?xml version="1.0"?&gt;</p><p>&lt;web-app&gt;</p><p>&#160;&#160;&#160; &lt;description&gt;A test app for security&lt;/description&gt;</p><p>&#160;&#160;&#160; &lt;security-constraint&gt;</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;web-resource-collection&gt;</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;web-resource-name&gt;All resources&lt;/web-resource-name&gt;</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;description&gt;Protects all resources&lt;/description&gt;</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;url-pattern&gt;/*&lt;/url-pattern&gt;</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;http-method&gt;GET&lt;/http-method&gt;</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;http-method&gt;POST&lt;/http-method&gt;</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/web-resource-collection&gt;</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;auth-constraint&gt;</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;role-name&gt;WebAppUser&lt;/role-name&gt;</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/auth-constraint&gt;</p><p>&#160;&#160;&#160; &lt;/security-constraint&gt;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>&#160;&#160;&#160; &lt;security-role&gt;</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;role-name&gt;WebAppUser&lt;/role-name&gt;</p><p>&#160;&#160;&#160; &lt;/security-role&gt;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>&#160;&#160;&#160; &lt;login-config&gt;</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;auth-method&gt;FORM&lt;/auth-method&gt;</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;form-login-config&gt;</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;form-login-page&gt;/login.html&lt;/form-login-page&gt;</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;form-error-page&gt;/errors.html&lt;/form-error-page&gt;</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/form-login-config&gt;</p><p>&#160;&#160;&#160; &lt;/login-config&gt;</p><p>&lt;/web-app&gt;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><span class="postbody"><br/> login-config.xml has following entry</span></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>&#160;&#160;&#160; &lt;application-policy name="my-web"&gt;</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;authentication&gt;</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;login-module code="org.jboss.security.auth.spi.DatabaseServerLoginModule"</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; flag="required"&gt;</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;module-option name="dsJndiName"&gt;java:/MySqlDS&lt;/module-option&gt;</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;module-option name="principalsQuery"&gt;SELECT Password FROM Principals WHERE PrincipalID=?&lt;/module-option&gt; </p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;module-option name="rolesQuery"&gt;SELECT Role, RoleGroup FROM Roles WHERE PrincipalID=?&lt;/module-option&gt; </p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/login-module&gt;</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/authentication&gt;</p><p>&#160;&#160;&#160;&#160;&#160; &lt;authorization&gt;</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;policy-module code="org.jboss.security.authorization.modules.DelegatingAuthorizationModule" flag="required"/&gt;</p><p>&#160;&#160;&#160;&#160;&#160; &lt;/authorization&gt;</p><p>&#160;&#160; &lt;/application-policy&gt;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><span class="postbody">jboss-web.xml has following text</span></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>&lt;?xml version='1.0' encoding='UTF-8' ?&gt;</p><p>&lt;jboss-web&gt;</p><p>&#160; &lt;security-domain&gt;java:/jaas/my-web&lt;/security-domain&gt;</p><p>&lt;/jboss-web&gt;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><span class="postbody">Even if I remove <br/>&#160;&#160;&#160;&#160;&#160;&#160; &lt;authorization&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;policy-module code="org.jboss.security.authorization.modules.DelegatingAuthorizationModule" flag="required"/&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160; &lt;/authorization&gt;<br/> from login-config.xml, I get the same error.<br/> <br/> As per the logs, user "sidd" is getting authenticated successfully. But on GUI i see <br/> <br/> HTTP Status 403 - Access to the requested resource has been denied<br/> type Status report<br/> message Access to the requested resource has been denied<br/> description Access to the specified resource (Access to the requested resource has been denied) has been forbidden.<br/> <br/> Am i missing on any flag or any configuration ? <br/></span></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><span class="postbody"><br/></span></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><span class="postbody"><br/></span></p></div>

<div style="background-color: #f4f4f4; padding: 10px; margin-top: 20px;">
    <p style="margin: 0;">Reply to this message by <a href="http://community.jboss.org/message/586633#586633">going to Community</a></p>
        <p style="margin: 0;">Start a new discussion in JBoss Web Development at <a href="http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2112">Community</a></p>
</div></td>
                        </tr>
                    </tbody>
                </table>


                </td>
            </tr>
        </tbody>
    </table>

</div>

</body>
</html>