Hi all! For some reasons I had to extend JDBCRealm to overwrite the method getPassword. This is myRealm:
public class ManoloJDBCRealm extends JDBCRealm{ private static Log log = LogFactory.getLog(ManoloJDBCRealm.class); protected String getPassword(String username) { System.out.println("username= "+username); String password=super.getPassword(username); log.info("password="+password); String hexpassword=HexUtils.convert(password.getBytes()); log.info("hexpassword="+hexpassword); return hexpassword; } } I wrote the file mbeans-descriptors.xml <?xml version="1.0"?> <mbeans-descriptors> <mbean name="ManoloJDBCRealm" description="Implementation of Realm that works with any JDBC supported database" domain="Catalina" group="Realm" type="com.steria.tc.realm.ManoloJDBCRealm"> <attribute name="className" description="Fully qualified class name of the managed object" type="java.lang.String" writeable="false" /> <attribute name="connectionName" description="The connection username to use when trying to connect to the database" type="java.lang.String" /> <attribute name="connectionPassword" description="The connection URL to use when trying to connect to the database" type="java.lang.String" /> <attribute name="connectionURL" description="The connection URL to use when trying to connect to the database" type="java.lang.String" /> <attribute name="digest" description="Digest algorithm used in storing passwords in a non-plaintext format" type="java.lang.String" /> <attribute name="driverName" description="The JDBC driver to use" type="java.lang.String" /> <attribute name="roleNameCol" description="The column in the user role table that names a role" type="java.lang.String" /> <attribute name="userCredCol" description="The column in the user table that holds the user's credentials" type="java.lang.String" /> <attribute name="userNameCol" description="The column in the user table that holds the user's username" type="java.lang.String" /> <attribute name="userRoleTable" description="The table that holds the relation between user's and roles" type="java.lang.String" /> <attribute name="userTable" description="The table that holds user data" type="java.lang.String" /> <operation name="start" description="Start" impact="ACTION" returnType="void" /> <operation name="stop" description="Stop" impact="ACTION" returnType="void" /> <operation name="init" description="Init" impact="ACTION" returnType="void" /> <operation name="destroy" description="Destroy" impact="ACTION" returnType="void" /> </mbean> </mbeans-descriptors> I just copied it form the JDBCRealm and change the type. This file is in the same package of ManoloJDBCRealm. In server.xml I put <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" debug="0" descriptors="/com/steria/tc/realm/mbeans-descriptors.xml"/> I've done a jar with in com/steria/tc/realm/mbeans-descriptors.xml, ManoloJDBCRealm.class and I put it in server/lib In my context.xml I put <Realm className = "com.steria.tc.realm.ManoloJDBCRealm"....../> I start tomcat, I get no error, but when i authenticate I don't get one of the message of my custom getPassword(String username). The behavior is as if tomcat utilize the JDBCREalm method Thanks in advance Alessandro