Hy guys,
i'm using for the first time jaas on JBoss so i wrote a simple program to test it.
I'm using a jsp to autenthicate myself to JBoss using DatabaseServerLoginModule on a Sybase Database.
My problem is, i never can authenticate,
it seems that Principal object when it is passed to jboss authentication process is always null,
but if  change module login, for example UsersRolesLoginModule i success on it.

These are the files i'm using:

web.xml
...

...
...
    <!-- Define form login configuration -->
    <login-config>
        <auth-method>FORM</auth-method>
        <realm-name>WROX Bank Authentication</realm-name>
        <form-login-config>
            <form-login-page>/Login.jsp</form-login-page>
            <form-error-page>/LoginError.jsp</form-error-page>
        </form-login-config>
    </login-config>
---------------------------------------------------------

jboss.xml

<jboss>
      <session>
     <resource-ref>
    	<res-ref-name>jdbc/DSTest</res-ref-name>
    	<jndi-name>java:/DSTest</jndi-name>
    </resource-ref>   
        <ejb-name>Account</ejb-name>
        <jndi-name>ejb/Account</jndi-name>

        <method-attributes>
        </method-attributes>
      </session>
    <security-domain>java:/jaas/dbLogin</security-domain>
</jboss>
---------------------------------------------------

jboss-web.xml

<jboss-web>
    <!-- Use the JAAS Database Security Module -->
    <security-domain>java:/jaas/dbLogin</security-domain>
</jboss-web>
--------------------------------------------------

ejb-jar.xml
...
...
...
    <!-- JDBC DataSources (java:comp/env/jdbc) -->
    <resource-ref>
        <description>The default DS</description>
        <res-ref-name>jdbc/DSTest</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
    </resource-ref>


-----------------------------------------------

login-config.xml

<policy>
    <!-- Used by clients within the application server VM such as
    mbeans and servlets that access EJBs.
    -->
    
      <application-policy name = "dbLogin">
       <authentication>
          <login-module code="org.jboss.security.auth.spi.DatabaseServerLoginModule" 
              flag="required">
            <module-option name="dsJndiName">java:/DSTest</module-option>
            <module-option name = "principalsQuery">select Password from Principals where PrincipalID=?</module-option>
            <module-option name = "rolesQuery">select Role_db,RoleGroup from Roles where PrincipalID=?</module-option>
          </login-module>
       </authentication>
    </application-policy>

-------------------------------------------
these are my tables on Sybase DB:
( Role is a keyword on Sybase so i modify the default table )

create table dbo.Principals
(
   PrincipalID varchar(64) not null ,
   Password varchar(64) not null,            
   Constraint Principals primary key nonclustered ( PrincipalID  ) 
)

drop table Roles
go
create table dbo.Roles
(
   PrincipalID varchar(64) not null ,
   Role_db varchar(64) not null,            
   RoleGroup varchar(64) not null,            
)

-----------------------------------------
and this is my ds file

<datasources>
  <local-tx-datasource>              <connection-url>jdbc:oracle:thin:@192.168.22.80:1521:BARBEPER</connection-url>
    <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
    <user-name>barbe</user-name>
    <password>barbe</password>

      <min-pool-size>5</min-pool-size>
      <max-pool-size>20</max-pool-size>
      <idle-timeout-minutes>0</idle-timeout-minutes>
      <track-statements>true</track-statements>
      <security-domain>dbLogin</security-domain>
  </local-tx-datasource>
</datasources>





thanks for all


-- 
-----------------------------
Andrea Alimonti
Notio Srl
----------------------------- 

Reply via email to